理解svn merge

svn没有恢复旧版本的直接功能,不过可以使用svn merge命令恢复。 
比如说当前HEAD为14,而我要恢复成10版本,怎么做?

用svn merge: 
svn update 
svn merge --revision 14:10 
svn commit -m "restore to revision 10" 
可能会很奇怪,因为不理解为什么合并能恢复旧版本。 
这 里要理解一个关键点,就是svn merge的原理。merge是比较指定版本的差异,然后把这些差异应用到本地工作副本,而-r后的14:10,是指相 对于版本14来说版本10的变化(注意,这个版本的次序很重要。),也就是相对版本14,我版本10添加了哪些文件或目录,以及哪些文件添加了哪些行删除 了哪些行。又因为本地版本是最新的14,所以把这些差异应用到本地版本时就等于把14改变成10,其效果等于还原到版本10。然后提交,最后的版本号是 15。

posted @ 2012-11-16 13:10  dreamans  阅读(745)  评论(0编辑  收藏  举报