如何强制subversion提交过时的文件?

时间:2011-07-26 16:39:06

标签: svn version-control commit

我想用前一版本“覆盖”我的最后一次提交。我试图检查版本631,做一些更改,并将其作为版本633提交。但是svn不同意,因为版本632存在。

最简单的方法是什么?这是一个多文件提交。我不想手动制作。

5 个答案:

答案 0 :(得分:9)

不是退房631,而是执行REVERT到631.然后您可以更改并签入。

答案 1 :(得分:7)

问题有点陈旧,但答案可能对将来参考有用:

嗯,实际上,不应该将过时的文件提交给SVN。出于安全原因,服务器本身拒绝这些文件。 要做的一件事是从上一版本进行更新,但在合并过程中自动保留“过时”文件:

svn up --accept mine-full

换句话说,这将执行更新,但忽略任何传入的合并。

答案 2 :(得分:3)

如果您无法对版本631执行REVERT,请执行以下操作:

  • 将更改保存在工作区域之外的某个位置。
  • 将您的工作区域更新为版本632(HEAD)。
  • 将更改重新应用到您的工作区。
  • 提交。

答案 3 :(得分:1)

我也想拥有这个功能。为什么没有类似于svn commit --force-overwrite-new-version的命令?

将SVN修订版631复制到SVN修订版633,然后您可以将更改提交到SVN修订版634.

svn copy remote_url@631 remote_url
svn commit

P.S。 git也没有此功能。没有git merge foo --force-overwrite这样的命令。

有时需求会发生变化,因此提交的某些代码变得无用。它经常发生,因此覆盖代码非常有用。我想知道为什么svngit都没有此功能。多么愚蠢的设计!!!

答案 4 :(得分:0)

将具有旧更改的文件复制到其他位置,对文件进行svn更新以检入。完成后,用您的旧文件覆盖新近更新的最新文件,然后进行svn提交。