posts - 262,  comments - 221,  trackbacks - 0

【6】查看项目的版本控制信息


在上一节,我们成功地为项目ECoupon添加了版本控制功能,现在我们想看看添加了版本控制功能的项目,到底有什么不同。应该如何做呢?

还记得我们在《SVN In Action (1)》的第2节--访问版本库中那个命令列表吗?其中的第2列就是“显示版本信息”。我们可以看到和svn list以及svnlook tree命令一样,SVN同样为服务端和客户端提供了两个命令。它们就是:

 A.svn info:用于客户端查看版本信息
 B.svnlook info:用于服务端查看版本信息

为了让大家有一个感性的认识,我先演示这两个命令的输出:

C:\>svn info E:\Temp\ECoupon
Path: E:
\Temp\ECoupon
URL: http:
//localhost:8000/svn/Workspace/Ericsson/ECoupon
Repository Root: http:
//localhost:8000/svn/Workspace
Repository UUID: 06f3a259
-b3b5-ff4e-9a70-52e8834f1976
Revision: 
5
Node Kind: directory
Schedule: normal
Last Changed Author: qlinpen
Last Changed Rev: 
4
Last Changed 
Date2009-12-07 17:33:17 +0800 (星期一, 07 十二月 2009)

 

C:\>svnlook info C:\Develop\MyRepository\Workspace \Ericsson\ECoupon
qlinpen
2009-12-07 17:34:54 +0800 (星期一, 07 十二月 2009)
25
create project Newsletter

可以看到虽然同样都是info子命令,但是两者的执行结果完全不同。实际上他们的输出主要包括

 A.svn info:显示本地或远程条目(Item)指定版本的信息
 B.svnlook info:显示指定版本的条目(Item)的作者、时间戳、日志大小、日志内容

对于svn info,它可以显示的内容非常多,有:
 •Path
 •Name
 •URL
 •RepositoryRoot
 •RepositoryUUID
 •Revision
 •NodeKind
 •LastChangedAuthor
 •LastChangedRevision
 •LastChangedDate
 •LockToken
 •LockOwner
 •LockCreated(date)
 •LockExpires(date)

除此之外还有一些额外的选项。可以看到svn info命令比svnlook info命令好用多了!实际上svn info命令不单可以用于显示本地条目信息,也可以用于显示远程(版本库)条目的信息:

C:\>svn info http://localhost:8000/svn/Workspace/Ericsson/ECoupon
Path: ECoupon
URL: http:
//localhost:8000/svn/Workspace/Ericsson/ECoupon
Repository Root: http:
//localhost:8000/svn/Workspace
Repository UUID: 06f3a259
-b3b5-ff4e-9a70-52e8834f1976
Revision: 
5
Node Kind: directory
Last Changed Author: qlinpen
Last Changed Rev: 
4
Last Changed 
Date2009-12-07 17:33:17 +0800 (星期一, 07 十二月 2009)

可以看到除了第一个输出Path有所不同之外,其它版本信息都是和本地工作拷贝(Working Copy)一致的。svn info命令不单可以用于显示目录的信息,对于文件同样也可以。而对于svnlook info命令,依然要记得的两点是:

 A.只能使用本地路径形式作为svnlook info命令的参数,不能使用URL
 B.可以使用PATH_IN_REPOS来限制只显示父路径下某个子路径的信息

【7】查看项目的实时状态信息
到目前为止,我们的ECoupon项目还是一个空的目录,下面我们将为它添加若干内容:doc目录、src目录、WebRoot目录。手工拷贝这三个目录到E:\Temp\ECoupon目录下。既然我们的项目已经加入了版本控制功能,那么现在我们的项目有了新的资源,SVN如何得知这种改变呢?或者说其他人如何知道呢?

还是回到我们的《SVN In Action (1)》系列的第2节--访问版本库,可以看到在那个命令列表的最后一列上边有一个:svn status命令。对了!就是这个命令。

svn status:显示本地工作拷贝和目录的状态信息

请注意的一点就是和svn list、svn info不同,svn status只能使用本地路径作为参数,也就是说你不能使用诸如:svn status http://...这样的命令。

svn status命令可以搭配不同的参数来显示不同的信息:

 A.如果不加任何参数,将显示所有本地修改的条目状态信息
 B.如果配合--show-updates参数,将额外显示所有本地out-of-date的条目信息
 C.如果配合--verbose参数,将显示详尽的状态信息,包括所有没有改变的条目
 D.如何配合--quiet参数,将只显示所有本地修改的条目的简介信息

和svn info命令相同,svn status会输出一大堆的内容。svn status的输出中,需要特别注意的是每一行的前6个字符,它们分别表示了6种不同的信息。现在我们需要关注的是前3个

 A.列1:显示该条目是属于新增(A)、修改(M)、还是被删除(D)或者其它的改变
 B.列2:显示该条目(文件、目录)属性的状态
 C.列3:显示该条目是否处于“锁定”状态(L)

现在我们来执行一下svn status命令
C:\>svn status E:\Temp\ECoupon
?      E:
\Temp\ECoupon\WebRoot
?      E:
\Temp\ECoupon\doc
?      E:
\Temp\ECoupon\src

很明显地我们看到在新增加的三个目录前面都有一个?,这说这三个目录都还没有加入版本控制。如果需要再详细地输出,只需要添加:--verbose参数
C:\>svn status E:\Temp\ECoupon --verbose
                
5        4 qlinpen      E:\Temp\ECoupon
?                                          E:
\Temp\ECoupon\WebRoot
?                                          E:
\Temp\ECoupon\doc
?                                          E:
\Temp\ECoupon\src
                
5        4 qlinpen      E:\Temp\ECoupon\my_VPN.txt

如果我们想查看除了本地修改之外,版本库中是不是有新的修改出现,而我们尚未同步到本地工作拷贝的,只需要添加:--show-updates参数
C:\>svn status E:\Temp\ECoupon --verbose --show-updates
?                                       E:
\Temp\ECoupon\doc
                
5        4 qlinpen   E:\Temp\ECoupon\my_VPN.txt
?                                       E:
\Temp\ECoupon\src
?                                       E:
\Temp\ECoupon\WebRoot
                
5        4 qlinpen   E:\Temp\ECoupon
Status against revision:      
5

可以看到和上一个命令执行结果相比,多出了一句话“Status against revision: 5 ”。这是因为:

 A.当svn status命令不带任何参数或只带除了--show-updates外的其他参数时,并不访问版本库。而是和本地的.svn目录比较
 B.当svn status命令搭配--show-updates参数后,将会访问版本库。

我们可以看到ECoupon目录和my_VPN.txt文件都是在版本号为4的时候创建的,当前版本号是5。


-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要尽力打好一手烂牌。
posted on 2009-12-08 10:09 Paul Lin 阅读(439) 评论(0)  编辑  收藏 所属分类: 项目管理

只有注册用户登录后才能发表评论。


网站导航:
 
<2009年12月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿(21)

随笔分类

随笔档案

BlogJava热点博客

好友博客

搜索

  •  

最新评论

阅读排行榜

评论排行榜