zoukankan      html  css  js  c++  java
  • SVN安装使用

    Subversion是广泛使用的版本控制工具。它是CVS的进化,越来越多的开源社区在使用svn。

    TortoiseSVN是windows shell程序,是Subversion的客户端,它给予GPL协议,完全免费使用。

    svn支持“拷贝-修改-合并”模型,对非二进制的文件如源程序可采用这种模式,这种模式可加快team的效率。

    svn也支持“锁定-修改-解锁”模型,你可以选择是否锁定文件,以防止别人修改,在不可合并的文件上加锁通常是有效的,如二进制文件。

    svn commit 操作可以作为一个原子事务操作发布任意数量文件和目录的修改。在你的工作副本中,你可以改变文件内容,创建、删除、改名和复制文件和目录,然后作为一个整体提交。

    在版本库中,每次提交被当作一次原子事务操作: 要么所有的改变发生,要么都不发生,Subversion 努力保持原子性以应对程序错误、系统错误、网络问题和其他用户行为。

    当你提交一个过期的版本,或者删除一个过期的版本,svn服务器将拒绝执行,防止你覆盖你未知的属性。

    svn推荐的目录结构:

    /trunk
    /branches
    /tags

    版本控制系统非常重要的一个特性就是它的信息从不丢失,即使当你删除了文件或目录,它也许从HEAD版本消失了 ,但这个对象依然存在于历史的早期版本.

    工作副本怎样跟踪版本库

    对于工作副本的每一个文件,Subversion 在管理目录 .svn/ 记录两项关键的信息:

    • 工作文件的基准版本(叫做文件的工作版本)和

    • 一个本地副本最后更新的时间戳。

    给定这些信息,通过与版本库通讯,Subversion 可以告诉我们工作文件是处与如下四种状态的那一种:

    未修改且是当前的

    文件在工作目录里没有修改,在工作版本之后没有修改提交到版本库。svn commit 操作不做任何事情,svn update 不做任何事情。

    本地已修改且是当前的

    工作副本已经修改,从基准版本之后没有修改提交到版本库。本地修改没有提交,因此 commit 会成功的提交,update 不做任何事情。

    本地未修改且过时

    这个文件在工作副本没有修改,但在版本库中已经修改了。这个文件应当更新到最新公共版本。commit 不做任何事情,update 将会更新工作副本到最新的版本。

    本地已修改且过时

    The file has been changed both in the working directory, and in the repository. A commit of the file will fail with an out-of-date error. The file should be updated first; an update command will attempt to merge the public changes with the local changes. If Subversion can't complete the merge in a plausible way automatically, it leaves it to the user to resolve the conflict

    传统配置
    SVN的安装并不复杂,如果在Windows下,有专门的Windows安装包可以下载,不过SVN的配置就不那么简单了,所有的配置都要通过SVN的配置文件手工完成,比如用户密码权限等。
    切换到Http
    Svn可以通过Svn自己的服务程序或者Apache来访问,缺省安装的Svn是使用自己的服务程序svnserve来进行访问的。下表对比了两种访问方式的差别:

    特性 Apache svnserve
    认证 HTTP basic auth,LDAP,NTLM 服务器上的密码设置
    权限 可以对每个path设置读写权限 可以对每个path设置读写权限
    加密 可以通过https 通过可选的SASL
    日志 完整的Apache log 无log
    Web访问 支持WebDAV 不支持
    访问速度 稍慢
    配置 复杂 简单


    可以看出使用Apache来访问Svn虽然慢一些,但提供了更好的访问安全性和功能。因此很多团队使用Apache来访问Svn。不过这需要额外安装Apache,并配置Apache和Svn的集成,这需要不小的配置工作量。并且在将来进行用户及权限调整时都需要手工编辑配置文件。

    在eclipse3.2.1上安装subclipse时,提示Subversion Revision Graph(1.0.7)需要 插件“org.eclipse.draw2d(3.2.0)”或更高版本,可下载GEF解决。

    未完待续...

  • 相关阅读:
    《程序猿闭门造车》之NBPM工作流引擎
    CryptographicException异常处理方法
    nodejs简单模仿web.net web api
    Windows Mobile设备操作演示准备工作小记
    PPT定时器小记
    winDBG排错小记
    Ubuntu 16.04应用布署小记
    Ubuntu 16.04环境布署小记
    Ubuntu 16.04系统布署小记
    Dokuwiki布署小记
  • 原文地址:https://www.cnblogs.com/mysqlcluster/p/2033733.html
Copyright © 2011-2022 走看看