2010-10-08 75 views
4

有一個文件,我們稱之爲fileToBeIgnored,它在SVN中版本化,不應該是。據我所知,svn:ignore只能防止將文件添加到SVN存儲庫,並且已經版本化的文件將繼續獲得版本,無論它們是否與模式匹配。我完全可以從SVN倉庫中刪除fileToBeIgnored並將其添加到其目錄的svn:ignore屬性中。刪除並忽略版本化的項目,同時保留用戶的本地副本

我的問題是,如果我這樣做,當其他用戶進行下一次更新時,他們的SVN客戶端將嘗試刪除他們的本地副本fileToBeIgnored。我不想那樣;相反,我想爲每個人現有的本地副本進行保存。

有沒有辦法從SVN存儲庫中刪除文件,而不會在後續更新中從用戶本地副本中刪除文件?

+0

有一個名爲'ignore-on-commit'的更改列表,它將保持文件版本化,但不會稍後嘗試提交。然而,據我所知,並非所有的客戶都支持這一點。 – mihi 2010-10-08 17:20:55

+1

@Brain,如果你是唯一不需要該文件的人,爲什麼要在repo中進行更改?或者你的意思是任何新的結賬不應該有文件fileToBeIored? – 2010-10-08 18:08:49

+0

fileToBeIored是一個配置文件。曾幾何時,我們認爲我們希望集中管理它。隨着時間的推移,很明顯,單個開發者將在其本地副本中有所變化。如果每個人都記得不檢查他們的文件,其他人都很高興。但偶爾會發生事故。只是想減少人爲錯誤的可能性。 – Brian 2010-10-08 22:23:48

回答

0

有沒有辦法從SVN存儲庫中刪除文件,而不會在後續更新中從用戶本地副本中刪除文件?

我不這麼認爲。

我會做的是發送一封郵件給每個人,通知他們有關更改。無法保留副本的人可以始終從存儲庫獲取文件的早期版本。

+1

嗯......如果你刪除了這個文件並且同時添加了一個'svn:ignore',它可能會成爲可能* – 2010-10-08 17:15:45

0

將文件移動到不同的文件夾。
從SVN中刪除。
更新。
將文件添加回文件夾。
使用svn提交:忽略。

1

做刪除和屬性更改提交;那麼有兩種情況:

  1. 另一個dev沒有本地更改。他更新,他的文件被刪除。他可以將svn cat文件的適當修訂再次提交給他的工作副本。

  2. 另一個dev有局部變化。當他更新時,他會得到樹衝突。他可以通過svn resolve --accept=working fileToBeIgnored解決衝突,然後svn rm --keep-local fileToBeIgnored避免再次將文件添加到版本控制,同時保留其本地副本。

相關問題