SVN基本操作

如果在没有系统地看过SVN相关书籍的情况下,就开始使用SVN的话,是会有一些摸不着头脑的(比如我啦……)。经过较长时间的使用后,将一些浅显的认知记录如下:

1、SVN是项目管理工具,安装好了的SVN服务器相当于代码仓库,可以同时维护多个项目。SVN服务器可与多个SVN客户端(相当于项目开发人员)连接,当然,是通过账号+密码的形式进行连接的。

2、SVN服务器管理人员可为每个项目涉及到的每个用户(即:开发人员)分配不同的权限:read only或者read/write。其中:

read only:用户能从SVN服务器上check out项目、update项目文件,不能commit项目文件。

read/write:用户能从SVN服务器上check out项目、update项目文件、commit项目文件。

可以看出,read/write权限要高于read only。这些添加用户并配置相关权限的操作都可以在SVN服务器操作面板上进行,非常方便。

3、在SVN客户端与服务器进行代码传送的过程中:

若本地需要获取最新的代码,以便与服务器上的代码保持同步,本地需要做的操作是update,即将服务器最新版本的代码获取到本地。

若本地需要将本地修改后的代码传送到服务器上,本地需要做的操作是commit,即将本地代码传送到服务器上去。

这是2个完全相反的过程,切勿被“update”、“commit”这样的字眼迷惑了。

4、从本地还没有代码到最后能正常与SVN服务器交互的正确流程应该是这样的:

①在SVN服务器代码仓库中新建一个项目,将这个项目已有的代码拷贝到这个新建的项目中。

②为这个项目添加用户(用户已经提前设置完成)并配置权限。

③拥有操作权限的用户(以read/write权限为例)就可以在本地将这个新项目check out到本地了。本地操作流程:在本地磁盘新建一个文件夹(建议英文名),鼠标右击,选择check out,选择这个新项目即可。

④用户在本地将这个check out 成功的新项目成功部署到本地(若是eclipse,导入时不需要选择copy to workspace,确保eclipse中运行的项目就是check out下来的项目),并进行了代码修改之后,若是要上传到服务器上,需要回到刚刚新建的文件夹处,会发现被修改过后的文件由原来的绿色小勾变成了红色感叹号,这代表这个文件与服务器上的文件出现了不一致的地方,是被修改过的,选择这个文件,鼠标右击,选择commit即可将修改后的文件上传到SVN服务器上。若是修改了多个文件,并且都要上传,则不用选中文件,直接在文件空白处鼠标右击选择commit,SVN会自动识别已修改的文件,全部上传。

⑤若是需要将其他用户修改并上传后的某一个文件获取到本地,则选中该文件,鼠标右击,选中update即可。若要将其他用户修改并上传后的所有文件都获取到本地,则在文件空白处鼠标右击,选中update即可。

⑥若是本地添加了一个服务器上没有的文件,想把这个文件上传到服务器上供其他用户使用,该如何操作呢?同样来到这个文件夹,发现这个新增的本地文件并没有绿色的小勾,也没有红色的感叹号,说明这个文件此时还没有与服务器扯上任何关系,需要选中这个文件,鼠标右击,选中“add”,将这个文件添加到SVN中,然后再选中该文件,鼠标右击,选中“commit”即可将文件传送到服务器上去。

⑦若想删除某个文件,怎样才不会引起冲突呢?一个可行的办法是:在文件夹空白处,鼠标右击,选中SVN browser,进入SVN服务器操作面板,找到需要删除的文件,仔细确认后删除。此时,服务器上已经没有这个文件了,本地还存在!但没关系,只要在本地文件夹的相应位置鼠标右击,选中“update”即可,本地的这个文件就删除啦。通过这样的方式删除文件是比较好的,因为这不会引起冲突,但在服务器上删除的时候要确保删除正确。

⑧SVN使用过程中比较忌讳的一点是:一定要上一个操作完成之后再进行下一个操作,否则会产生锁。有些情况下clear都无法挽回,只有整个删掉重新check out,这就比较悲催了(不幸遇到过一次o(╥﹏╥)o)。所以一定要在上一个操作完成之后再进行下一个操作。

5、对于开发人员而言,从SVN上导项目下来要用checkout,因为checkout可以将很多SVN产生的版本跟踪信息获取到本地,对项目文件的修改可以很方便地上传。但是对于项目部署来说,推荐用export,这样就没有那些版本跟踪信息了,文件会小很多。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值