posts - 262,  comments - 221,  trackbacks - 0

【8】添加新的内容到版本控制


在上一节中我向E:\Temp\ECoupon添加了三个目录:doc、src、WebRoot,但是目前他们还没有被加入到版本控制中。SVN提供了svn add命令来帮我们把资源加入到版本控制中。执行如下命令: 

 

c:\>svn add E:\Temp\doc E:\Temp\src E:\Temp\WebRoot

我们可以看到如下的输出
A  (bin)  E:\Temp\ECoupon\doc\UML Diagram\ECoupon activity diagram.png
A  (bin)  E:
\Temp\ECoupon\doc\UML Diagram\ECoupon class assoication diagram.png
A  (bin)  E:
\Temp\ECoupon\doc\UML Diagram\ECoupon user case diagram.png
A  (bin)  E:
\Temp\ECoupon\doc\UML Diagram\ecoupon.umr
A  (bin)  E:
\Temp\ECoupon\doc\UML Diagram\WebPage flow.doc
A         E:
\Temp\ECoupon\src
A         E:
\Temp\ECoupon\src\applicationContext.xml
A         E:
\Temp\ECoupon\src\com
A         E:
\Temp\ECoupon\src\com\three

将会在终端看到很多输出,其中A表示新增内容。默认情况下如果svn add 的对象是一个目录,则目录下的所有内容都会被加入版本控制。如果我们不想这样做,而是只添加目录(通常情况下发生在日志目录下)。我们在执行svn add 命令的时候加上参数--non-recursive(-N)。

此时再执行svn status命令会如何呢?
C:\>svn status E:\Temp\ECoupon\doc
A      E:
\Temp\ECoupon\doc
A      E:
\Temp\ECoupon\doc\Requirement
A      E:
\Temp\ECoupon\doc\Requirement\ecoupon-requirement.txt
A      E:
\Temp\ECoupon\doc\Requirement\ECoupon功能列表.xls
A      E:
\Temp\ECoupon\doc\Requirement\tip.txt
A      E:
\Temp\ECoupon\doc\UML Diagram
A      E:
\Temp\ECoupon\doc\UML Diagram\ECoupon class assoication diagram.png
A      E:
\Temp\ECoupon\doc\UML Diagram\WebPage flow.doc
A      E:
\Temp\ECoupon\doc\UML Diagram\ecoupon.umr
A      E:
\Temp\ECoupon\doc\UML Diagram\ECoupon user case diagram.png
A      E:
\Temp\ECoupon\doc\UML Diagram\ECoupon activity diagram.png
A      E:
\Temp\ECoupon\doc\CustomerClas

关于svn add命令我们有2个需要注意的地方:
 A.和svn status命令一样,svn add命令只能使用PATH,而不能使用URL作为参数
 B.当svn add命令执行完毕后,相关资源并不会马上立即被加入版本控制中,需要再执行一次commit

C:\>svn commit E:\Temp\ECoupon -"add doc,src,webroot folder for project"

我们将可以看到如下类似输出
Adding         E:\Temp\ECoupon\src\com\three\hk\ecoupon\util\Pager.java
Adding         E:
\Temp\ECoupon\src\com\three\hk\ecoupon\util\config.properties
Adding         E:
\Temp\ECoupon\src\hibernate.cfg.xml
Adding         E:
\Temp\ECoupon\src\log4j.properties
Transmitting file data .

.
Committed revision 
6.

【9】更新本地工作副本
在团队合作的项目,经常是几个人分别维护不同的部分。为了保证自己的代码始终是最新的,我们需要经常执行更新操作---把版本库的最新内容同步更新到本地。在SVN中可以通过svn update命令来达到目的。

现在我们已经把新的资源添加到版本库了,那是不是代表现在我们本地的工作拷贝就是最新版本的了呢?
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:
\>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: 
6
Node Kind: directory
Last Changed Author: qlinpen
Last Changed Rev: 
6
Last Changed 
Date2009-12-08 12:05:15 +0800 (星期二, 08 十二月 2009)

可以见到,我们本地工作副本的版本号依然是5,而不是6。这意味着虽然刚刚commit的操作由我们发出,但如果我们不主动从版本库更新,SVN是不会在commit后主动更新本地工作副本的版本的。

我们需要在每次commit后立即update,已保证我们最新代码被上传到版本库的同时,他人的最新代码能够被及时更新到本地

C:\>svn update E:\Temp\ECoupon
At revision 
6.

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: 
6


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

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


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

常用链接

留言簿(19)

随笔分类

随笔档案

BlogJava热点博客

好友博客

搜索

  •  

最新评论

阅读排行榜

评论排行榜