我写故我在

I write, therefore I am

Archive for the ‘工具’ Category

工欲善其事必先利其器

SVN 使用笔记

Posted by ieipi 于 八月 31, 2011

1.设置svn:ignore 属性

svn会默认监测目录下的所有文件,这样当使用svn status时会遇到很多冗余信息。实际上,有很多文件,比如二进制文件,日志文件等是不需要加入svn 版本控制的。我们可以利用每个目录均有的svn:ignore属性来实现这一目的。
1)  设置.svnignore文件
在当前目录上新建.svnignore文件(文件名可行任意),并在其中编辑需要忽略的文件类型。例如

build/
dist/
*.class

2)  设置svn:ignore属性

svn propset svn:ignore –F .svnignore .

3)  其他
这种方法是局部设置,只对当前目录生效。还可以进行全局设置,对所有的svn workcopy均有效。

sudo vim /etc/subversion/config

找到global-ignores条目,在其后加上需要忽略的文件类型。

2.版本代码回滚

svn 本版库包含所有的历史信息,所以你可以回滚到任意历史版本。所有的修改可以看作是由一系列的修改及集组成。可以利用svn merge命令将一个或一组修改集应用当前工作拷贝。基本工作流程为:
1)    更新工作拷贝

svn update

2)    定位可疑目标

svn log test_rollback
svn diff –r 100:101 test_rollback

3)    撤销错误修改集

svn merge –r 101:100 test_rollback

4)    检查修改结果

svn diff test_rollback

5)    提交

svn commit –m"revert the wrong change from r101"

6)    其他
当提交更改后,r101的更改集已经从HEAD中删除。但是,r101版本仍然在版本库中。当直接从r101版本checkout时仍会得到错误更改。但是通常我们只对HEAD版本感兴趣,所以从HEAD删除已经足够好了。如果想从版本库中毁掉所有证据,并不容易。

Posted in 工具, 技术 | Tagged: | Leave a Comment »