第一步:下载Subversion
CollabNetSubversion-server-1.8.5-1-Win32.exe 点击exe文件
1)安装时,会出现两个组件 SVNSERVER Apache ,前者是Subversion的服务器,而Apache是可选的。
2)svn_repository是初始的资源库,可以随意指定一个文件夹 , 最后选择SVN软件安装路径
3)创建资源库(Respository)
C:\Users\Administrator>svnadmin create F:\SVN\svn_repository
其中svnadmin是svn的管理命令,create表示创建资源库,而 F:\SVN\svn_repository 表示资源库所在文件夹路径
4)设置访问用户
在 conf\passwd 文件夹中,最后增加一行代码 wanhao = 123456
即"用户名=密码"方式
5)配置认证和授权文件
svn_repository\conf\svnserver.conf 文件取消 password-db=passwd 这一行前面的 '#'。(注意,这一行前面一定不能留空格!)
6)启动SVN服务
svnserve -d -r F:\SVN\svn_repository
svnserve 是SVN服务管理的命令 -d 表示该服务是由守护线程启动的(也叫后台线程) ,-r F:\SVN\svn_repository 表示启动资源库所在的根目录。
只要不关闭命令行窗口,SVN的服务就一直存在。
第二步使用Subversion 客户端 TortoiseSVN
1)下载 TortoiseSVN-1.8.5.25224-x64-svn-1.8.8.msi
直接双击,安装的位置可以改变,然后全部使用默认的配置。
安装完毕后,需要重启一下电脑。
在任意文件夹下点击右键就可以使用TortoiseSVN菜单了。
2)浏览资源库(先确保启动了服务器端Subversion服务)
在快捷菜单中选择 TortoiseSVN|Repo-browser 将弹出输入资源库地址的对话框。
输入URL svn://localhost/ svn就是访问SVN服务器的协议,localhost为服务器的地址。若是服务器在局域网中,也可以设置局域网的IP地址。若是装了Apache服务器,则可以通过 http:// 访问。
左侧为资源库中所有文件,右侧是文件夹和文件夹的详细信息,可以通过左侧来浏览资源库中各个文件。
3)在资源库中增加文件夹
在跟路径下创建三个文件夹 trunk目录 branches目录 tags目录
trunk目录:程序的主目录,通常源代码的一些文件会保存在这里。
branches目录:保存的是主程序的分支文件,比如同一个软件,可能出现分支开发的情况,可以把分支代码放在这里。
tags目录:保存的是源代码每个版本的备份,比如当软件版本从version1.0到version2.0时,需要有一份代码的备份,以备未来能够随时找回原来的版本。
4)导入文件到资源库(import)
选中一个文件夹,右键TortoiseSVN import , 便会把这个文件导入到项目中了。被导入的文件便成了共享文件,其他用户(你赋予权限的用户)便可以通过客户端获得这些共享文件了。
注意,URL of respository 应该填写具体路径 如 : svn://localhost/trunk/GreatHomeWork
5)从资源库中迁出(check out)
先要建立一个与待迁出文件同名文件夹GreatHomeWork 在此文件夹上右键SVN Checkout
点击OK,完成迁出。
发现迁出的文件夹和文件都使用了带有对勾的绿色图标,表示从SVN中迁出的,并不仅仅是文件的备份。
6)更新(update)-修改-提交(commit)
一个用户把项目导出,更改了部分内容,修改完提交。与此同时,另一位朋友也在修改项目,就会发生冲突。但是这样做效率得到提高,一般都使用这种方式。
先点击导出的项目,右键 SVN Update ,更新资源库。这样可以保证在修改之前使用的是最新的版本。
更新的文件游玉友不同的更新类型,所以会使用不同的颜色标识。
紫色:资源库中新建的文件。
深红色:资源库中的是一个删除或替换的文件。
绿色:资源库中与本地的文件的合并。
红色:资源库中的文件与本地的文件有冲突,需要解决冲突。
黑色:其它的默认文件。
红色表示有冲突的文件,需要自行查找。
新建文件,然后 TortoiseSVN|Add 选项。客户端便会认为这是一个新建的文件,但注意到此时并没有真正添加到资源库中。
删除文件,选中待删除的文件,TortoiseSVN|Delete 命令。
修改文件,修改后的文件,会使用一个红色的圆点标注,这样便可以看到每个文件与资源库文件的状态了。
在未提交之前,用户所有的操作都只是针对本地的操作,而并没有真正地更新到资源库中。
一旦完成修改,用户要尽早提交,这样可以尽量避免冲突。
提交右键SVN Commit... ,然后会弹出一个Check确认对话框,在这个对话框中,选中的为打算提交的,没选中的为不提交的。
7)锁定(lock)-修改-提交-解锁
锁定:选中待锁定的文件夹,右键TortoiseSVN|Get Lock命令。
被锁定的文件,只有被解锁,其他的用户才会继续修改这个文件。
解锁:选中已经锁定的文件 , 右键TortoiseSVN|Release lock 命令。
文件被锁定的过程中,其他的用户不知道文件已被锁定,只有当其他用户提交时才会知道被锁定。所以为了避免其他用户修改一个已经被锁定的文件,用户应当尽量多执行Update操作,这样才能获取到最新资源库中的文件状态。
8)异常处理
有两个人同时修改了文件,第一人先提交,第二人提交便会发生错误。因为提交时已经不是最新版本了,需要提交之前Update一下。
一旦发生冲突,SVN会在冲突的文件中这样标注:
<<<<<<< .mine
#这是我做的修改=======
#这是我为sceond做的修改>>>>>>> .r11
========前的内容是用户自己修改的,后面的为版本库中已经有的。
同时,会在冲突的文件下自动生成三个文件
以下的 “。” 实际指 “.” ,为了使其更明显
1. 冲突的文件名。冲突的文件类型。mine 里面放着第二个人已经修改过的文件。
2. 冲突的文件名。冲突的文件类型。更新备份前的基础版本 这就是两个人修改之前的文件。
3. 冲突的文件名。冲突的文件类型。第一个人更新后存在版本库的文件 也就是第一个人修改完的文件。
比如我第二次修改了log4j.properties commit发生错误。mine表示第二个人修改后的文件 r12表示最开始的文件 r13即代表版本库最新的文件。
解决冲突的办法:
选中第二个人已经修改的文件(版本最新的文件)和我(.mine)的文件, TortoriseSVN | Diff 命令。
此时会弹出 TortoiseMerge 工具,把两个文件不一致的地方显示出来,然后便可以找出冲突的原因。
可以手动修改合并冲突的文件,然后设置为已解决(Resolved),然后便允许提交。
或者将冲突的文件恢复(Revert)到最新版本,然后在最新版本的基础上将解决冲突后的代码放进去,然后提交。但需注意,更新本地文件版本时,本地的修改会丢失,所以要事先备份下文件。
注:更新(Update)与恢复(Revert)都是从资源库中获得最新版本,但他们之间最大不同是恢复不会保存本地的修改,所以要慎用。
some tips:
查看修改日志,在要修改的文件上右键 TortoiseSVN|Show log ,便可以查看修改日志了。
建议每次上传都写上log,对他人,对自己都有好处,也就耽误自己1分钟时间。
可以比较日志,同时选中两个日志记录,Compare revisions
恢复到以前版本,在要恢复的文件上右击,选择Update to revision ,然后便可以选择自己想要恢复的版本号进行恢复。
设置功能,任选一个文件,右键 TortoiseSVN|Settings 命令。
与MyEclipse集成
1.下载 site-1.10.9.zip ,然后解压到 MyEclipse 10\dropins 重启myeclipse即可。
2.切换视图到 SVN Repository Exploring 。
3.将myeclipse中的项目与资源库中的文件同步。
① File ->New ->Other->SVN->Checkout Projects From SVN
②选择之前创建过的资源库,并选择资源库中的项目名,单击Finish
③然后便可以使用Subclipse其他的客户端功能了。比如提交,右键点击项目,选中team,commit等。