posts - 262,  comments - 221,  trackbacks - 0

【4】在版本库中创建目录


前面第3节我们提到了使用svn list和svnlook tree命令来查看版本库的目录结构。但是我们并没有讲到这些目录是如何创建并被添加上去的。现在我来演示一下这个过程:

对应于目录创建的命令是
svn mkdir,执行如下命令:

 svn mkdir http://localhost:8000/svn/Workspace/Ericsson/ECoupon 
   -m "Create top folder for porject ECoupon"

此时SVN会提示你输入用户名和密码,输入正确的用户名、密码后即可以看到如下输出:

 Authentication realm: <http://localhost:8000> Subversion repositories
 Password for 'Administrator': *******
 Authentication realm: <http://localhost:8000> Subversion repositories
 Username: qlinpen
 Password for 'qlinpen': ********

 Committed revision 3.

此时我们再次使用svnlook tree .查看版本库的目录树: 

 C:\>svn list http://localhost:8000/svn/Workspace/Ericsson
 ECoupon/

 C:\>svnlook tree c:\Develop\MyRepository\Workspace Ericsson
 Ericsson/
  ECoupon/

可以看到ECoupon项目目录已经被成功地创建。

svn mkdir命令即可以使用PATH作为参数,也可以使用URL作为参数。当使用PATH作为参数时会在本地新建一个目录,但不会立即加入到版本控制,需使用svn add命令显式地添加。如果是使用URL作为参数,则会立即在版本库形成一次版本而立刻执行,此时SVN要求用户必须显式地添加操作日志(通过-m 日志信息来说明)

我们可以在svn mkdir命令中使用--parents参数来连续创建多个父-子关系的目录。如:

 C:\>svn mkdir E:\Temp\ECoupon\parent\childen --parents
 A         E:\Temp\ECoupon\parent
 A         E:\Temp\ECoupon\parent\childen

当我们使用了--parents参数后,将不需要手工多次调用svn mkdir命令而可以一次性创建多个目录了

【5】为项目添加版本控制功能


在创建完目录之后,接下来就可以为项目添加版本控制功能了,为一个项目添加版本控制功能一般来说需要两个步骤:

 A.Import本地项目到版本库对应路径下
 B.Check out版本库项目到本地路径

这是两个相反的操作,我们需要记得的一点就是:

把项目import到版本库之后,项目并不会立即就被加入到版本控制中,还需要再从版本库中check out到本地原有位置才是真正地吧项目加入到版本控制。这一点和TCP/IP协议的三次握手过程类似。必须确保双方都知道对方的存在和联系。

下面我们在本地的E:\Temp目录下新建一个名为ECoupon的空目录(注意要和版本库上面的名字一样),然后把该目录下的所有内容import到版本库的对应路径下:

 E:\Temp>svn import ECoupon http://localhost:8000/svn/Workspace/Ericsson/ECoupon -m "import project ECoupon"

我们看到执行该命令后DOS客户端没有任何输出,这表明import成功。接下来我们再从版本库check out到本地:

 E:\Temp>svn checkout http://localhost:8000/svn/Workspace/Ericsson/ECoupon ECoupon
 Checked out revision 3.
 

这次我们看到控制台输出了“check out revision 3”,这说明SVN已经成功把项目加入到版本控制中了。此时本地E:\Temp\ECoupon目录下依然看起来没有特别,但实际上在该项目根目录下有一个隐藏的叫做“.svn”的目录。该目录的作用是:

 A.维护当前目录下各个资源和版本库的关联
 B.存储了每次本地的修改,用于以后的比较和恢复

好!只需要两步我们就可以轻松地实现为项目添加版本控制的功能了~。关于import和checkout命令,我们还有几个要注意的地方:

 A.当执行import命令时,操作将从源路径的下一级目录开始。也就是说假如我们import的是E:\Temp\ECoupon目录,那么将只有ECouopn目录下的内容会被import,而不包括ECoupon目录本身,所以我们在import时都必须先在目标路径建立好顶层目录。而checkout则会把项目顶层目录一同checkout出来

 B.checkout命令可以一次检出多个项目,例如执行:svn checkout URL1 URL2 ... URLn PATH 命令将会分别把这几个URL代表的项目检出到PATH目录下

     E:\Temp>svn checkout http://localhost:8000/svn/Workspace/Ericsson/ECoupon http://localhost:8000/svn/Workspace/Ericsson/Newsletter
     Checked out revision 5.
     Checked out revision 5.

 C.checkout命令如果不指定目标路径,将默认检出到当前路径



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

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


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

常用链接

留言簿(21)

随笔分类

随笔档案

BlogJava热点博客

好友博客

搜索

  •  

最新评论

阅读排行榜

评论排行榜