svn changelist(也可以简写为cl)是一个对本地副本库的文件进行分组的命令,它可以作为其它命令的参数,但是它仅仅是本地副本库的一个分组,不能在库中传播以及与其它用户分享。
还是以之前的计算器程序为例,首先我们简单修改下工作副本中的几个文件(在add.c add.h sub.c sub.h几个文件最后都加入一个空行)

root@letuknowit:/home/kris/calc/trunk# svn st
M       sub.h
M       add.c
M       sub.c
M       add.h

好了,做好改动后就要进行提交了,但是又不想把这四个文件一起提交,想把add的分为一组,sub的分为一组,这时候svn changelist就派上用场了。

root@letuknowit:/home/kris/calc/trunk# svn cl add add.*
Path 'add.c' is now a member of changelist 'add'.
Path 'add.h' is now a member of changelist 'add'.
root@letuknowit:/home/kris/calc/trunk# svn cl sub sub.c sub.h
Path 'sub.c' is now a member of changelist 'sub'.
Path 'sub.h' is now a member of changelist 'sub'.

上面的add和sub都是组名,其后是需要加入到改组中的文件,多个文件以空格隔开,支持通配符(例如那个add.*)。完成以上工作后,再通过svn st看看有什么变化

root@letuknowit:/home/kris/calc/trunk# svn st

--- Changelist 'add':
M       add.c
M       add.h

--- Changelist 'sub':
M       sub.h
M       sub.c

删除组中的文件也比较简单,具体如下

root@letuknowit:/home/kris/calc/trunk# svn cl --remove sub.c
Path 'sub.c' is no longer a member of a changelist.
root@letuknowit:/home/kris/calc/trunk# svn st
M       sub.c

--- Changelist 'add':
M       add.c
M       add.h

--- Changelist 'sub':
M       sub.h

由于每个文件只能属于一个组,因此在将某个文件从某个组中删除的时候,无需指定组名。

changelist作为参数

root@letuknowit:/home/kris/calc/trunk# svn diff --cl sub
Index: sub.h
===================================================================
--- sub.h       (revision 6)
+++ sub.h       (working copy)
@@ -1 +1,2 @@
int sub(int lhs,int rhs);
+
Index: sub.c
===================================================================
--- sub.c       (revision 6)
+++ sub.c       (working copy)
@@ -2,3 +2,4 @@
{
        return lhs - rhs;
}
+

其他支持svn changelist的指令包括:changelist、commit、info、propdel、propget、proplist、propset、revert、status、update

将已在一个组中的文件加入另一个组

root@letuknowit:/home/kris/calc/trunk# svn cl add sub.c
svn: warning: Removing 'sub.c' from changelist 'sub'.
Path 'sub.c' is now a member of changelist 'add'.
root@letuknowit:/home/kris/calc/trunk# svn st

--- Changelist 'add':
M       add.c
M       sub.c
M       add.h

--- Changelist 'sub':
M       sub.h

由于每个文件在同一个工作拷贝中只能加入一个分类,在讲某个文件加入新的分组之前,会将其从原先的分组中删除。

对于未在svn版本控制下的文件,无法加入分组

root@letuknowit:/home/kris/calc/trunk# touch newfile
root@letuknowit:/home/kris/calc/trunk# svn st
?       newfile

--- Changelist 'add':
M       add.c
M       sub.c
M       add.h

--- Changelist 'sub':
M       sub.h
root@letuknowit:/home/kris/calc/trunk# svn cl add newfile
svn: warning: 'newfile' is not under version control

svn changelist不允许将文件夹加入某个分组,但是可以将多个不同的文件夹中的文件归为一组。

原创文章请注明转载于知蚁博客,本文地址:http://www.letuknowit.com/archives/usage-of-svn-changelist


原创内容如转载请注明:来自 阿权的书房
收藏本文到网摘
激光笔厂家 Homepage Email
2013/02/22 15:45
围观一下呵呵
我的名字叫麒 Homepage Email
2013/02/02 13:58
完全看不懂,友情顶帖!
http://www.txtxs.com Homepage Email
2013/01/27 04:47
这个命令好像很久之前用过
分页: 1/1 第一页 1 最后页
发表评论
AD
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML 打开UBB 打开表情 隐藏
昵称   密码   游客无需密码
网址   电邮   [注册]
               

验证码 不区分大小写
 

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐