自由、开源的版本管理系统内容摘要:

作拷贝:为了灵活,允许一个工作拷贝中存在多个修订版本的文件 • SVN特性:修订版本号的全局性。 如果某文件的修订号为 N,并不意味这这个文件被提交了 N次(甚至有可能这个文件只修改过 1次),而意味着整个版本库被提交了 N次 • 当一次 Checkout或者(整个工作拷贝的) Update操作完成后,工作拷贝中所有文件都会被更新到同一个版本号 • 两个操作可能引起混合版本的情况:提交和部分更新 混合修订版本的工作拷贝(续) • 提交会引起混合修订版本的情况 • SVN的原则:一个 PUSH的动作不会导致被 PUSH,或者反之。 换句话说,提交某个修改的过程不会导致工作拷贝被修改。 在 SVN中, 更新和提交是分开的 • 当提交修改时,被提交修改的文件版本号将递增,但是工作拷贝中的其他文件仍然保持原有版本号,于是就形成了混合修订版本的格局 混合修订版本的工作拷贝(续) • 很显然,(部分)更新也可能会引起这种情况 • 部分更新是指对工作拷贝中某个文件或者子目录的更新操作(不限于更新到 HEAD) • 很灵活的一个特性 混合修订版本的工作拷贝(续) • 混合修订版本是一种正常的情况 • 同时,混合修订版本很有用 – 例如,可以用来追溯 Bug的源头,或者确定某个特性在某个历史版本中是否具有 • 会影响某些命令,如 Log – 例如,当前 HEAD版本号为 2020,而你由于做了很多提交操作,但一直没有做更新操作,导致虽然最新的文件版本号已经是 2020,但是仍然有文件版本号只有 1937,当你对这个文件用 log命令想查看历史记录,会发现这个文件的历史到 1937就为止了 • 混合版本有限制:不是最新的不能提交(喜新厌旧。 ) 4 Subversion基本工作流程和基本操作 • Subversion的基本工作流程是: (续) • 基本命令 – CheckOut – Update – Status/Log – Commit • SVN的帮助,用 svn help 命令名称可以得到命令的帮助,或者查看 man手册和 info页。 Windows环境下可以查看 Subversion带的 CHM格式参考资料,一般 help命令就足够了 CheckOut操作 • 从版本库中取出某个目录的拷贝到本机上某个目录的操作叫做 CheckOut,这个操作是工作的基础 • 语法: checkout(co) URL[@REV]... [PATH] – 注:省略 svn,即完整的命令应该是 svn checkout … – 例 1: svn co 在当前目录建立一个 trunk目录,里面是工作拷贝 – 例 2: svn co I:\PROJECTS\torm 会在 I:\PROJECTS\目录下创建 torm目录,里面存放工作拷贝 – 例 2的命令较为常用,因为大多数情况下,我们并不想把工作拷贝目录命名为 trunk CheckOut操作(续) • 指明 Checkout的版本号 – 默认 CheckOut操作是针对 HEAD版本进行的,大多数情况下我们需要 HEAD版本,但如果需要历史版本,可以用 r(revision)参数或者是用“ @版本号 ”的形式 – 例: … r 1452 会检出 1452版,如果存在的话 … r {“20200505”} 会检出最接近这个日期的 版本 …/trunk@1452 效果同第 1个例子 • 递归与不递归 – N:不递归(仅针对顶层目录),否则目录递归(默认,常用) • 注:上面两个参数。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。