SubVersion配置和命令运行方式

来源:互联网 发布:收集数据的网站 编辑:程序博客网 时间:2024/05/29 04:06

1)我这里用的SubVersion版本是, svn-1.4.5-setup.exe。下载完毕后双击该文件进行安装,该安装过程与一般的软件没有任何区别,选择默认即可,一路回车,最后完成。这样我们的SubVersion服务器端软件就安装完毕了。

SubVersion配置和命令运行方式

SubVersion配置和命令运行方式

转到svn安装的目录下去看看,其中有一个BIN的目录,SVN的所有执行命令都在该目录下。

SubVersion配置和命令运行方式

      注意:SVN的命令是基于命令行的,所以我们不能直接双击这些命令来执行他们,我们需要到命令行窗口去执行他们。 SVN的服务器端软件同样包含了客户端执行的一些命令,我们可以利用这些命令来完成我们日常的版本控制管理工作。与CVS的使用方式一样,我们首先需要在服务器端建立仓库(repository)。在安装完毕SVN后,他会将安装目录中的BIN目录加入到系统path中,可以通过右键点击我的电脑,选择高级—>环境变量,查看path环境变量的值。

SubVersion配置和命令运行方式

SubVersion配置和命令运行方式

       如图,我们可以看到BIN目录已经增加到path环境变量里面了,这样我们在利用命令行使用SVN的命令时就不必每次都转到他的安装目录了,方便了我们的使用。如果有的人安装完毕后在path环境变量中没有发现增加的值,可以手动完成这个工作。

2)现在我们需要首先创建一个仓库(repository),假设我们的仓库创建位置为:E:\svn\repository目录下,我们需要先在硬盘上创建该目录。

命令行输入:svnadmin create E:\svn\repository

SubVersion配置和命令运行方式

如图,执行完命令后,SVN没有给出任何信息,这说明我们的版本库已经创建成功了,我们这时再到E:\svn\repository下去看看。

SubVersion配置和命令运行方式

       可以看到SVN已经在该目录下生成了很多文件夹和文件,这些文件就是SVN进行版本管理时所需要的,我们在日常开发中是不会直接接触到这些文件的。现在服务器端的仓库已经创建成功了,接下来就是在客户端创建一个项目,然后将该项目import到服务器端,将其纳入SVN的管理之下。不过在创建项目之前我们首先需要启动服务器,服务器启动后才会进行网络侦听,检查到客户端的相关命令请求。在命令行中输入如下命令:svnserve –d –r E:\svn\repository,该命令含义为让SVN将此目录作为仓库,并侦听客户端的请求。其中-d的作用为后台模式,而-r的作用为指定服务器的仓库路径。

SubVersion配置和命令运行方式

如图,当服务器启动后,请不要关闭该命令行窗口,否则也会把svnserve服务停下来,接下来的操作我们可以另外打开一个命令行窗口进行。

3)假设我们的客户端创建的项目在E:\test\client,我们在该目录下创建一个文件夹child和一个文件test.txt,并在该文件中增加一些文本(随便一些文字就可以)。目录结构如下:

SubVersion配置和命令运行方式

我们首先将命令行的当前目录转到E:\test目录下,在命令行中输入如下命令:svn import svn://localhost,其中svn://localhost表示的是SVN服务器的ip地址,这里就表示是我的本机地址。另外SVN实现了自己独有的协议SVN协议,所以我们可以看到url形式是svn://localhost这样的,这个命令的作用就是将当前目录以及其所有子目录和文件import到服务器上去,纳入SVN的管辖范围中。

SubVersion配置和命令运行方式

执行完毕后我们发现该命令失败了。

SubVersion配置和命令运行方式

通过命令行的说明我们看到,该命令要求我们指定好一个记录日志的文件或者在系统环境变量中增加一个SVN_EDITOR的变量。二者选一就可以了,那么我们可以增加一个SVN_EDITOR的环境变量。该变量的值我们就取为系统自带的记事本就可以了。方法同前述查看path环境变量一样。

SubVersion配置和命令运行方式

点击确定即可。现在我们再一次运行之前的import命令。我们发现命令依然失败,并且失败的原因与刚才一样。其实这是由于我们修改了系统环境变量后还是使用当前的命令行窗口造成的。当修改了环境变量后一定要重新打开一个新的命令行窗口,这样修改才会生效。关闭当前命令窗口,重新打开一个命令窗口。

当我们输入命令回车后,出现这个信息窗口,这证明了我们的环境变量的增加是正确的,关闭这个窗口。出现以下窗口。

 SubVersion配置和命令运行方式选择c,继续

SubVersion配置和命令运行方式

如图,出现认证失败的信息,这说明我们已经连接到了SVN服务器,不过服务器认为我们的客户端没有相应的权限,所以这时我们改变一下SVN的认证权限。回到SVN仓库,即E:\svn\repository目录,进入conf目录,用文本编辑器打开svnserve.conf文件。

我们看到这里是关于访问SVN仓库的一些认证设定,找到第12行:anon-access = read,这表示匿名用户的访问权限是读,并且大家注意到,该行前面有一个警号:#。这表示该行是被注释掉的,这与Java的属性文件的注释方式是一致的,这也就说明了此时SVN服务器是不允许匿名登录的,那么我们现在可以将该行前的#号去掉。不过现在客户端也只可以匿名读,我们的import操作是写操作,所以我们在该行下增加一行anon-access = write。如图

SubVersion配置和命令运行方式

保存,关闭该文件。这时我们需要停止之前的svnserve的服务,然后重新启动,让它接受我们的改变,转到它的命令行窗口,用ctrl+c停止它,再重新启动。

SubVersion配置和命令运行方式

现在回到之前的命令行窗口,重新执行import命令。

 SubVersion配置和命令运行方式选择c,继续。

SubVersion配置和命令运行方式

OK,大家可以看到,我们的import操作成功执行了。已经增加了三项,分别是client,child和text.txt。

4)我们在本机再建一个目录,位置为E:\test2\client2,再里面创建一个文件夹child2和一个文本文件test2.txt,在test2中输入一些文本(随便一些文字即可)。

打开命令行,执行以下命令:svn mkdir svn://localhost/project2

 SubVersion配置和命令运行方式关闭弹出来的窗口,继续

SubVersion配置和命令运行方式

OK,执行成功。该命令的作用是在服务器端创建一个虚拟目录project2.今后我们的项目可以import到该目录下,现在我们就开始这个操作。

      将命令行窗口定位到E:\test2目录下,执行以下命令:svn import svn://localhost/project2

SubVersion配置和命令运行方式

       OK,执行成功了,这时我们可以到E:\svn\repository目录下去看看,我们发现这与CVS很不一样,我们现在看不到我们import的文件和目录在什么地方,实际上这都由SVN替我们做好了,我们不用去关心他了好了,import操作我们掌握好了之后,下面开始checkout操作,该操作与CVS一样,就是将服务器上的一个模块检出到本地,作为一个工作拷贝。大家可能注意到,每次执行一次SVN命令后,都会弹出一个窗口,很不方便,这就是由于我们之前设置的SVN_EDITOR环境变量造成的,所以现在我们把该环境变量删除,不过删除后我们的命令就不能执行成功了,原因在前面我们已经遇到了。不过我们可以采用提示中的另一种方法,就是建立一个日志文件,然后输入命令时指定这个日志文件就可以了,不过这样的话就要求我们每次输入命令时都需要指定这个日志文件的位置,所以到底用哪种方式就看大家的喜好了。

       OK,我们在C盘下简历一个文本文件作为日志文件log.txt,内容为空,并且删除SVN_EDITOR环境变量。

SubVersion配置和命令运行方式

在E盘下新建一个目录myclient作为检出的项目的存放目录。将命令行当前目录转到该目录,输入如下命令:svn checkout svn://localhost/project2

SubVersion配置和命令运行方式

OK,命令执行成功。到myclient目录下去看看。

大家可以看到,我们已经成功检出了之前import的项目了。并且每一个文件夹下都有一个.svn的隐藏文件夹,这与CVS是类似的,是SVN记录文件版本的文件,我们不要改动或者删除他们。

5)使用commit与update命令。

将test2.txt文件进行一些修改,保存,关闭。打开一个新的命令行窗口,转到E:\myclient\project2\client2目录下:输入命令:svn commit test2.txt,回车。

SubVersion配置和命令运行方式

如图:出现以上信息,说明我们的工作拷贝已经被锁定了,不能提交。 根据提示,我们清除锁定,输入:svn cleanup。

 SubVersion配置和命令运行方式现在已经解锁了,我们再次执行提交命令。

SubVersion配置和命令运行方式

如图,又出现一个新错误,根据提示我们看到,错误提示我们没有指定日志文件位置,原因在于我们已经将SVN_EDITOR环境变量删除了。好,那么现在我们指定之前建立的日志文件C:\log.txt. 重新执行以下命令:svn commit test2.txt –F c:\log.txt。

SubVersion配置和命令运行方式

OK,我们看到commit命令终于执行成功了。我相信经过这次操作,大家对于commit命令已经熟练掌握了。

update命令类同,但要注意,update不是对服务器进行写操作,而是从服务器取文件,即读操作,所以不需要加上 –F C:\log.txt选项,这点一定要注意。

6)从头开始,我们就一直用命令的方式,就是让大家更好的了解svn的工作模式,这些动作都可以用客户端进行,就是TortoiseSVN。

转自:http://blog.sina.com.cn/s/blog_4e7a61b50100dwli.html

0 0