2017-06-13 62 views
0

剛纔,我在Subversion工作副本中構建了一個項目,並試圖將生成的DLL myproject.dll推送到存儲庫。我從TortoiseSVN的這個錯誤:我可以告訴SVN忽略「提交失敗;過時」的錯誤並強制提交嗎?

提交失敗(細節如下):
文件「[路徑myproject.dll]」已經過時
項目的「[路徑myproject.dll]」和出的日期
你必須先更新你的工作副本。

好的,這是有道理的。我檢出的myproject.dll的版本是版本9,最新版本是版本11. Subversion在提交之前要求我將DLL更新到版本11。

嗯,我不想。我不在乎修訂版9和修訂版11之間的區別;我只想我的修訂那裏。

我知道一個方法來解決此問題:

  • 複製myproject.dll到myproject2.dll。
  • 將myproject.dll更新到版本11,以使Subversion感到開心。
  • 重命名myproject2.dll回myproject.dll,覆蓋修訂11

有沒有更方便的方式來做到這一點,或者是我的方法提供了最好的選擇?

我不害怕使用命令行,但我也有TortoiseSVN,以防萬一提供了另一種方式來做事情。

(我見過的答案How do you overcome the svn 'out of date' error?,但他們都似乎表明,它比什麼我已經有更簡單的方法。)

回答

1

這是不是你想要聽到的答案,但是Subversion WASN不打算用於二進制文件。你的解決方法真的是最好的方法。

另一種解決方案是繼續使用svn up。你會得到一個衝突。然後使用svn resolve --accept mine-full conflicted_file.dll,你會用你所做的任何事情來覆蓋版本庫版本。只要小心不要覆蓋同事的工作。

$ svn update 
Conflict discovered in 'foo.c'. 
Select: (p) postpone, (df) diff-full, (e) edit, 
     (mc) mine-conflict, (tc) theirs-conflict, 
     (s) show all options: p 
C foo.c 
Updated to revision 5. 
Summary of conflicts: 
    Text conflicts: 1 
$ svn resolve --accept mine-full foo.c 
Resolved conflicted state of 'foo.c' 
$