|
前期准备:
1. 安装VisualSVN-Server-1.5.3.msi--server(略)
2. 安装TortoiseSVN-1.5.3.13783-win32-svn-1.5.2.msi->client(略)
3. 打开VisualSVN,在Repositories右击->新建库名shop,让其包含:trunk,branches,tags结构
4. 类似在Users上创建用户user1,user2;在Groups上创建个grp1,grp2两个组,分贝包含user1,user2【当然你可以让一个组包含很多成员】
5. 同样地添加用户kevin,然后设置权限
6. 假设kevin为配置管理员CMO,他把项目相关的一些文件放到服务器上,方法如下:
右键->TortoiseSVN->Repo-browser---输入https://127.0.0.1:8443/svn/shop/trunk-->ok,输入用户名kevin,不用输入密码,也不用保存认证【后面也是】。进入后点击trunk文件夹,在右边空白处右击->add file /add folder即可。请添加(lib,bin,include,src/readme.txt)
7. 找一个单独目录,模拟两个客户端(新建grp1,grp2两个文件夹)
8. 在grp1文件夹中右击->SVN Checkout,输入用户名user1,即形成user1的工作空间,同理user2
开始模拟两个客户操作readme.txt
9. 进入grp1/src文件夹中,修改readme.txt,添加“hello”,保存后右击commit,然后进入/grp2/src中在readme.txt中右击->update.就可以看到user1修改的内容。同样user2也可以修改后commit。在这过程中如果你对readme.txt 加锁,就同vss串行工作一样了。然而工作中时间是很紧的,并行机制才能更好解决问题。
如果user1,user2 同时访问访问readme.txt,就会造成冲突,如何解决?模拟如下
10. 分别进入grp1/src,grp2/src下,都打开文件readme.txt;在grp1/src下的readme.txt中添加“user1 add hello”,在grp2/src下的readme.txt中添加“user2 add hello guys”,这个时候用户user1 commit readme.txt. 服务器上的readme.txt发生改变了。用户user2这时也提交就会发现原来从服务器拿下的out of date。
11. 此时应该:在grp2/src下右击->update.,会发现多了几个文件,这些文件有利我们解决冲突。在右击-> TortoiseSVN->Edit conflict,下面我想学员应该会。保存之后->commit.此时在grp1/src中对readme.txt update会发现冲突解决了。服务器文件也是最新修改版本了
【注意:在grp1/src,grp2/src碰到输入用户名的分别用各自的user1,user2】
对于branches,只要知道其是为什么会用到及什么时候该用,就会了方法大致同上。主要用到:switch ,merge ,可以自己测试一下。
对于user1操作:对readme.txt branch/tag到--branches/readme.txt,然后再switch到branches/readme.txt,在readme.txt上继续操作【指增加内容】,再commit。再切换到主干上。对于user2操作:在readme.txt上继续操作,commit之后,再选择merge,merge中url选择branches/readme.txt,show log后选择有感叹号的非加号的项【那就是在分支上操作的】,之后就可以合并了。
对于user1操作:对readme.txt branch/tag到--tags/readme.txt,然后再switch到branches/readme.txt,在readme.txt上继续操作【指增加内容】,再commit【提示你应该branch】。再切换到主干上。对于user2操作:在readme.txt上继续操作,commit之后,再选择merge,merge中url选择tags/readme.txt,show log后选择有感叹号的非加号的项【那就是在分支上操作的】,之后就可以合并了。基本同上 |
|