首页 > 代码库 > TortoiseSVN 覆盖SVN仓库最新版本提交

TortoiseSVN 覆盖SVN仓库最新版本提交



情况背景:
ibank.pdm文件最新版本有问题,版本号为5051。 我想在5050的版本上修改后提交,覆盖5051版本的修改,也就是经过我修改后的5050版本,覆盖5051版本的修改,提交成功并成为最新的版本5052。
 
使用TortoiseSVN软件实现,版本1.6.10,步骤如下:
1.先将现在的5051版本ibank.pdm更新到我想要的5050版本
2.修改5050版本ibank.pdm,修改完毕后备份到另一个地方。不是放在当前svn目录下就好,避免等下更新会对现有的5050版本ibank.pdm有影响。
3.备份完毕后,删除现在5050版本的ibank.pdm,更新最新的5051版本ibank.pdm下来。
4.删除刚更新下来的5051版本ibank.pdm,将刚备份的修改后的5050版本ibank.pdm复制到当前svn目录,提交。
 
成功覆盖提交!现在最新版本5052是5050版本修改后的一个版本,5051版本的内容成功覆盖。
 
这里解释下为什么有3、4这样的步骤呢?
因为SVN提交的文件限定是在最新的版本上提交,若是在旧版本上的修改并提交,会错误提示你,请更新你的文件到最新版本。但是在我现在的情况下,我若乖乖更新,5051版本的ibank.pdm修改出会影响到我现在的5050版本,并且会有冲突,况且我想最新的版本也就是5052,没有5051版本的修改,只是5050版本修改后的版本。所以我利用TortoiseSVN文件原理,TortoiseSVN信息会将SVN信息记录到.svn文件夹中。它能判断出我的ibank.pdm是5050版本,不是最新的版本5051,也是这个文件夹下记录的信息的功劳。所以我将计就计,先备份我修改后的5050版本ibank.pdm,然后删除,为什么删除?因为最新版本5051版本修改出跟现在有很多的不同处,会提示文件冲突,当然你手动修改冲突出也是可以的,若你不嫌麻烦的话。所以我就先删除,再更新。这样更下来的ibank.pdm是5051版本,并且文件没有冲突提示。这是.svn文件夹记录的信息就是我的ibank.pdm是5051版本,于是我再把5051版本ibank.pdm删除,把刚备份的修改后的5050版本复制过来,提交。SVN找出.svn文件夹记录的ibank.pdm版本信息是5051版本(实际上5050版本),误认为我现在的ibank.pdm是5051版本后的修改版本,于是我就能躲掉请你更新文件为最新版本的校验,成功提交了。
 
自我总结:
这里充分利用了狡黠的原理,比如说过一条河,直走不能通过,我绕一下路通过呗。所以说,解决问题不能一根筋,要灵活、变通。
 
 

TortoiseSVN 覆盖SVN仓库最新版本提交