如果我運行svn rm file
,該文件將從本地工作副本中刪除。如何從版本控制中刪除文件而不刪除它?
我現在要做的是:
$ cp file file2
$ svn rm file
$ svn ci
$ mv file2 file
如何避免SVN使用svn rm
時也刪除本地文件?
如果我運行svn rm file
,該文件將從本地工作副本中刪除。如何從版本控制中刪除文件而不刪除它?
我現在要做的是:
$ cp file file2
$ svn rm file
$ svn ci
$ mv file2 file
如何避免SVN使用svn rm
時也刪除本地文件?
您需要--keep-local
命令行選項。這將從文件系統中刪除文件而不從文件系統中刪除。
$ svn rm --keep-local my_important_file
Won一旦他們更新,它仍然從其他人的系統中刪除它? – Nyerguds 2015-11-09 08:20:10
@Nyerguds這是正確的,因爲svn rm正在從存儲庫中刪除文件。如果您希望從回購庫中刪除文件,請將它們保存在本地機器上,然後使用上面的標記。 – 2016-02-22 13:31:00
@GregHilston正如我所說的那樣,這並不能真正幫助實際的多程序員項目。應該有一種方法可以將文件解壓到任何地方。這裏最常見的情況是意外提交的本地設置文件(在Java項目中很常見),但是對其進行版本控制不應該擦除其他用戶的設置文件。 – Nyerguds 2016-02-22 13:36:58
我沒有回答這個確切的問題,但我有一個答案,一個相關的問題,那就是如何在一個目錄從版本控制刪除所有文件(即不特定的一個),而不在本地刪除它們。該解決方案來自科學Linux實施。
ls -a .svn
應顯示存儲控制數據的SVN目錄。簡單地說:
rm -r .svn
將擺脫這個目錄。然後鍵入:
svn status
將產生「警告:這個目錄是不是工作拷貝」的錯誤,因爲它不再是版本控制之下。
我希望這會有所幫助。
有關的問題?刪除文件並刪除整個工作副本是完全不同的東西恕我直言。 – Melebius 2017-11-15 13:21:59
從SVN中刪除文件而不在本地刪除它是一個常見問題。一個突出的例子是Eclipse項目中的文件.classpath。只要項目中使用的所有機器具有相同的Eclipse和Java安裝,將此配置文件置於SVN下方就非常奇妙。一旦違反這個條件,提交就開始打破其他Eclipse項目。這是人們必須從SVN中刪除文件而不刪除任何地方的IST。
svn rm --keep-local .classpath
在一臺機器上及時完成這項工作。
問題是其他機器可能會丟失該文件(更新時)或重新生成它(提交時)。 SVN的缺陷是既不能在存儲庫中處理--keep-local
也不能將其傳播到其他工作副本。因此,在任何提交或更新之前,上述命令的所有其他機器必須最好執行—。
這當然會最好工作90%。刪除和重新排版會突然發生。我的解決辦法是讓每一臺機器,我必須直接或間接訪問,請
svn rm --keep-local .classpath
copy .classpath .classpath-nameOfTheMachine
svn add .classpath-nameOfTheMachine
這是顧左右而言他醜到幾乎不稱爲「解決方案」。儘管如此,它總是可以快速修理任何後來發生的事故。
[SVN從存儲庫中刪除文件而不刪除本地副本]的可能重複(http://stackoverflow.com/questions/542065/svn-remove-file-from-repository-without-deleting-local-copy) – Shai 2014-06-16 13:38:29