现在的位置: 首页 > 综合 > 正文

SVN实用教程

2013年09月02日 ⁄ 综合 ⁄ 共 2067字 ⁄ 字号 评论关闭
文章目录

好用的Windows下SVN客户端——Tortoise SVN的下载地址:

http://tortoisesvn.tigris.org/

文档:

http://www.subversion.org.cn/svnbook/

http://www.subversion.org.cn/tsvndoc/

SVN 与 VSS 的区别:

VSS中,编辑一个文件,有一个锁定的概念,这样可以确保修改一个文件时别人无法修改这个文件

SVN和它思路不同,SVN中认为,项目中的参与人员,一般来说,分工明确的情况下编辑并不会冲突,所以并不特别重视锁定这个概念(但是SVN完全支持类似于VSS的锁定,独占一个文件的编辑)

即使编辑了一个文件,只要不是同一行,SVN还拥有非常智能的方式将它们合并进成为一个新的文件

只有在编辑了同一个文件的相同位置,SVN才会把文件标记为冲突,从而交给用户进行处理

TortoiseSVN(以后简称TSVN)使用:

所有操作,大部分操作在右键菜单的TSVN中,

后文中提及的大部分操作,

都是右键菜单操作。

正文

之一:建立SVN项目仓库

你也可以在自己的计算机建立SVN的仓库

方法是:

新建一个文件夹,比如d:svnmyproject

进入这个文件夹,右键->TSVN->Create repository here...

然后在你的项目文件夹(比如e:javamyproject1)里面导入项目:

进入e:javamyproject1,然后右键,TSVN->Import

输入:file://d:/svn/myproject/trunk

导入就行了

SVN支持http://, svn://, file://等多种协议

它本身(非TSVN,TSVN仅仅是客户端)可以作为服务器运行,也可以作为apache的模块运行

以后你在e:javamyproject1下面的提交之类的操作将会被记录在d:svnmyproject这个仓库里面

之二:下载项目仓库文件到工作目录:

现在,新建一个空文件夹

使用刚建好的SVN项目仓库地址(比如:file://d:/svn/myproject/trunk

右键空白处

选择SVN Checkout(检出)

之三:提交修改的文件

右键->SVN Commit

会出现一个提交窗口,Message里面写入关于这次提交的一个概要

这里我们进行一个约定

如果这次的提交以修改为主,那么Message前面加上@MOD,比如:

"@MOD 对README.txt进行了修改,加入了项目描述"

诸如此类

如果这次提交以添加新文件为主

那么@ADD,例如:

"@ADD 加入style.css样式表"

这是test项目,你可以随意编辑,随意提交,随意删除

但是不要删除任何的隐藏的.svn文件夹下面的内容,这个是SVN的信息

重命名是,右键文件->TSVN->Rename

删除是,右键文件->TSVN->Delete

注释:

  1. 锁定:锁定一般针对二进制文件编辑时采用,比如jpg, gif, doc之类的非纯文本文件
  2. 版本号:SVN中,任何提交,无论修改有多么微小,都会让修订版本号增加1
  3. ShowLog:右键空白处->TSVN->Show Log可以查看以往的提交记录;右键文件->TSVN->ShowLog可以查看与这个文件相关的提交记录

之四:恢复到以前的版本

SVN中的每个修订版的任何文件都可以被获取到,所以只要是提交过的文件,不用担心其修改的问题,即使改错了,也可以恢复到以往的任意一个版本

具体操作是右键文件(或空白处——针对当前文件夹)->TSVN->Update to revision

之五:编辑冲突

现在来演示一下冲突问题:

你把test.txt的asdf全部换成别的文字

但不要提交

我也来修改同样的地方,然后提交后,你再尝试提交

【以上是大哥教我的时候的聊天记录,可以选择的做法是:在两个文件夹下check out同一个项目仓库,然后在两个文件夹下同时修改,可以有同样的效果】

SVN会提示出错,然后阻止你的提交

你这时候右键->SVN Update

SVN会将服务器上的版本,以及你自己的版本都分别放一个文件,选择test.txt右键->TSVN->Edit conflict

是一个典型的diff程序,你可以在左右两侧分别比较

"Mine"和"Theirs"的版本的区别,然后右键冲突的地方,选择要哪个地方的版本

最后保存后,再度提交成为一个新的修订版【根据小子的实践,直接点击 mark as resolved就包括:save 和 commit,所以慎用此键】

之一:提交的原则

关于提交,有一些基本原则,提交上去的代码

1. 不影响到其它开发者开发的部分的功能

2. 可以运行,有程序bug没有关系,但是不要有错误(语法错误之类的)

在上面这个原则上,尽可能的多提交(当然也不用写两三行就提交一次,这个度要把握好),方便团队中的成员都拥有最新的版本

之二:发布最终的版本

最终发布的版本(术语叫生产环境版本),里面不需要.svn的数据,你只需要在项目文件夹里面,右键,然后TSVN->Export导出,或者右键拖拽你的项目文件夹,有Export here的选项

抱歉!评论已关闭.