2017-06-13 63 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' 
$