我可以告诉SVN忽略“提交失败;过时”错误并强制提交吗?

时间:2017-06-13 20:41:29

标签: svn tortoisesvn

刚才,我在Subversion工作副本中构建了一个项目,并尝试将生成的DLL myproject.dll推送到存储库。我从TortoiseSVN得到了这个错误:

  

提交失败(详情如下):
  文件'[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 个答案:

答案 0 :(得分:1)

这不是您想要听到的答案,但Subversion不适用于二进制文件。你的解决方案确实是最好的方法。

另一种解决方案是继续使用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'
$