SVN如何使用

SVN简介:

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

SVN 的主要功能

(1)目录版本控制
CVS 只能跟踪单个文件的历史, 不过 Subversion 实作了一个 “虚拟” 的版本控管文件系统, 能够依时间跟踪整个目录的变动。 目录和文件都能进行版本控制。

(2)真实的版本历史
自从CVS限制了文件的版本记录,CVS并不支持那些可能发生在文件上,但会影响所在目录内容的操作,如同复制和重命名。除此之外,在CVS里你不能用拥有同样名字但是没有继承老版本历史或者根本没有关系的文件替换一个已经纳入系统的文件。在Subversion中,你可以增加(add)、删除(delete)、复制(copy)和重命名(rename),无论是文件还是目录。所有的新加的文件都从一个新的、干净的版本开始。

(3)自动提交
一个提交动作,不是全部更新到了档案库中,就是不完全更新。这允许开发人员以逻辑区间建立并提交变动,以防止当部分提交成功时出现的问题。

(4)纳入版本控管的元数据
每一个文件与目录都附有一組属性关键字并和属性值相关联。你可以创建, 并儲存任何你想要的Key/Value对。 属性是随着时间来作版本控管的,就像文件內容一样。

(5)选择不同的网络层
Subversion 有抽象的档案库存取概念, 可以让人很容易地实作新的网络机制。 Subversion 可以作为一个扩展模块嵌入到Apache HTTP 服务器中。这个为Subversion提供了非常先进的稳定性和协同工作能力,除此之外还提供了许多重要功能: 举例来说, 有身份认证, 授权, 在线压缩, 以及文件库浏览等等。还有一个轻量级的独立Subversion服务器, 使用的是自定义的通信协议, 可以很容易地通过 ssh 以 tunnel 方式使用。

(6)一致的数据处理方式
Subversion 使用二进制差异算法来异表示文件的差异, 它对文字(人类可理解的)与二进制文件(人类无法理解的) 两类的文件都一视同仁。 这两类的文件都同样地以压缩形式储存在档案库中, 而且文件差异是以两个方向在网络上传输的。

(7)有效的分支(branch)与标签(tag)
在分支与标签上的消耗并不必一定要与项目大小成正比。 Subversion 建立分支与标签的方法, 就只是复制该项目, 使用的方法就类似于硬连接(hard-link)。 所以这些操作只会花费很小, 而且是固定的时间。

(8)Hackability
Subversion没有任何的历史包袱; 它主要是一群共用的 C 程序库, 具有定义完善的API。这使得 Subversion 便于维护, 并且可被其它应用程序与程序语言使用。

SVN出现叹号怎么解决

刚使用svn的时候,经常会出现各种提交失败的情况,尤其是遇到svn出现黄色感叹号的时候,文件直接就跟最新版本冲突了,这时该怎么解决呢?小编就对svn的这个情况做个小总结;

修改过文件
假如你是出现红色叹号,说明你的文件被修改过;

SVN出现叹号怎么解决

提交文件

这时只要你右键单击该文件,点击“SVN commit…”按钮就可以提交此文件,提交成功后,红色叹号就会自动消失了
SVN出现叹号怎么解决

冲突原因(出现黄色叹号)

假如你出现的是黄色叹号小图标,说明你修改文件之前,并没有先更新最新版本,而是直接在旧版本上修改,同时你修改的内容,刚好跟你同事修改的内容有冲突,于是当你提交时,svn就会先提示你升级到最新版,当你获取最新版的时候,由于svn识别不了同一个内容位置出现不同的情况,通俗点说就是svn不知道该用谁的内容,这时就会出现黄色叹号!同时会产生多余的三个文件。
SVN出现叹号怎么解决

文件解析

先来解析下产生的三个文件是什么;

index.shtm.mine 这个文件是你刚刚修改的文件

index.shtm.r65459 这个文件是你修改文件前的当前版本文件;

index.shtm.r67059 这个是最新版本的文件
SVN出现叹号怎么解决

叹号文件内容对比

打开index文件,这时你会发现里面出现了一些<<<<.mine、、>>>>.r67059 的特色符号和文字,这就是文件起冲突的地方。“=”上部分是你修改的内容,“=”下部分是最新版本的内容;如果你如果不想用最新版本的内容,就把“=”下部分到“>>>>.r67059”这部分内容删了,同时去掉“<<<<.mine、==、>>>>.r67059 ”这些符号保存即可;
SVN出现叹号怎么解决

删除三文件

当你按上一步修改了内容后,回到本地文件,删掉多余的三个文件;
SVN出现叹号怎么解决

再次提交

这时你就会发现文件出现红色叹号了!说明这时可以提交了!然后按照步骤栏目“出现红色叹号”第二步的方法,就可以提交此文件了。
SVN出现叹号怎么解决
SVN出现叹号怎么解决

svn提交时把node_modules忽略掉
空白处右键>选中TortoiseSVN>设置(settings)>常规设置(General)>Subversion>编辑(edit)>在弹出的config文件中找global-ignores,复制一行下来,去掉global-ignores前的#。
如果是"文件夹" global-ignores = *node_modules
如果是文件 global-ignores = .project .git
中间用空格隔开

总结:

每次修改svn文件之前,首先需要先获取最新版本,等获取完之后再修改内容,从而避免文件冲突;