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

八.修改完毕后,提交

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

 
时间: 2024-10-13 03:00:23

SVN使用心得的相关文章

SVN appears to be part of a Subversion 问题心得

昨天更新了下项目,但同时又增加了一个Java工程,我就在本地单独导出到workspace同目录下:结果第二天提交代码的时候,提示如下错误 svn: E155021: The path 'xxx' appears to be part of a Subversion 1.7 or greater working copy. Please upgrade your 究其原因:是.svn文件多重覆盖了.以后checkout工程,注意不要和现有工程目录.svnc重复了..... 来自http://blo

SVN的使用心得

SVN 1. 安装: server:Setup-Subversion-1.8.9-1.msi 测试:cmd ---> svn --version [注意:安装目录最好不要使用中文路径名] 2. 创建版本库: 1)在本地创建一个SVN仓储的目录(如:SvnRep) 2)在该目录下创建目录(以所要管理的项目名为目录名,如:OA) 3)创建版本库:svnadmin create 版本库目录全路径 (如:svnadmin create F:\workspace\SvnRep\OA) 3. 启动服务器:

【转】用 SVN Importer 实现 CSVNT 到 SVN 的转换

转载地址:http://www.blogjava.net/yongbing/archive/2007/03/04/101761.html 用 SVN Importer 实现 CSVNT 到 SVN 的转换 SVN Importer.用了一下,发现能够完美的将 CVSNT 仓库转换为 Subversion 的版本库,比那个小日本的 cvs2svn 好太多(用 cvs2svn 转换 CVSNT 仓库会破坏 word 文档,估计其他二进制文件的转换也不支持 ).两个小工程转换成功,还有一个大工程在处理

奶爸程序员的“育儿”心得

自我介绍一下,本人以前是.net程序员,去年下半年负责把项目从.net转到java,并且有跨机房迁移,亿级访问量,app服务端项目. 自我吐槽一下,工作了8年了,没有成为架构师,也没有进入管理层,没有成为技术大师,也没能成为分享大师.一直在做业务,并在这条路上越走越远.有的时候觉得很尴尬,但又有的时候觉得还蛮适合自己.过年之前,老婆生了一个小公举.宝宝饿了,"老婆快来喂奶!",宝宝又饿了,"老婆快来喂奶!",宝宝睡醒了又饿了,"老婆快来喂奶!"-

微信公众账号开发历程及心得01

1.昨天主要使用BAE对php的开发接口测试代码进行了调试,使用SVN,将对checkout下载的index.php进行代码编写,并再次上传commit.在微信中配置相应url和token即可. 2.今天主要进行j2ee的开发部署与功能学习,初次听说到dom4j从xml进行解析的开源框架,还有xstream实现Java类到xml的转换的jar包. 利用这两个便可完成对微信平台所发消息的xml解析及消息回复的xml封装.中间业务过程便是j2ee的知识了~ 3.在部署时有些问题需要注意.java类型

[转]IntelliJ IDEA 使用心得与常用快捷键

IntelliJ IDEA 使用心得与常用快捷键 那种酸爽,根本说不出来—————————————————————————— by: Jimi没有BondJimi是谁? 就是洒家啊! 刚开始学习写Java的时候,用的eclipse,正式工作后,主要用的myeclipse,去年初在前辈的推荐下,在2折的时候买了正版的 IntelliJ IDEA 和 Pycharm,12.0版终生使用,一年更新.使用前早就久闻其名,据说是最好的Java开发工具.起先用的非常不习惯,但是花了钱的,硬着头皮用了下去.短

【转】CocoaPods安装使用心得,分享给墙内的朋友们

原文网址:http://www.cocoachina.com/bbs/3g/read.php?tid=277900 时间宝贵长话短说.CocoaPods是一个负责管理iOS项目中第三方开源代码的工具.如果你没听说过,也不想用,那就别往下看了. 1.CocoaPods的安装需要用到ruby,Mac系统自带ruby,但如果不是最新的系统,最好更新一下.ruby的软件源rubygems.org被墙了,所以先换一下源,命令行下依次执行3条命令$ gem sources --remove https://

“智&#183;商”商业技能大赛网站开发心得记录

"智·商"商业技能大赛官方网站开发心得记录 现在才来写这篇东西-不是因为忙,而是懒! 这个寒假接到了师弟的一个需求, 请我帮忙去做他们学院一个活动的官方网站,我大概了解之后就接下来了,于是我找了我基友跟我一起做这个网站. 需求是这样的: 竞赛介绍:介绍竞赛来源.历史.举办单位.本届情况等: 通知公告:主要为比赛公告等: 注意事项:关于比赛的注意事项. 队伍注册:在线注册队伍,以队伍为单位参加比赛: 试卷设置:添加试卷试题:包括设置答案以及分值: 在线答题:提供在线同时统一答题功能: 初

推荐免费的svn空间(SVN代码托管)

推荐免费的svn空间(SVN代码托管) 最近研究了国内和国外的免费svn空间,SVN代码托管,SVN在线,代码托管中心,有所心得. 1.http://www.svn999.com/ [推荐]国内的,免费的,申请很方便,而且访问速度很快,很稳定(svn服务最重要的是这个指标,这样才能提高团队合作的效率,提高产出),没有国外vpn的可以使用下. 2.https://opensvn.csie.org/ [推荐]只要简单注册就可以使用SVN服务.可以自主管理用户,用户不必在他那注册,在后台直接添加用户就