注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

obsolete

wanna go

 
 
 

日志

 
 

svn修订版和最后修改的修订版  

2013-09-03 15:45:30|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

花了点时间把svnbook看了遍,对于svn有了个比较好的认识。svn info时,修订版和最后修改的修订版总是让我感觉很困惑。要搞明白这个需要对下面几个关键字有所了解。

HEAD:版本库中的最新版本。

COMMITED:文件最后提交生成的版本号。

PREV:文件倒数第二次提交生成的版本号。

BASE:目录签出或者签入生成的版本号。

HEAD、COMMITED和PREV比较好理解,BASE比较难于理解。假设一个目录下有两个文件configure.ac和Makefile.am,第一次将它们check out出来时,会生成一个新的revision,这个便是BASE了。此时使用svn info configure.ac/Makefile.am可以发现它们的修订版是一样的,但是最后修改的修订版不同。这里的修订版对应其实就是BASE,而最后修改的修订版则是COMMITED。插一句,很多人很容易误解为啥修订版号和最后修改的修订版号不一致。

若将configure.ac修改并check in,这个时候会生成一个新的revision,configure.ac的BASE和COMMITED的值相当。而svn info Makefile.am,发现它的BASE和COMMITED没有改变。svn up一下,发现Makefile.am的BASE会变成最新的,和configure.ac相同。

签出代码库。

1[henshao@henshao ~/svn]$ svn co file:///Users/henshao/svn/dogg/learn_svn/ learn_svn2
2A    learn_svn2/trunk
3A    learn_svn2/trunk/configure.ac
4A    learn_svn2/trunk/Makefile.am
5Checked out revision 17.

显示修订版(BASE)和最后修改的修订版(COMMITED)。

01[henshao@henshao ~/svn/learn_svn2/trunk]$ svn st -v
02                17       17 henshao      .
03                17       17 henshao      configure.ac
04                17       15 henshao      Makefile.am
05  
06[henshao@henshao ~/svn/learn_svn2/trunk]$ svn info Makefile.am
07Path: Makefile.am
08Name: Makefile.am
09URL: file:///Users/henshao/svn/dogg/learn_svn/trunk/Makefile.am
10Repository Root: file:///Users/henshao/svn/dogg
11Repository UUID: 7ee338c4-a6e3-468b-b576-d1b767dd90e2
12Revision: 17
13Node Kind: file
14Schedule: normal
15Last Changed Author: henshao
16Last Changed Rev: 15
17Last Changed Date: 2011-06-23 17:03:08 +0800 (四, 23  6 2011)
18Text Last Updated: 2011-06-23 18:37:50 +0800 (四, 23  6 2011)
19Checksum: 5b211a202b8ae001a86a557108d4989c

修改Makefile.am并签入看看。

01[henshao@henshao ~/svn/learn_svn2/trunk]$ svn ci Makefile.am -m "LD_ADD add ssl library"
02Sending        Makefile.am
03Transmitting file data .
04Committed revision 18.
05  
06[henshao@henshao ~/svn/learn_svn2/trunk]$ svn info Makefile.am
07Path: Makefile.am
08Name: Makefile.am
09URL: file:///Users/henshao/svn/dogg/learn_svn/trunk/Makefile.am
10Repository Root: file:///Users/henshao/svn/dogg
11Repository UUID: 7ee338c4-a6e3-468b-b576-d1b767dd90e2
12Revision: 18
13Node Kind: file
14Schedule: normal
15Last Changed Author: henshao
16Last Changed Rev: 18
17Last Changed Date: 2011-06-23 18:41:41 +0800 (四, 23  6 2011)
18Text Last Updated: 2011-06-23 18:41:31 +0800 (四, 23  6 2011)
19Checksum: e4cc7bf424ff911c9619060a5f1c1030
20  
21[henshao@henshao ~/svn/learn_svn2/trunk]$ svn info configure.ac
22Path: configure.ac
23Name: configure.ac
24URL: file:///Users/henshao/svn/dogg/learn_svn/trunk/configure.ac
25Repository Root: file:///Users/henshao/svn/dogg
26Repository UUID: 7ee338c4-a6e3-468b-b576-d1b767dd90e2
27Revision: 17
28Node Kind: file
29Schedule: normal
30Last Changed Author: henshao
31Last Changed Rev: 17
32Last Changed Date: 2011-06-23 17:44:51 +0800 (四, 23  6 2011)
33Text Last Updated: 2011-06-23 18:37:50 +0800 (四, 23  6 2011)
34Checksum: 6b49ae8f3346120311e11843c23b0b00

svn update一下看看。

01[henshao@henshao ~/svn/learn_svn2/trunk]$ svn up
02At revision 18.
03  
04[henshao@henshao ~/svn/learn_svn2/trunk]$ svn info configure.ac
05Path: configure.ac
06Name: configure.ac
07URL: file:///Users/henshao/svn/dogg/learn_svn/trunk/configure.ac
08Repository Root: file:///Users/henshao/svn/dogg
09Repository UUID: 7ee338c4-a6e3-468b-b576-d1b767dd90e2
10Revision: 18
11Node Kind: file
12Schedule: normal
13Last Changed Author: henshao
14Last Changed Rev: 17
15Last Changed Date: 2011-06-23 17:44:51 +0800 (四, 23  6 2011)
16Text Last Updated: 2011-06-23 18:37:50 +0800 (四, 23  6 2011)
17Checksum: 6b49ae8f3346120311e11843c23b0b00
18  
19[henshao@henshao ~/svn/learn_svn2/trunk]$ svn st -v
20                18       18 henshao      .
21                18       17 henshao      configure.ac
22                18       18 henshao      Makefile.am

svn一个版本库的revision是全局的,不管是在trunk还是branch,也不管使用merge合并代码还是消除修改,签入和签出都会生成一个新的revision。当项目中一个文件签入时会导致别的文件的BASE暂时低于HEAD,但是一旦update,二者将保持一致。

  评论这张
 
阅读(698)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018