SVN:重做改变

时间:2014-04-04 14:46:49

标签: svn

SVN初学者:

假设我提交了一个文件:版本20.它有一些问题所以我回滚了svn merge -r 20:19 / somepath然后将旧的更改提交回来。时间继续,其他队友贡献,现在我们正处于修订版40.虽然我的队友一直在工作,但我一直在调整我的旧代码,现在我已准备好将其添加回来。唯一的问题是,HEAD不再有我的更改,因此svn update会删除我的代码或导致冲突。如果我尝试反向合并,它会删除我的队友一直在处理的所有代码。我如何将我的代码与HEAD合并,以便留下我的队友未添加的代码和我未添加的代码?

1 个答案:

答案 0 :(得分:0)

我试图在这里理解这个问题。假设项目中只有一个名为foo.txt的文件。

  • 在修订版20中,您对foo.txt进行了更改。
  • 在修订版30中,您意识到您的更改是一个完整的booboo,您需要将其删除。

足够简单:

$ svn -c -20 $REPO   # Same as your -r20:19
$ svn commit -m"Removing Revision 20 from Revision 31 (the next one)"

现在,这是事情变得多云的部分......

假设您检查了修订版#31(您撤消更改的修订版)。您坐在这里并重新添加更改,现在它们可以正常工作。但是,其他所有人都已转到修订版#40。你做什么的?

$ svn update   # Updates from Revision 30 to Revision 40, but keeps your changes
$ svn commit   # Now creates Revision 41 with your changes and your friends' changes.

应该照顾它。