SVN:重做更改
这里是SVN初学者:SVN:重做更改,svn,Svn,这里是SVN初学者: 假设我提交了一个文件:修订版20。它有一些问题,所以我回滚了svn merge-r 20:19/somepath,然后提交了旧的更改。随着时间的推移,其他队友也做出了贡献,现在我们进入了第40次修订版。当我的队友一直在工作时,我一直在调整我的旧代码,现在我准备重新添加它。唯一的问题是,HEAD不再有我的更改,因此svn update会删除我的代码或导致冲突。如果我尝试反向合并,它会删除我的队友一直在处理的所有代码。如何将我的代码与头部合并,使队友添加的代码保持不变,而我添加
假设我提交了一个文件:修订版20。它有一些问题,所以我回滚了svn merge-r 20:19/somepath,然后提交了旧的更改。随着时间的推移,其他队友也做出了贡献,现在我们进入了第40次修订版。当我的队友一直在工作时,我一直在调整我的旧代码,现在我准备重新添加它。唯一的问题是,HEAD不再有我的更改,因此svn update会删除我的代码或导致冲突。如果我尝试反向合并,它会删除我的队友一直在处理的所有代码。如何将我的代码与头部合并,使队友添加的代码保持不变,而我添加的代码保持不变?我试图理解这里的问题。假设您的项目中只有一个名为
foo.txt
的文件
- 在修订版20中,您在
中进行了更改foo.txt
- 在第30版中,您意识到您的更改是一个完全的错误,您需要将其删除
$ 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.
那就可以了