昨天在提交文件的时候,不小心按错了回车,结果很多不该提交的文件都被提交了。还好文件不多,一个个的手动恢复了,今天整理一下恢复的过程。
事情是这样开始的:昨天快下班的时候准备把当天改好的代码提交到CVS库中,本来只需要提交一个文件的,我输入cvs ci -m”注释内容” 之后,没写文件名就按了回车。由于我是在项目的根目录下操作的,所以回车一按下去,刷刷刷的好多文件都被直接提交上去了。当时就想,这下糟了,这么多文件怎么恢复啊?赶紧查看一下提交了哪些文件,用的是这个命令:
cvs log -NS -d ">2010/09/19"
查看2010.09.19之后提交的文件。还好只有四五个文件,手动恢复吧。以c.php为例,先查看当前版本及要恢复的版本:
cvs log c.php
最新版本是1.8,就是刚才误提交的那个版本。要恢复到1.7,就是最新版本的前一个版本。把1.7下载下来:
cvs up -r1.7 c.php
这样,本地的c.php就恢复好了,现在要做的是把这个文件再提交一次。可是CVS认为你本地的文件是1.7版的,是旧版,而且没有修改过,直接提交它不认。所以要做些手脚,先备份1.7版的:
mv c.php c.php.bak
再把c.php更新到最新版本1.8:
cvs up -r1.8 c.php
然后拿1.7版覆盖1.8的:
mv c.php.bak c.php
现在CVS会认为你本地的c.php是1.8版的了,也是修改过的,所以是可以提交的。但是我提交的时候还是会提示错误:
cvs server: sticky tag `T1.8’ for file ‘c.php’ is not a branch
网上的解决方法是:
对出这个错的文件执行update -A后清掉当前的tag就可以了 (参考:http://www.cppblog.com/prayer/archive/2010/07/16/120526.html)
我没试过,我是直接编辑c.php所在目录下的CVS/Entries,删除c.php所在行尾部的“T1.8”。然后再提交:
cvs ci -m "恢复误提交的文件" c.php
最后,把日志修改一下:
cvs admin -m 1.8:"错误的提交" c.php
九月 21st, 2010 at 12:41 下午 #网站优化
真的很不错…..博主英明啊。。嘿嘿
九月 22nd, 2010 at 2:39 上午 #fs54
八月中秋月儿圆,对着嫦娥表思念,心中的人啊你可看见,嫦娥也在默默祝愿,愿你生活比蜜甜!