【发布时间】:2014-11-20 09:50:53
【问题描述】:
我正在使用基于主干的开发模型和 SVN 外部使用 HEAD 修订版。当我标记一个版本时,有没有办法自动修复外部的当前版本?
目前,我必须为每个外部 repo 设置 SVN 外部属性为当前版本,提交属性,创建标签,将外部恢复回 HEAD。
【问题讨论】:
标签: svn svn-externals
我正在使用基于主干的开发模型和 SVN 外部使用 HEAD 修订版。当我标记一个版本时,有没有办法自动修复外部的当前版本?
目前,我必须为每个外部 repo 设置 SVN 外部属性为当前版本,提交属性,创建标签,将外部恢复回 HEAD。
【问题讨论】:
标签: svn svn-externals
SVN 1.9 命令行客户端似乎为复制命令增加了一个--pin-externals 标志。
【讨论】:
据我所知,SVN 中没有命令行工具可以自动修复外部标记。
但是,无论何时创建标签,TortoiseSVN 都会为您提供此选项。
它通过在创建标签后对标签进行第二次提交来做到这一点,这会将所有外部设置为它们已经指向的任何路径上的固定修订版。
您可以通过标记、修改外部和提交到标记来手动执行此操作。我知道通常标签应该是不可变的,但你可以为这一项任务做一个例外。
作为替代方案,请考虑始终在外部设置固定修订。这是推荐的用法。如果您不这样做,那么您将无法“回到过去”来查看您的项目在其历史的某个时刻的样子。当您的主干处于给定状态时,外部不会反映它们使用的版本。
【讨论】: