[版本控制]TortoiseSVN学习笔记

大家都知道SVN吧,做软件的应该都知道版本管理的重要性,现在软件开发都是团队开发的,一个好的版本管理工具对于开发来说,必不可少。

当然,版本管理的工具有不少,有CVS,SVN等。这这里我选择SVN。CVS貌似对Java来说效果不错,但是SVN是并行版本控制,个人觉得,SVN比较好~~

那么,什么是SVN呢,什么又是TortoiseSVN?

我们一般称服务器端的为SVN客户端的为TortoiseSVN。公司中一般会有专人搭建SVN,而开发者只需要使用TortoiseSVN就可以了。

TortoiseSVN 是一个 Windows 下的版本控制系统 Apache™ Subversion® 的客户端工具。就是说,TortoiseSVN 常年管理文件和目录。文件存储于一个中央版本库中。版本库就像一个常见的文件服务器,除了它保存你对文件和目录所有的改变。这一特性使得你可以恢复文件的旧版本并查看历史-谁在什么时间如何进行的修改。这就是为什么很多人认为 Subversion 和版本控制系统是一种时间机器

某些版本控制系统也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性 - 比如,对编程语言的支持,或者提供程序构建工具。不过 Subversion 并不是这样的系统;它是一个通用系统,可以管理任何类型的文件集,包括源代码。


TortoiseSVN 的特性

外壳集成、重载图标、图形用户界面、Subversion 命令的简便访问、目录版本控制、原子提交、版本控制的元数据、可选的网络层、一致的数据处理、高效的分支和标签


如何安装 TortoiseSVN呢?

先登录官网:http://tortoisesvn.net/下载最新版

TortoiseSVN 以简单易用的安装包的形式发布。双击安装文件并按照提示操作。安装文件会照顾其余的事情。安装结束后不要忘记重启电脑。

使用之前需要先理解一些基本概念:

版本库

Subversion 使用集中的数据库,它包含了所有的版本控制文件及其完整历史。这个数据库就是版本库。版本库通常位于运行 Subversion 服务器的文件服务器上,向 Subversion 客户端(例如 TortoiseSVN)提供需要的数据。如果只备份一个东西,请备份版本库,因为它是你数据的主副本。

工作副本

这是实际工作的地方。每一个开发者在自己的电脑上都有属于自己的工作副本,有时可以将其理解为沙箱。你可以将最新的版本从版本库上取下来,在本地的副本上工作而不影响其他人,如果对更改满意就可以将其提交到版本库中。

Subversion 工作副本不包含项目的历史, 但是它保存了你修改前的本件的副本,就像这些文件在版本库中的状态一样。这意味着你可以轻而易举的准确检查出都做了哪些改动。


语言包:

标准的安装包是只支持英文的,但是你可以在安装好之后。下载分别的安装包(language packs)以及拼写词典(spell check dictionaries)。


解决冲突:

文件冲突

当两名(或更多)开发人员修改了同一个文件中相邻或相同的行时就会发生文件冲突。

树冲突

当一名开发人员移动、重命名、删除一个文件或文件夹,而另一名开发人员也对它们进行了移动、重命名、删除或者仅仅是修改时就会发生树冲突。

分支/标记:

合并

分支用来维护独立的开发支线,在一些阶段,你可能需要将分支上的修改合并到主干,或者相反。

因为分支与合并很复杂,所以在你开始使用之前,请先理解它们是怎么工作的。强烈建议你阅读《使用 Subversion 进行版本管理》的分支与合并章节,它给出了全面的描述,和许多使用举例。

下一个需要注意的地方是,合并总是在工作副本中进行。如果你想要合并修改分支,你必须检出该分支的工作副本,并且从这个工作副本使用TortoiseSVN合并...来调用合并向导。

通常来说,在没有修改的工作副本上执行合并是一个好想法。如果你在工作副本上做了修改,请先提交。如果合并没有按照你的想法执行,你可能需要撤销这些修改,命令SVN 还原 会丢弃包含你执行合并之前的所有修改。

这里有三个处理方法稍微不同的用例,如下所述。合并向导的第一页会让你选择你需要的方法。

合并一个版本范围

这个方法覆盖了你已经在分支(或者主干)上做出了一个或多个修改,并且你想将这些修改应用到不同分支的情况。

你要 Subversion 做如下事情: 计算[从]分支 A 的版本 1 [到]分支 A 的版本 7 所需的修改,并将这些改变应用到(主干或分支 B 的)工作副本。

复兴分支

这个用例覆盖了这种情况,当你象《Subversion手册》里讨论的那样,创建了一个新特性分支。所有主干的修改都要每周一次合并到新特性分支,等新特性完成后,你想将它合并到主干。因为你已经保持了新特性分支和主干同步,所以除了你在分支做的修改,其它部分在分支和最新版本应该是相同的。

这是下面讨论的树合并的特殊情况,它只需要你(通常情况下)想要合并的开发分支的 URL。它使用 Subversion 的合并跟踪特性来计算正确的版本范围,并且执行附加的检查来确保分支按照主干的修改进行了完整的更新。这样会确保你不会意外的撤销提交内容,这些内容是其他人在你上次同步修改后提交到主干的。

合并之后,分支的所有开发被完整的合并到主开发版本。现在的分支已经是多余的,可以删除。

一旦你执行了复兴合并,你就不应该继续使用它来进行开发。这样做的原因是,如果过后你试图再次对现有的分支与主干进行同步,合并跟踪将会你的复兴合并视为未合并到分支的主干修改,并且试图将分支到主干的合并再合并回分支!解决方案很简单,从主干创建一个新的分支来进行下一阶段的开发。

合并两个不同的树

这是复兴合并的通用情况。你要 Subversion 做如下事情: 计算[从]主干的最新版本[到]分支的最新版本所需要的修改,并将这些修改应用到(主干的)工作副本。最终结果就是主干看起来与分支一模一样。

图标重载:


svn还有好多需要学习的东西。大家可以查看它的帮助文档,帮助文档好详细啊。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值