您的位置:知蚁博客 » 程序设计 » svn changelist命令的使用

svn changelist命令的使用

作者: 发布时间:2012-09-17 分类:程序设计 标签: 2,315人浏览

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

相关文章

我来说说

(必须)

(必须,保密)

你确定你已经看过文章了?
取消

无觅相关文章插件,快速提升流量