【问题标题】:CVS to SVN conversion -- How to replace CVS TAGS functionalitiesCVS 到 SVN 的转换——如何替换 CVS TAGS 功能
【发布时间】:2010-11-11 03:20:05
【问题描述】:


我们计划从 CVS 转移到 SVN。
一切看起来都不错,希望我们的开发人员在每次提交时都添加前/后标签。
因此,在 CVS 中我们没有问题,因为 TAGS 直观且便宜。
但是,在SVN中,Tag是一种版权吗?
话虽如此,我想知道是否有办法让我根据修订或我在提交之前可以访问的东西来做一个前后标签。

【问题讨论】:

    标签: svn tags cvs commit


    【解决方案1】:

    只是关于 CVS 和 SVN 标签之间的细微差别的小评论,这可能会导致迁移中的一些问题(至少它在我的小组中引起了误解)。

    在 CVS 中,标签是您开发的一种时间快照;你通常在 你的 HEAD 并且当你达到一种想要保存以供以后参考的稳定情况时,你只需做一个标记。如果您从 CVS 存储库中签出标记版本,则无法对其进行修改,或者更好地说,可以在本地副本上对其进行修改,但您无法提交回更改。 CVS 以某种方式自动保护其标签免受意外更改

    SVN 中的副本只是另一个路径中的主干副本.. 如果您从存储库中的标记路径签出代码,您仍然可以更改它并将其提交回来;这通常是您不想做的事情,至少如果您将标签视为不应该更改的开发的固定快照。这就是为什么可以使用特定的钩子脚本来强制标签目录为只读(在我看来应该非常鼓励)。

    希望它有助于讨论 SVN 和 CVS 之间的差异(请为我的英语道歉)。

    【讨论】:

    • 感谢奥波里克。你的英语很棒!
    【解决方案2】:

    我不确定我是否正确理解了这个问题,但是您可以在 svn 中标记特定的修订:

    $ svn cp -r /trunk /tags/my_tag

    请参阅Subversion 的版本控制 中的chapter on svn copy 了解更多信息。 Appendix B. Subversion for CVS Users 可能也值得一读。

    【讨论】:

      【解决方案3】:

      标签是一个副本,但由于 Subversion 中的修订是基于树的,因此副本的开销远低于 CVS。详情请查看Subversion book。 正如理查德的评论所说,page 上有一个框,描述了廉价副本。 还有这个site 列出了 CVS 用户的 Subversion 顶级技巧。

      【讨论】:

      【解决方案4】:

      标签是一个虚拟副本。可以把它想象成 UNIX 中的符号链接——这是一种成本非常低的操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多