【问题标题】:Does Subversion support aliases for branchesSubversion 是否支持分支的别名
【发布时间】:2010-08-11 18:12:49
【问题描述】:

有没有办法在 subversion 中指定特定路径是不同路径的别名,并且能够随着条件的变化更新该别名?我可以锁定路径以防止更改吗?

我正在研究存储库结构,我想做的是有以下路径:

  • /versions/1.0 - 以前的版本(锁定)
  • /versions/1.1 - 以前的版本(锁定)
  • /versions/1.1.1 - 当前版本(解锁用于补丁开发)
  • /versions/1.1.2 - 下一个次要版本(解锁用于开发)
  • /versions/1.2 - 下一个主要版本(解锁用于开发)
  • /patch - /versions/1.1.1 的别名,签入出现在两个地方
  • /subrelease - /versions/1.1.2 的别名,签入出现在两个地方
  • /trunk - /versions/1.2 的别名,签入出现在两个地方

目标是保持主干移动以跟上大多数开发人员的工作。在我们发布了几次并且 1.2 上线后,结构将是:

  • /versions/1.0 - 以前的版本(锁定)
  • /versions/1.1 - 以前的版本(锁定)
  • /versions/1.1.1 - 以前的版本(锁定)
  • /versions/1.1.2 - 以前的版本(锁定)
  • /versions/1.2 - 当前版本(解锁用于补丁开发)
  • /versions/1.2.1 - 下一个次要版本(解锁用于开发)
  • /versions/1.3 - 下一个主要版本(解锁用于开发)
  • /patch - /versions/1.2 的别名,签入出现在两个地方
  • /subrelease - /versions/1.2.1 的别名,签入出现在两个地方
  • /trunk - /versions/1.3 的别名,签入出现在两个地方

我知道我可以在自己的机器上执行此操作,但在源代码管理中强制执行此操作会给每个人提供一套通用的语言来使用。

【问题讨论】:

    标签: svn version-control


    【解决方案1】:

    据我所知,您可以使用svn:externals property 使一个文件夹充当另一个文件夹的别名来实现类似的效果。如果您不必一次提交两个版本/分支,它应该可以工作。

    【讨论】:

    • 其实是的,我忘记了。我对此有不同的经验,但这是在另一个结帐中使用外部而不是从整个结帐中获取外部。我也曾在 svn 列表中看到过多次讨论内部链接,但据我所知,它们还不存在。
    【解决方案2】:

    不支持别名,抱歉。然而,复制整棵树既快速又容易。您可以不创建版本/1.2 等,然后在时机成熟时将主干复制到版本/1.2,或者只在版本/1.2 中工作。或者,您可以同时管理两者,但使用一个过程在两者之间复制提交,例如一旦他们通过了您的持续集成服务器上的所有测试,它会将提交从主干复制到 1.2。

    锁定:您可以编写一个服务器端提交挂钩来防止提交到特定路径并在那里添加您的路径以锁定它们。但是,服务器或默认客户端都没有内置支持。一些客户,例如TortoiseSVN 会将包含“标签”的路径视为应该锁定的,并在您要提交它们时警告您,但这纯粹是客户端和客户端特定的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-10
      • 2021-08-31
      • 2010-11-25
      • 1970-01-01
      • 1970-01-01
      • 2014-07-31
      • 2011-06-07
      • 2023-01-07
      相关资源
      最近更新 更多