posts - 203,  comments - 45,  trackbacks - 0
1, svn property设置:
设置svn忽略某些文件:
svn propedit|pe svn:ignore ~/work/src
在打开的编辑器里面输入要忽略的文件格式(一种格式一行):
*.pyc
*.swo

设置svn使某文件可执行:
svn propset|ps svn:executable ON ~/work/test.py

2,svn merge
svn merge https://nordicbet.dev.exoweb.net/svn/trunk/src@12159 https://nordicbet.dev.exoweb.net/svn/branches/etch@12163
把从src@12159到etch@12163的改变都输出到当前工作目录。(src和etch的顺序不能颠倒,都则是相反的改变)

-------------------修订版本关键字解释:转自http://kstack.blogbus.com/logs/3080410.html--------------------

1. 概念
-------------

HEAD      - The lastest revision in the repository.
BASE      - The “pristine” revision of an item in a working copy.
COMMITTED - The last revision in which an item changed before (or at) BASE.
PREV      - The revision just before the last revision in which an item changed. (Technically, COMMITTED - 1.)

HEAD - 目前repository上最新的revision,也许个人在操作wc的时候,有其他的成员commit成果,那么HEAD会变化的。

BASE - 对于一个item,BASE指我们check out的那个revision。

COMMITTED - 其必然 <= BASE,对于一个item,COMMITTED是最后修改时的那个revision。

PREV - (COMMITTED - 1)

上面的解释看不明白就是正常,请继续阅读……


2. 从item & revision引发的讨论
-------------

item, 就是SVN中被管理的东东(包括folder、file)。而每次commit都会产生一个snapshot,并记录一个revision。对于 revision,it's not valid to talk about “revision 5 of foo.c”. Instead, one would say “foo.c as it appears in revision 5”.

例如:
有文件 foo.c、bar.c

     13          17               24          25           26
-----|----...----|-------...------|-----------|------------|--------- trunk
  M foo.c      M foo.c          M bar.c     M bar.c       others ...
 
我们在r24之前,都没有对bar.c进行改动,因此,bar.c在 1 ~ 23 里面的内容是一样的。而在r24, r25,foo.c 的内容与其在 r23 的时候没有区别。

这时,我们check out [trunk@24]。并在trunk目录下
svn st -v
则可以看到
---------------------------------------------
       BASE   COMMITTED         // 这一行SVN不会显示
        24 24 .
 24 17 foo.c
 24 24 bar.c
 ...
 
其中foo.c与bar.c的COMMITTED是不一样的。

这时,我们进行r25的行为,修改了bar.c,并commit了。并
svn st -v
可以看到
---------------------------------------------
       BASE   COMMITTED         // 这一行SVN不会显示
        24 24 .
 24 17 foo.c
 25 25 bar.c
 ...

这说明了此时bar.c的变化情况。为何foo.c的BASE还是24呢?因为此时的foo.c是r24那时的foo.c。ok,我们
svn up
然后
svn st -v
---------------------------------------------
       BASE   COMMITTED         // 这一行SVN不会显示
        25 25 .
 25 17 foo.c
 25 25 bar.c
 ...

Yeah~,一切ok。


说完了最麻烦的BASE和COMMITTED。
PREV没什么好说的。而HEAD,如果r26为最后一个提交到repository的改动,那么r26就是HEAD罗~


3. 总结
-------------

感谢阅读到这里,打字很辛苦。来,给点掌声。:o)
这里的理解不一定正确,欢迎讨论。



posted on 2007-12-17 18:23 保尔任 阅读(464) 评论(0)  编辑  收藏 所属分类: PM

标题  
姓名  
主页
验证码 *  
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-12-24 18:05 编辑过
 
 

相关链接:
网站导航:




<2007年12月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

常用链接

留言簿(3)

随笔分类

随笔档案

文章分类

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜