目录:


    SVN 是什么?


    TortoiseSVN 和 VisualSVN Server 安装


    创建版本库、用户


    检出


    更新与提交


    历史信息与版本回退


    解决冲突


1. SVN 是什么?


SVN 是 Apache Subversion 的缩写,是一个开放源代码的版本控制系。这些数据放置在一个中央资料档案库(repository) 中。 这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史。


SVN 一些概念


    repository(版本库):文件统一存放的地方。


    checkout(检出):当你手上没有源文件的时候,你需要从repository 提取一份。


    commit(提交):当你已经修改了文件,你就需要Commit到repository。


    update (更新):当你已经Checkout了一份文件,Update一下,你的文件就会与服务器同步。


2. TortoiseSVN 和 VisualSVN Server 安装


SVN 可以和 VisualSVN Server 一起使用。VisualSVN Server 是一个集成的 svn 服务端工具,可以对 SVN 的版本库、用户、组、权限等进行管理。 TortoiseSVN 和 VisualSVN Server 安装比较简单。


TortoiseSVN 下载地址:http:///packages.html#windows


VisualSVN Server 下载地址:https://www.visualsvn.com/server/download/


SVN 的中文包下载地址:https:///downloads.html


设置中文


上面三个安装完成之后,右键 -> TortoiseSVN -> Settings,设置 language 为中文即可。


3. 创建版本库、用户、组


开始菜单中找到 VisualSVN Server ,打开 VisualSVN Server Manbger


创建版本库


设置好版本库类型、名称、权限之后,一个版本库就创建好了。


创建用户


右键 Users -> Create User,设置好用户名和密码。


创建组


右键 Groups -> Create Group,设置组名, 并添加用户。


设置版本库的用户、组及其权限


为了对不同用户、组设置不同的权限,我又创建了另外两个用户、两个组。选择 test 版本库, 右键 Priperties,添加用户、组, 并设置其读写权限。


manager(管理) 组读写权限,包含一个用户 root;develop(开发)组读写权限,包含一个用户 dev;visitor (访问)只读权限,包含一个用户 visit。


4. 检出


复制检出路径:选择 test ,右键 Copy URL to Clipboard


新建一个空文件夹,右键 SVNCheckout,粘贴刚刚复制的检出路径。


确定之后,会弹出验证框,输入刚刚创建的用户和密码,确认之后检出完成。


5. 更新与提交


更新与提交一般流程:


加入文件


新建一个文件,选择该文件,右键 TortoiseSVN -> 加入


检查修改


右键 TortoiseSVN -> 检查修改


更新


右键 更新(Update)


冲突:如果其他人在你提交之前提交到了服务器,更新之后可能就会发生冲突。


提交


右键 提交(Commit)


提交完成。


这次先加入一个文件 file.txt,再修改 readme.txt 文件的内容。然后进行检查修改、更新和提交。


撤销修改


在未提交之前,如果作了修改,但是想撤销一些修改。假设修改 readme.txt 的内容,同时增加一个文件 file.txt。现在想撤销一些修改,右键 TortoiseSVN -> SVN 还原。


6. 历史信息与版本回退


查看历史


右键 TortoiseSVN -> 显示日志


版本回退


右键 TortoiseSVN -> 更新至版本


7. 解决冲突


冲突类型


    内容冲突:当两名(或更多)开发人员修改了同一个文件中相邻或相同的行时就会发生文件冲突。


    树冲突:当一名开发人员移动、重命名、删除一个文件或文件夹,而另一名开发人员也对它们进行了移动、重命名、删除或者仅仅是修改时就会发生树冲突。


SVN 树冲突类型和解决方法有点复杂, 可以参考这篇博客。


解决方法


    根据冲突内容,手动修改文件内容。

    执行命令 TortoiseSVN ->已解决,然后提交修改到版本库。


现在我们用另外一个用户 dev 来登陆 SVN, 并修改 readme 的内容,然后提交。当 root 用户也修改了 readme 的内容,更新时就可能发生冲突。


右键 TortoiseSVN -> 检查修改


修改冲突的方法:


    用左边的内容;


    用右边的内容;


    先用左边再用右边的内容;


    先用右边再用左边的内容;


注意:每个冲突行都要使用上面的方法处理一次。


现在我们使用先用左边再用右边的内容进行处理:


保存之后关闭,右键 TortoiseSVN -> 已解决的


确定,冲突解决,然后提交。



————————————————