gpt4 book ai didi

svn - 有没有办法在提交自己的更改时自动更新 SVN 外部的 Hook 修订?

转载 作者:行者123 更新时间:2023-12-05 06:27:03 26 4
gpt4 key购买 nike

我正在使用 TortoiseSVN(版本 1.9.7)并且刚刚开始使用 svn:externals。我想用它在同一个存储库中的不同项目之间共享一些通用功能。所以 repo 布局会是这样的:

/projectA
/projectB
/projectC
/sharedLibs
/sharedLibs/lib1
/sharedLibs/lib2

然后我使用 svn:externals,例如在 /projectA/lib 上,将一些共享库链接到当前项目。例如 ^/sharedLib/lib1

按照文档中的建议,我使用明确的版本号(peg 版本)。现在,我可以更改我的工作副本 /projectA/lib/lib1 中的一些代码,TortoiseSVN 让我将其提交到 /sharedLibs/lib1 以便使我的更改可用所有项目。

但是,如果我想更新 /projectA/lib 的外部以指向我自己所做的更改,我必须另一个提交更改 /projectA/libsvn:external 属性(使用 TortoiseSVN 的外部编辑对话框提供的“adjust to HEAD”选项)。

这个过程是否有任何捷径,这样我就不必在每次更改外部内容(指向同一存储库中的另一个文件夹)时都进行额外的提交?

最佳答案

svn:externals 和 TortoiseSVN 一起玩了一段时间之后,我的问题现在对我来说看起来有点傻...我会在这里陈述我目前的理解,因为总是有它可能对某人有所帮助的(小)机会。

基本上,人们可以尝试(手动)将所有内容压缩到一次提交中,但这无法反射(reflect)实际发生的情况,并且可能会使阅读提交日志的人感到困惑。

使用问题中的示例,会发生以下情况:

  1. /projectA/lib/lib1 中的本地修改将提交到 /sharedLibs/lib1
  2. 必须告知文件夹 /projectA/lib 获取在步骤 1 中创建的 /sharedLibs/lib1 的新版本。这是由一个更新文件夹的 svn:externals 属性。

所以变化实际上发生在两个完全不同的地方,因此使用两次提交是有意义的。另一个原因是我们希望将 /projectA/lib/lib1 指向 /sharedLibs/lib1 的一个specific revision(peg revision)。在提交更改之前(在上面的步骤 1 中),我们无法知道这个新的修订号。我们可以尝试猜测新提交获得的修订号,但如果其他人在我们的 updatecommit 操作之间提交任何内容,这可能会失败。

关于svn - 有没有办法在提交自己的更改时自动更新 SVN 外部的 Hook 修订?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55650140/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com