2012-02-15 58 views
1

的svn:忽略屬性忽略不在源代碼控制下的文件,所以他們不拿出在svn status?(他們不拿出所有,也將被忽略,如果你做一個add如何svn:忽略源代碼管理下的文件?

但是,如果我想忽略一個文件,是源代碼控制在什麼樣的? svn:忽略不會忽略它。
例如,我想要做的是設置一個配置文件,將其添加到SVN,因此它的存在時,系統必須部署在測試或現場服務器是什麼(這是一個Web應用程序),但對當地環境的發展,我需要修改配置文件以使用我的本地設置進行設置。

但我不希望這樣的更新被COMMITED,所以,我該怎麼辦?

svn delete只會將它們從存儲庫中刪除,並在測試服務器上執行svn update時,它將刪除配置文件,這不是我想要的。

+0

SVN沒有部署系統,這是一個源代碼控制系統。有很好的工具來製作和檢查發行版(比如'automake');使用它們,你的問題就會消失。 – thiton 2012-02-15 16:07:49

回答

1

改變時(如配置文件)並不意味着要提交的文件應被視爲與名字反映了這種治療方法的模板文件。追加實例「.template」到文件名中,並在存儲庫中擁有文件的默認內容。檢查出來的工作副本後,每個用戶都必須將此文件手動複製到一個工作版本(無「.template」擴展名),並選擇更改內容。這個工作文件不能被添加到資源庫中(某些服務器端預提交鉤子腳本使用svnlook命令可以確保這一點)。

問題出現,如果這個模板文件被更改。每個用戶都必須迴應這個改變(也許什麼都不做,但可能改變他們的工作文件)。有一些方法可以自動提醒有關模板變化(用戶側更新掛機後腳本)的用戶,但這也許只是矯枉過正。當有人更改模板時,應該通知所有其他變更,就是這樣。

1

一種方法是竟被使用SVN:外觀等。 您將鏈接到包含配置文件的路徑。在Buildserver上,你可以用「--ignore-externals」選項簽出。

反正我通常只是刪除buildscript文件。不是非常優雅,但做的工作。

1

不幸的是,這不是在svn中輕鬆完成的。我見過的最接近的答案是this question,但這意味着您必須將其他文件也放入更改列表中。不幸的是,一些svn IDE插件(subversive I'm looking at you!)似乎沒有很好的支持changelists。