SVN版本控制DOS下操作

来源:互联网 发布:域名服务器的作用 编辑:程序博客网 时间:2024/06/03 14:34

一,安装svn

1,下载Setup-Subversion-1.8.0-1.msi。

2,安装过程:傻瓜式安装,下一步即可,安装完成后,去系统环境变量中检查path变量是否配置了svn下的bin目录。

3,如果配置了bin目录,则打开dos命令行,任意目录下输入svn –version检查是否成功安装。

 

二,关于版本控制:

版本控制(Revision Control):是维护工程蓝图的标准做法,能跟踪工程蓝图从诞生一直到定案的工程蓝图。

在实际工程项目中,我们可以通过svn来提高整个项目工程的管理效率。在多人团队开发的项目中,需要将每个人做的工作汇总在一起,手动维护整个工程师非常复杂的,可以通过svn简化管理。首先,每个人都可以从svn服务器下载项目经理写好的原始工程,进行进一步开发。每天我们都会做出若干程序,每天工作结束之后,如果可以确定程序是正确的,那么就可以将做好的程序提交到svn服务器上,第二天再从服务器上下载下来进行开发。有的时候我们可能要多个人同时开发一个文档,如果手动维护这一个文档的整合,会很费劲,我们可以通过svn将我们做好的程序提交到svn上,之后同时开发这个文件的别的人就可以下载这个你写好的最新版本再进行开发,所以svn在团队项目中起到了很重要的作用。

 

三,第一个svn测试

1,我们提交到svn服务器的文件都是保存在仓库中的,所以必须先建立一个svn仓库才行。通过svnadmin create <仓库的路径> 即可建立一个仓库,

例如:svnadmin createE:\test\repository\svn\oa ,指定oa为仓库路径,可以在svn下建立多个仓库。生成的conf目录是仓库的配置文件。

2,启动svn服务

通过命令:svnserve –d –r <仓库路径> d是后台执行,r是版本库的根目录。

例如:svnserve –d –rE:\test\repository\svn\oa,

注意,这个dos命令行窗口开启以后就不可以关闭,关闭之后会将svn服务也关闭。

2.1,将svn服务配制成windows服务,

在命令行输入:“sc create svn binpath= " F:\java\svn\bin\svnserve.exe--service -r F:\java\repository\svn" displayname= "SVN-Service"start= auto depend= Tcpip”即可。

Create后的svn是命令名,通过在命令行输入svn即可执行svn服务的相关命令。

Binpath配置的是svn的bin中的svn启动服务的命令。

后面的一串路径配置的是仓库目录。

Displayname是在windows服务列表中显示的名字。

Start=auto设置为开机自动启动,可以在服务中将其改为手动服务。

Depend指明依赖的服务,tcpip。

配置完成后,我们就可以通过在命令行输入net start svn来启动svn服务,启动后该命令行窗口即可关闭,也可以在系统服务列表中将程序启动。,

3,在任意的位置建立一个文件夹,比如test,在test中建立一个user1文件夹,假如这个user1文件夹就是一个用户的工作目录,他需要在这个目录中提交每天完成的任务,下载更新每天需要做的任务。

Svn现在还不知道这个文件夹是用户的工作目录,要先通过checkout来将这个目录与svn服务关联起来,先在命令行进入user1目录,在命令行输入:

    svncheckout svn://localhost/oa . (.代表当前路径,将当前路径与oa这个仓库关联)

建立关联以后,可以在user1文件夹下发现一个隐藏的.svn文件夹,这是svn自动生成的,维护了与svn仓库的链接关系。

4,建立链接以后,在user1中建立一个文本文件,如a.txt,随便写点东西。在命令行进入user1目录,输入如下命令:

    svncommit a.txt      (如果不是当前路径,需要完成路径名)

第一次提交的时候会出现问题,首先会提示没有纳入版本库,是因为我们还没有将这个a.txt文件加入版本仓库,输入如下命令解决:

    svnadd a.txt

再次执行commit,依然会报错,提示提交的文件没有描述,这就需要为这个文件添加描述信息,通过下列指令完成:

    svncommit –m “user1 edit” a.txt

执行了这一句提交命令后,依然会报错,提示用户没有权限,需要给这个用户配置权限,去配置文件中将匿名权限修改为write权限。位置在当前仓库目录下的conf目录的svnserve.conf文件,将第19行改成anon-access = write,注意前面不能有空格。

注意:如果一个文件已经纳入到版本库,再次提交时就不需要再次纳入。直接commit即可。

5,通过上一步,就可以将我们的文件提交到svn服务器中了,当我们第二天上班时,需要下载这个文件的最新版本(因为别人可能也在开发这个文件,如果别人比你提交的晚,那么别人的版本就会比你的新,则需要在别人的版本的基础上再进行开发),当然别人也可以通过服务器来下载这个文件,下载文件通过一个命令即可:svn update <文件路径及名称>,本例中:

    svnupdate . (.即更新下载当前目录关联的仓库的所有文件)。

 

6,再在test目录下建立一个user2文件夹,同样通过checkout将user2与oa仓库关联,checkout以后就将oa仓库中的user1提交的a.txt文件下载下来了,接下来将a.txt文件进行修改,再在user2文件夹下建立一个b.txt文件,随便写点内容,按照上面的步骤commit到svn。

接下来进入user1目录,执行update下载更新,这时会将user2提交的b.txt文件下载到user1的工作目录,打开a.txt,会发现得到的是user2修改后的文件,而b.txt则是user2创建的文件。

 

通过上述过程,可以很清晰的了解到svn的工作过程,svn对于团队项目的协同工作很有帮助,现在很多企业都在用svn。

 

四,一个svn应用实例:


1,首先基本代码由项目经理或者架构师来编写,基本代码只是一个整体框架,比如有已经导入的所有需要的jar包,工具类等。然后交由具体开发人员编写代码。

2,然后由项目组开发人员开始开发1.0版本,开发完成后交给销售部门销售。

3,这时候可能销售的业绩很好,那么项目组很可能继续研发2.0版本。

4,在2.0版本的研发过程中,1.0的用户提出一个很严重的bug,不得不改,所以项目组会选取一部分人员去修复这个bug,剩下的人继续研发2.0版本,修复完的版本是1.1版本了,1.0版本保持不变。

5,但是从1.0版本演变过来的2.0版本,还是存在之前的bug的,所以2.0版本需要将修复bug的1.1版本合并。

6,这就可以使用svn工具进行合并,合并之后2.0中的bug即可修复,而各个版本保持自己的原样,并不会改变。


原创粉丝点击