InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

Subversion 1.5已发布

作者 Mark Levison and Deborah Hartman 译者 李剑 发布于 2008年6月25日

领域
架构 & 设计,
运维 & 基础架构,
过程 & 实践
主题
敏捷 ,
配置管理 ,
敏捷技术 ,
版本化
标签
源代码控制 ,
持续集成 ,
Subversion

Subversion是一款成熟的开源版本控制工具,广泛应用于众多开源项目中,如Apache软件组织、KDE、GNOME、Free Pascal、GCC、Python、Django、Ruby、Mono。它刚刚发布了1.5版。它的设计初衷是用来替代CVS——很多人都觉得后者有着很严重的限制。

虽然Subversion引发了遍及各地的“分支模型”之战,它相对于CVS还是有着巨大的改进。一些实践者列出了它的优点

  • 重命名目录和文件:重新组织代码变得轻而易举,也不会丢失版本跟踪信息。
  • 检出的代码目录很“干净”(没有CVS目录)。
  • 在文件缓存功能的帮助下,很多工作都可以在“离线”的状态完成。
  • 原子提交。
  • 每次提交都有日志。
  • 速度有所提升。
  • 可以更好的处理BIN(二进制)文件。
  • 由积极的开发者组成的社区。
Subversion可以使用基于HTTP的WebDAV/DeltaV协议进行网络通 信,由Apache web服务器提供仓库端的网络服务。于是Subversion在互操作性方面就要优于CVS,而且还有其他免费的核心特性:授权、压缩传送(wire compression)、基本的仓库浏览功能。而且,Subversion还提供了一个独立的服务器,“svnserv”,它使用的是自定制的协议,可 以在SSH的基础上扩展。另外,虽然它是开源软件,但也同时提供了商业支持


The Big Picture from the Subversion Developer Intro

在1.5版本中,Subversion为用户带来了几个新特性,其中包括:

  • 跟踪合并历史:用户可以知道哪些变更在哪个分支上进行了合并。有了这个功能以后,用户在几个分支间(如1.0,1.1和主干)同步时就可以少花一些精力了。
  • 稀疏检出(Sparse checkouts)开发人员可以从庞大的源代码树上只选择某几个子集检出。
  • 交互式的冲突解决方案:可以使用命令行客户端来解决冲突,其API也为其他类型的客户端提供了支持。
  • 支持变更列表开发人员可以把多组文件命名成一个变更列表。如果有人需要同时解决多个问题,这个功能就很有用了。
  • 复制和移动 操作得到了改善。

Eclipse的Subversion插件(Subclipse)也发布了新版本。其他的客户端还包括:TortiseSVN(Windows shell扩展)、RapidSVN(一个富客户端)、AnkhSVN (一个Visual Studio插件)。

注1:在Subversion中文站上,可以获得Subversion的更多信息。

注2:在InfoQ英文站上,有读者对原文中的某些段落进行了批驳:
“检出的代码目录很‘干净’(没有CVS目录)” ——这句话错的没边了,".svn"目录就不是目录了?把“.svn”换成“cvs”不就一样了吗?

“在文件缓存功能的帮助下,很多工作都可以在“离线”的状态完成”——CVS也没有“连线”的状态。而且举个例子来看,这里说的“更多状态”也没有包括查看文件日志的功能。所以它根本就不能像Git一样,完全离线工作。

“开发人员可以从庞大的源代码树上只选择某几个子集检出”——这句描述很有歧义。面对庞大的源代码树,开发人员需要把他们自己的代码树放到不同的目录下, 而且Subversion一直都可以只检出单个目录。它的新功能的真正含义是,如果你只需要一个目录中的某个部分,而不是全部,你就可以进行非递归式的检 出。

查看英文原文Subversion 1.5 released

译者 李剑 李剑──ThoughtWorks高级咨询师,在持续集成、重构等领域具有丰富的经验;多次为国内大型企业敏捷组织转型提供咨询和培训服务。

不管怎么样,SVN还是要比CVS好用很多。 发表人 张 凯峰 发表于
Re: 不管怎么样,SVN还是要比CVS好用很多。 发表人 withyou gakaki 发表于
1.5新功能挺不错的,不过Perforce更好。呵呵 发表人 Q Shawn 发表于
检出的代码目录很“干净”(没有CVS目录) 发表人 chen popo 发表于
Subversion走的是中间路线 发表人 Sun Daijun 发表于
  1. 返回顶部

    不管怎么样,SVN还是要比CVS好用很多。

    发表人 张 凯峰

    本地只需要一个tortoiseSVN,就可以做自己的版本控制。管理自己的doc这样的二进制文章的更新历史。

    有TWer给我推荐Mercurial,是个专注于分布式开发的版本控制工具,更简单,没有.cvs和.svn这样遍布的隐藏目录,只有一个.hg目录在功能的根目录下。另外的特点就是,离线时可以在本地commit,连线时可以push 到server。

  2. 返回顶部

    Re: 不管怎么样,SVN还是要比CVS好用很多。

    发表人 withyou gakaki

    GIT啊 GIT啊
    .NET还有VISUAL SVN可以用用

  3. 返回顶部

    1.5新功能挺不错的,不过Perforce更好。呵呵

    发表人 Q Shawn

    SVN某种程度上被神化了

  4. 返回顶部

    检出的代码目录很“干净”(没有CVS目录)

    发表人 chen popo

    我也觉得这句话挺搞笑的,.SVN也是目录的,
    SVN比起CVS来说,好用多了,

  5. 返回顶部

    Subversion走的是中间路线

    发表人 Sun Daijun

    如果企业从免费的工具GIT,Mercurial,Subversion中选一个,那么肯定是subversion。

深度内容

专访Jeffery Richter:Windows 8是微软的重中之重

Jeffery Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffery Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。

解析JDK 7的动态类型语言支持

随着JDK 7的发布,字节码指令集终于迎来了第一位新成员——invokedynamic指令。这条新增加的指令是JDK 7实现“动态类型语言(Dynamically Typed Language)”支持而进行的改进之一,也是为JDK 8可以顺利实现Lambda表达式做技术准备。在这篇文章中,我们将去了解JDK 7这项新特性的出现前因后果和它的意义。