您的位置:首页 > 其它

SVN changelist and commit

2015-08-25 15:35 197 查看
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

svn commit
--changelist clName -m "ci"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: