分享

SVN的Peg Revision和Operative Revision

 torony 2016-01-12

Peg Revision : SVN里的一个有趣的概念。

一般情况下,我们指定SVN下的一个元素的一个版本,只需要使用path和版本号就可以了,但是某些特殊的情况下path加版本号是不能定位一个特定的版本的,因为有可能某个path会出现删除之后又被创建起来的情况,也就是说这个path可能对应多个不同的对象,这种情况下,仅仅指定一个版本号svn是不能定位的,必须再加上额外的信息。

SVN于是定义了Peg Revision来解决这个问题,这个Peg Revision表示在这个版本下定位那个元素,这一定是唯一的,这在SVN的命令行是通过加在path名后的@来指定的,而svn命令行的-r 指定的版本,则称为Operative Revision。这样下面的命令:
svn info build.xml@10 -r 50

就表示要在仓库的10版本中找到build.xml,并显示这个对象的50版本信息,而一般情况下如果用 svn info build.xml -r 50 ,则一当前库上的build.xml为对象,显示它的50版本信息,实际上也等价于:
svn info build.xml@BASE -r 50

通常,这两条命令产生相同的结果,不会有歧义,但如果build.xml在51版本删除了,又重新建立了这个同名文件,则这两条命令就产生不同的结果了,前一条命令会引用到比较早的build.xml,而后一条则是比较新的,但在50版本,这个新的build.xml还没有建立,所以会显示对象找不到。
详细的解释,也可以参考红宝书中的解释: http://svnbook./en/1.1/ch07s03.html


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多