关闭

从svn上回滚版本和解决冲突

1920人阅读 评论(0) 收藏 举报

提交SVN后想回滚到旧版本。

选择TortoiseSVN→Repo-browser,想从SVN上直接回滚到旧版本,结果发现根本没有这个选项,无法实现。

右键WC(working copy)→TortoiseSVN→Update to revision,可以把WC回滚到某一版本,但是这个旧版本的文件却不能更新到SVN,SVN上还是最新的版本。若是删掉SVN上的最新版本的文件,再把本地的旧版本文件新增入SVN,这也不是不可以,只是这样,就丢失了这个文件的更新记录。

========================

最终被我找出一个有效的办法:

如果想恢复某个版本或者版本范围的变更,最简单的方法是使用版本日志对话框。这种方法也可以用来撤销最近的若干次变更,把以前的某个版本变成最新版。

  1. 选中想要恢复变更的文件或者文件夹。如果想要恢复所有的变更,需要选中最顶层的文件夹。

  2. Select TortoiseSVN → Show Log to display a list of revisions. You may need to use Show All or Next 100 to show the revision(s) you are interested in.

  3. Select the revision you wish to revert. If you want to undo a range of revisions, select the first one and hold theShift key while selecting the last one. Note that for multiple revisions, the range must be unbroken with no gaps.Right click on the selected revision(s), then select Context Menu → Revert changes from this revision.

  4. 如果想要把以前的某个版本变成最新版本,右键点击选中的版本(范围),然后选择右键菜单 → 恢复到此版本。就能够撤销被选中版本后面所有的变更。

工作副本已经恢复到了变更以前的状态。检查恢复后的结果,然后提交变更。



解决冲突(merge,update都有可能出现冲突,冲突的文件会出现黄色感叹号,并生成几个临时文件):

1.以merge为例,merge出现冲突时,会弹出框


2.现在resolve all later,然后再log窗里统一解决冲突:


3.edit conflicts,弹出对比工具




图中左边上角代表merge的来源,右上角代表merge目标文件,下面是目标文件的编辑区域(上面不可以编辑),白色区域为没有变化的区域,黄色为上个版本的内容,红色为这个版本的内容(下面编辑区的红色?代表最终内容还没有确认),我们在下面编辑区的红色区域写上合并后的内容,保存,然后mark as resolved就ok了

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:863177次
    • 积分:8296
    • 等级:
    • 排名:第2490名
    • 原创:60篇
    • 转载:210篇
    • 译文:0篇
    • 评论:75条
    文章分类
    最新评论