【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) 编辑 收藏 所属分类:
项目管理