2016-01-27 99 views
3

我從一個倉庫中取出,對多個文件進行了更改,現在我想撤消它們。SVN似乎沒有恢復更改

我試過svn revert -R .svn revert --depth infinity .但是當我打電話svn status,我仍然看到所有標記爲已修改的文件,他們似乎是因爲他們之前,我試圖還原相同。

我在文檔中看到this討論恢復更改,但它似乎處理從一個提交到另一個提交,而不是撤消所有未提交的更改。

(我沒有TortoiseSVN的訪問。)

我不能給你的狀態命令的確切轉儲,但它看起來有點像這樣:

>>svn status 
? dir/ 
? dir/ 
X dir/ 
? dir/ 

Performing status on external item at [dir] 
M file 

Performing status on external item at [dir] 
? dir/ 
? dir/ 
? file 
? file 
X dir/ 
+0

我自己總是保持備份的壓縮,獨立於任何存儲庫。他們中很少有人按照我想要的方式做到我想要的東西,比如舊時代的版本(例如,他們給它一個新的時間戳,而不是原始的時間戳)。.....當然,遵守組織的策略並放置代碼在存儲庫中,對於其他開發人員,但通過一切手段保持獨立備份..... – JosephDoggie

+1

回覆命令的輸出是什麼?它列出恢復的文件嗎? –

+0

@LaurentH。我不相信有任何產出。 – JETM

回答

2

按照svn:externals documentation有一些命令會遞歸到外部定義的目錄中。這些命令是:

  • 結賬
  • 更新
  • 開關
  • 出口
  • 狀態

大多數的這些有--ignore-externals標誌讓你避免更新這些。

但是,使用svn:externals通過在定義目錄下創建獨立工作副本。除了上面的一小組命令外,正好是外部目錄的處理方式。特別是在你的情況下,svn revert跳過外部目錄,因爲這些實際上並不是這個工作副本的一部分。

令人遺憾的是,這似乎是svn:externals中剩下的一個難點。您可能需要將目錄更改爲修改後的外部,並在那裏恢復。

你可以很容易地編寫腳本。

+0

謝謝!我不允許再獎勵20個小時,但我會確保它發生。 – JETM