Posted on 2010-11-15 11:44
幻海蓝梦 阅读(347)
评论(0) 编辑 收藏 所属分类:
版本管理
http://tieba.baidu.com/f?kz=739070271
使用Subversion
管理代码和文档时,最苦恼的事情莫过去错误地Import了不该导入的东西,比较obj文件、ncb文件、bsc文件等,不仅浪费了Subversion
数据库的空间(或者磁盘空间),也常常因为这些无用文件的微小变化使整个Project的版本信息发生变化。若是不留神把代码目录下的大量样本或者几个几
百兆的AVI也Import了,那么,想象一下飞刀李每天下班后守夜备份源代码时痛苦表情吧……
最让人气愤的是,我们常用的
tortoisesvn工具并未提供取消本次Import的功能,Update to
revision也不会把误导入的东西从Subversion数据库中清除。这意味着,面对错误的Import,你有权保持沉默,你所讲的一切将会没人理
睬。
不过,tortoise再狡猾也斗不过好程序员,经过昨夜雨疏风骤的一番尝试,终于发现了一个瞒天过海的办法,和兄弟们共享一下,看起来我们
的后半生再也不必为错误的Import而丧心病狂地重建Subversion数据库了。
具体方法——
1.Subversion数据库目录
结构为
├—conf
├—dav
├—db
│ ├—revprops
│ ├—revs
│
└—transactions
├—hooks
└—locks
其中,db"revprops和db"revs分别保存各版本的增量
变化和各版本的属性信息(如最后修改时间、作者等)。
2.假设该数据库存放在C:"SourceCode,且db"revprops和db
"revs目录中文件列表分别为:
C:"SourceCode"db"revprops"0
C:"SourceCode"db"revprops"1
C:"SourceCode"db"revprops"2
C:"SourceCode"db"revprops"3
C:"SourceCode"db"revprops"4
C:"SourceCode"db"revprops"5
C:"SourceCode"db"revprops"6
C:"SourceCode"db"revprops"7
C:"SourceCode"db"revprops"8
C:"SourceCode"db"revprops"9
C:"SourceCode"db"revprops"10
C:"SourceCode"db"revprops"11
C:"SourceCode"db"revprops"12
C:"SourceCode"db"revprops"13
C:"SourceCode"db"revprops"14
C:"SourceCode"db"revprops"15
C:"SourceCode"db"revprops"16
C:"SourceCode"db"revprops"17
C:"SourceCode"db"revprops"18
C:"SourceCode"db"revprops"19
C:"SourceCode"db"revprops"20
C:"SourceCode"db"revprops"21
C:"SourceCode"db"revprops"22
C:"SourceCode"db"revprops"23
C:"SourceCode"db"revprops"24
C:"SourceCode"db"revprops"25
C:"SourceCode"db"revprops"26
C:"SourceCode"db"revprops"27
C:"SourceCode"db"revprops"28
C:"SourceCode"db"revprops"29
C:"SourceCode"db"revprops"30
C:"SourceCode"db"revprops"31
C:"SourceCode"db"revs"0
C:"SourceCode"db"revs"1
C:"SourceCode"db"revs"2
C:"SourceCode"db"revs"3
C:"SourceCode"db"revs"4
C:"SourceCode"db"revs"5
C:"SourceCode"db"revs"6
C:"SourceCode"db"revs"7
C:"SourceCode"db"revs"8
C:"SourceCode"db"revs"9
C:"SourceCode"db"revs"10
C:"SourceCode"db"revs"11
C:"SourceCode"db"revs"12
C:"SourceCode"db"revs"13
C:"SourceCode"db"revs"14
C:"SourceCode"db"revs"15
C:"SourceCode"db"revs"16
C:"SourceCode"db"revs"17
C:"SourceCode"db"revs"18
C:"SourceCode"db"revs"19
C:"SourceCode"db"revs"20
C:"SourceCode"db"revs"21
C:"SourceCode"db"revs"22
C:"SourceCode"db"revs"23
C:"SourceCode"db"revs"24
C:"SourceCode"db"revs"25
C:"SourceCode"db"revs"26
C:"SourceCode"db"revs"27
C:"SourceCode"db"revs"28
C:"SourceCode"db"revs"29
C:"SourceCode"db"revs"30
C:"SourceCode"db"revs"31
3.
假设C:"SourceCode"db"current内容为
31 21r 2
这表明当前版本为第31版
4.假设最后一
次导入(revision = 31)出现失误,希望回到前一个版本并放弃本次导入的全部内容,可以直接删除
C:"SourceCode"db
"revs"31和C:"SourceCode"db"revprops"31两个文件,并使用UltraEdit-32打开C:"SourceCode
"db"current文件(注意此时不要选择转换到DOS格式),将其中的31修改为30即可。
5.使用tortoisesvn工具提
供的show log功能,就可以看到目前的最新版本已经是30了,那些不想要的文件也不见了。
转自:创意安天论坛
|