简述SVN服务器配置和客户端操作

有关SVN服务器的搭建见:http://www.cnblogs.com/DwyaneTalk/p/3997688.html

 

搭建好环境之后,服务器端需要完成如下操作:

1、需要新建Repository,建议采用FSFS结构,创建trunk、tags和branches目录结构。

FSFS与BDB的介绍,见:http://www.cnblogs.com/DwyaneTalk/p/3997741.html

trunk、tags和branches介绍,见:http://www.cnblogs.com/DwyaneTalk/p/3997787.html

2、新建user group,并分配权限,someone应该无权。

3、为相关人员建立账户,并添加到相应的用户组和Repository。

 

这时服务器端基本配置就完成了,下面介绍一下客户端的一些基本操作。

1、import:创建好Repository之后,假设为Repo,Repo里并没有任何东西,这是可以在需要管理的工程项目文件夹上右键,选择TortoiseSVN下的import,将该项目文件夹里的东西放到Repo的trunk里。此时Repo的url可以在服务器端Copy。

此时如果server和client不在同一台机器上,则在url里需要使用server的域名或者IP,在局域网内,也可以使用PC的name。

2、checkout:创建好Repo,并import之后,该Repo并不在Client上和某个文件夹相关联,所以需要在Client上将Repo进行Checkout,在某个文件夹上或者空白处邮件,便可看到Checkout选项,假设Checkout到working目录。

完成Checkout之后,working目录里就应该是上传到trunk的内容,会有绿色的对号标志,然后就可以在Client上进行相应开发。

3、add:在working中新建文件(夹),会出现紫色问号的标志,然后通过add,将该文件添加到Repo中,此时有紫色+标志,表示该文件属于Repo,但是并没有真正提交到Repo中。

4、commit:对于修改(红色标志)或者刚刚添加(紫色+)的文件,需要通过commit将更改提交到Repo中。注:在commit时一定要添加这次commit的相关说明,这对于开发者之间的协作、日后的恢复等十分重要。

5、Update:该操作是将本地Working目录的内容更新到Repo中的某个版本,HEAD是指最新版本。

 

有关不同Client和Server间的commit和Update操作的同步,见下图:

        

此时:Server上的Trunk是最新版本Vs,2个Client上的Trunk上次与Server同步时的版本分别为Vc1和Vc2。

Client端的Checkout、commit和Update等操作都能是的Client和Server上的最新版本一致。

每次commit操作后,Server上的版本号都会改变。

update:是获取Server的最新版Vs同步到Client,也可以通过Update to version操作获取Server端的某一版本。

Commit:此操作会将Client(比如Client1)相对于上次与Server同步的版本Vc1(不是Vs)所做的更改添加到Server上的最新版Vs(因为有Client2,所以此时Vs可能已经不是Vc1了)上,形成新的版本。此过程可能出现在Client同步Vc1之后,Client2和Client1修改了同样的文件的同样位置。这时候Client1进行commit时,就会发现Vs相对Vc1和Client相对于Vc1都做了修改,而且修改的不一样,这时候就会产生conflict,这时候就需要手动resolve conflict。

 

然后,如果需要临时处理一些Bug或者保存一些稳定的版本,则需要新建branch或者tag。然后分支一定时间需要合并到trunk上。

相关操作见:http://www.cnblogs.com/DwyaneTalk/p/3996194.html

posted @ 2014-09-28 10:37  DwyaneTalk  阅读(406)  评论(0编辑  收藏  举报