2009-05-21 61 views
51

是否可以在一個客戶端上本地忽略Subversion中文件的更改而不將該忽略傳播到整個存儲庫?Subversion:僅在一個客戶端本地忽略對文件的修改

我正在處理的特定問題是我檢出了一個項目並修改了一堆文件,包括已經是存儲庫一部分的Makefile。現在我正在處理的環境與組中的其他部分不同,我希望對Makefiles的更改保留在本機上,而不是承諾。

但是,我不想設置svn:ignore,因爲我相信會將該忽略提交到存儲庫,而將make文件保留在那裏很重要。

+4

基本上,我認爲你正試圖解決錯誤的問題。爲什麼不修改你的Makefile以在兩種環境中正常工作? – 2009-05-22 03:51:34

+22

尼古拉斯,即使福德並沒有採用最好的方法解決他的問題,但我確信有合理的理由來創建僅適用於您的工作副本的忽略。 – allyourcode 2009-07-02 19:58:11

+7

我同意allyourcode。開發者(svn的用戶)可能沒有改變基本原則的特權或願望。我也想要解決這個問題。我們有環境屬性文件簽入我們的回購。當我在本地進行更改時,我必須在簽入時手動取消選中它們。我忘記取消選中它只是時間問題。我同意這些文件不應該在我們的回購站中,但我沒有權力做出該決定,所以我真的需要一種解決方法。 – andersonbd1 2009-08-14 12:57:07

回答

-3

使用svn export來導出文件,使其不受版本控制。

http://svnbook.red-bean.com/en/1.0/re10.html

編輯:不過我相信這必須在每個目錄的基礎上完成,所以你必須要有所重組文件。

我目前無法測試此功能,但是在這裏可以使用稀疏結帳功能嗎?

http://svnbook.red-bean.com/nightly/en/svn.advanced.sparsedirs.html

+0

不起作用,仍然是存儲庫的一部分,並顯示爲已修改 – fuad 2009-05-21 22:30:11

+1

我不確定是否可以在版本化目錄中導出文件。 – 2009-05-21 22:37:57

1

最接近安全的解決方案,我能想到的是使用個人分支。

10

,如果你使用Subversion 1.5.x的或更高版本,您可以使用修改列表:

svn cl COMMIT /path/to/project/* 

svn cl NOT_COMMIT /path/to/project/Makefile 

注:與第二個命令的Makefile將從第一變更列表中刪除。您可以忽略警告。

不要提交第二個更改列表。

做承諾通過:

svn ci --cl COMMIT -m"<LOG MESSAGE HERE>" 

重要: 如果你承諾,而--cl選項,所有的修改將致力於

38

與SVN的許多方面,烏龜使得它可以很簡單。事實上,我相信烏龜實際上是通過系統地使用現有的svn特徵來增加功能的。我意識到這個答案只適用於Windows,但也許有些人和我一樣,仍然使用Windows。在「檢查修改」彈出窗口中,只需右鍵單擊您的文件並選擇「移動到更改列表」 - >「ignore-on-commit」。現在,當您使用烏龜簽入時,它會將您的更改分段到各種更改列表中,因此至少您可以直觀地告訴您要提交的內容以及不想提交的內容。

相關問題