gpt4 book ai didi

svn - 我手动编辑合并信息的方式安全吗?

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

我已经做了一些关于为什么子目录合并不好的研究,最近在我们的存储库中发现了一个带有 mergeinfo 的子目录。

我正在尝试手动删除此合并信息,并想看看我是否正确理解了 mergeinfo 并正确执行了操作。

ROOTDIR 合并信息

/分支/迭代53:18065-18126

/分支/迭代54:18150-18204,18210-18231

/branches/Iteration55:18341,18348,18353-18355,18357,18364-18365 <===== 这一行不一样

/branches/gdsRework:17329-17457

/trunk:17869,18085

SUBDIR 合并信息

/branches/Iteration53/kiwi-web:18065-18126

/branches/Iteration54/kiwi-web:18150-18204,18210-18231

/branches/Iteration55/kiwi-web:18336-18428 <====== 这一行不同

/branches/gdsRework/kiwi-web:17329-17457

/trunk/kiwi-web:17869,18085

两者之间只有 1 行不同。我还注意到 SUBDIR 合并信息中的 18336-18428 范围包括 ROOTDIR 合并信息中同一行的所有修订。

所以我的计划是用 SUBDIR 中的行替换 ROOTDIR 中的那一行,然后一起删除 SUBDIR 合并信息:

新的 ROOTDIR 合并信息

/分支/迭代53:18065-18126

/分支/迭代54:18150-18204,18210-18231

/branches/Iteration55:18336-18428 <====== 现在与 SUBDIR 合并信息相同

/branches/gdsRework:17329-17457

/trunk:17869,18085

SUBDIR 合并信息被删除。

这安全吗?陷阱会在哪里?提前谢谢你。

最佳答案

不建议手动编辑mergeinfo。虽然在过去我做了像你描述的那样的事情,即使 root 和 subdir 之间的差异更复杂,但这种编辑非常容易出错,因此需要非常小心和准确。后来我了解到,SVN 足够强大,可以很容易地解决这种情况;所以最好不要养成手动合并信息编辑的习惯。

简单的情况是当 SUBDIR 合并信息中记录的“额外”修订仅影响该子目录时。在这种情况下,您只需要在 ROOTDIR 级别对修订版 18336 到 18428 进行仅记录合并。仅记录合并将更新 ROOTDIR 的合并信息而不涉及任何文件,并且由于 SUBDIR 合并信息将与 ROOTDIR 的合并信息完全相同,因此它将删除过多的合并信息。

  • 如果直接使用SVN命令,只需添加--record-only svn merge 的选项用于真正合并的命令。
  • 如果您使用 GUI 客户端,请在其合并对话框中查找“仅记录”或类似名称的选项。

  • 请注意 mergeinfo 中的范围(包括其两端和其间的所有内容)与 -r 中的范围之间的区别。选项(指定两个修订版本以获取差异);例如在命令行中,您需要指定 -r 18335:18428 ,即采用差异的起始修订版比要合并的第一个修订版少一个。

    更复杂的情况是,如果这些修订合并到 SUBDIR 而不是 ROOTDIR 也会更改 SUBDIR 之外的文件。这些更改很可能尚未合并。如果忽略这些更改是安全的,那么您也可以进行仅记录合并。相反,如果碰巧错过了这些更改,您可能希望在 ROOTDIR 级别对修订进行常规合并,并修复合并冲突(如果有)。

    合并(仅记录或常规)完成后,检查目录的合并信息是否正确更改,并提交结果。

    一篇很好的文章,我学到了很多关于 mergeinfo 以及它是如何被 SVN 命令操作的(包括仅记录合并、mergeinfo 省略等),在这里: Subversion 1.5 Mergeinfo - Understanding the Internals .我建议您在尝试修复存​​储库中的合并信息之前阅读该内容。

    关于svn - 我手动编辑合并信息的方式安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13201153/

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