SVN使用心得

CVS全称是Concurrent Version System,所以这里有一个Version的概念,这个Version在本地和服务器上都存在当你commit一个文件到服务器时,服务器会先检查你要commit的版本和服务器版本,如果两个没有冲突则更新成功,如果有冲突则报错。同样的,对于update操作来说,服务器只管更新比自己的版本低的,所以你修改了以后的本地文件不会被更新。

1.如果你动了SVN(或CVS)上的某个东西,而未commit到服务器上,此时你如果你用update操作,不会把SVN上的东西更新到你本地,也就是说,你在你的机器上看到的还是你更改之后的东西.
2.在commit操作之前,最好要先update一下,原因是有可能别人把新版本放到服务器上了,而你并未更新到你本地,此时如果你没有进行update操作,而直接commit,就会报错.
3.如果你想放弃你的修改,直接采用服务器里的页面,你必须先把你的修改还原,然后再从服务器上update下来就OK了.

掌握原则
1、Team-synchronize
2、Incoming Mode 全部update
3、Outgoing Mode 全部commit
4、Confilcts Mode 解决冲突,另存、对比、Override and Update、修改、Commit

若从资源库更新代码,建议打开SVN Console窗口查看SVN的更新日志,日志中一般会出现以下几种代码标识,如下图所示的C:

其中:A代表添加,表示增加的文件。D代表删除,表示删除的文件。U代表更新,表示更新的文件。C代表合并,并且合并中有冲突的文件,可能会引起代码报错等G代表合并,合并中没有冲突的文件。如图所示在Console中出现C,表示自己修改的本地文件中某些代码和别人修改并更新到SVN上的文件中的代码发生了冲突。

svn 为什么自动生成R.java.mine,R.java.r3368,R.java.r3439?

这是因为发生冲突了,你和别人都从3368这个版本对r.java这个文件进行了修改,别人修改后先提交了形成3439版本,然后你做了提交操作,这时为了避免你覆盖别人的修改工作,SVN提示你发生了冲突,并自动形成R.java.mine、R.java.r3368、R.java.r3439这三个文件。
其中:
R.java.mine是你自己修改后准备提交的那个版本;
R.java.r3368是你们的初始版本;
R.java.r3439是别人赶在你之前提交的那个版本;

另外应该还有个R.java是自动合并了你的版本和别人提交的版本形成的(其中用<<<<<、======、>>>>>等符号标记出了自动合并的部分)。
自动生成这些文件的目的是便于你手动合并你们两个人的修改。这时建议你查看一下这个文件的历史记录,看看3439这个版本是谁提交的,问问他修改了什么地方,然后你手动将你们两个人的修改合并到同一个文件r.java中,然后使用SVN标记“冲突已解决”,标记后多余的文件会被自动删除,然后你就可以正常提交了。

一.下载SVN服务器端安装,配置

1.SVN是目前软件开发中,最流行、最先进的版本控制工作,比起VSS、CVS等版本控制工具,具有很多优势。

2.SVN分为服务器端和客户端

   服务器端指Tigris SVN;客户端包括Tortoise SVN,Eclipse SVN插件,这两者也是最常用的

3.SVN相关软件下载地址:

服务器端:http://www.tigris.org/

   客户端Tortoise SVN下载地址:http://tortoisesvn.net/downloads.html

   Eclipse SVN插件下载地址:http://subclipse.tigris.org/

4.SVN服务器端部署步骤:

   1.下载安装,傻瓜式安装,很简单

   2.安装完毕之后,创建资源库(Repository),将来存放所有项目资源的仓库,命令如下(cmd下执行)

     svnadmin create d:\SVNRepo\Repo1

     Repo1就为创建的资源库

   3.资源库创建完毕之后,找到D:\SVNRepo\Repo1\conf\svnserve.conf文件打开,修改

     修改之前为:

     [general]

     ### These options control access to the repository for unauthenticated

     ### and authenticated users.  Valid values are "write", "read",

     ### and "none".  The sample settings below are the defaults.

     # anon-access = read

     # auth-access = write

     ### The password-db option controls the location of the password

     

     ### Uncomment the line below to use the default password file.

     # password-db = passwd

     ### The authz-db option controls the location of the authorization

     修改之后为:

     [general]

     ### These options control access to the repository for unauthenticated

     ### and authenticated users.  Valid values are "write", "read",

     ### and "none".  The sample settings below are the defaults.

     anon-access = read

     auth-access = write

     ### The password-db option controls the location of the password

 

     ### Uncomment the line below to use the default password file.

     password-db = passwd

     ### The authz-db option controls the location of the authorization

 

     注意:anon-access = read

          auth-access = write

          password-db = passwd,每行的前面不能有空格

   4.创建用户,配置访问权限

找到D:\SVNRepo\Repo1\conf\passwd,添加用户及密码,建完之后,该用户就可以向资源库中提交项目,添加用户zs,密码zs

     [users]

     # harry = harryssecret

     # sally = sallyssecret

     zs = zs

   5.启动SVN服务器

     svnserve -d -r D:\SVNRepo\Repo1

 

二.在MyEclipse中打入SVN客户端插件,分为自动更新和

  注:SVN客户端有很多,最常用的是MyEclipse客户端插件和SVNTortoise客户端

  MyEclipse_SVN客户端插件下载地址:http://subclipse.tigris.org/

  SVNTortoise下地址:http://tortoisesvn.tigris.org/

1. 自动更新,即通过Eclipse直接连接到外网进行更新,具体步骤参照:http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA

2. 手动更新,手动下载Eclipse SVN插件软件包,解压后的内容直接拷贝到Eclipse的对应目录即可

    3.打开Eclipse,可以看到SVN资源库如下,说明SVN客户端插件已经安装成功:

三.建立项目

四.将项目共享到SVN资源库服务器

  鼠标右键项目-->Team-->Share Project-->资源库位置:svn://IP地址,Share Project只是将本地项目与SVN资源库建立了一个目录对应关系,并没有将项目实际提交到SVN资源库,接下来,将项目提交至资源库

五.将项目提交到SVN资源库服务器

   鼠标右键项目-->Team-->提交,此时将新项目真正提交到了资源库,这样,其它开发人员,就可以通过客户端从资源库取到提交的项目了

   另:也可以使用TortoiseSVN将项目提交到资源库。   

六.客户端开发时,将项目从SVN服务器"检出为"

   当开发人员第一次从资源库取项目时,

   (1),建立资源库位置

   (2),右键资源库-->检出为

七.要修改代码,务必先更新,从资源库取最新的文档,再修改

最常用的:

Update:从资源库取最新的项目

Commit:修改之后,将修改的内容提交到资源库

Sychronize:将本地项目与资源库进行同步,看本地项目与资源库有哪些差异,涉及到代码修改冲突时,就可以用了

八.修改完毕后,提交

注:当两个人同时修改一个文件时,必须一个修改完成,提交之后,另一个再取最新版本进行修改,这样就需要人为的进行沟通了,版本控制工具再好,也代替不了所有的人为沟通

 
文章来自:http://www.cnblogs.com/dobestself-994395/p/4321968.html
© 2021 jiaocheng.bubufx.com  联系我们
ICP备案:鲁ICP备09046678号-3