【问题标题】:Renamed file replacement always being updated重命名文件替换总是被更新
【发布时间】:2015-05-21 09:54:16
【问题描述】:

在我的 Mercurial 存储库中,我遇到了这样一种情况,即每次合并都会更新单个文件。这是一个复杂的情况(我会尝试解释),我不确定这个问题会得到很好的接受......

我有两个主要分支,DevelopmentMaster...,Development 中的所有更改在发布时都合并到 MasterMaster 分支相应地标记有版本号。

几个月前,为了命名一致性,我重命名了 Development 分支中的一个文件(从 ViewOffer.aspx / .aspx.vb / .aspx.designer.vbMakeOffer.aspx / 等)。重命名的更改集已提交到 repo。

为了保护任何调用 ViewOffer.aspx 的实例(通过书签等),我创建了一个新的 ViewOffer.aspx,并通过非常简单的重定向到 MakeOffer.aspx 并将其提交给 repo。

在它发布之后,我像往常一样将Development 分支合并到Master... 但是直到现在我才注意到,每次我现在从Development 合并到Master总是更新ViewOffer.aspx

我意识到这不是一个大问题,因为文件完全符合它应该的样子......但文件不断更新让我很恼火。

有什么方法可以阻止它在每次合并时更新?


更新

这是 TortoiseHG 的一张照片,显示了最后一次合并...

您可以看到ViewOffer.aspx 已被合并,尽管该文件已经超过 2 个月没有被触及。 (而且那段时间已经有很多合并了。)

由于将ViewOffer.aspx 重命名为MakeOffer.aspx 并创建了新的ViewOffer.aspx,出现了问题。

【问题讨论】:

  • 您能否更准确地说:合并结果以何种方式具有“文件完全应有的状态”,同时文件“不断更新”。它是否将文件标记为有更改但更改无关紧要?
  • 感谢@Edward 的回复,我很抱歉没有说清楚……但要说清楚并不容易。这正是我正在努力解决的问题......看起来文件在两个分支中是相同的(即文件与它应该的完全一样),但是每次合并时文件上的日期时间都会更新发生.我将添加一个屏幕截图来显示我的 TortoiseHG 屏幕
  • 这里有一个建议:更新到 master 并使用 hg revert -r Development ViewOffer.aspx 并提交。这可能会让 hg 相信该文件实际上是相同的。不过,在您真正尝试之前先在一次性克隆中进行测试。 :)
  • 不幸的是,:(Development 合并到Master 仍然没有任何效果@ 仍然包括ViewOffer.aspx
  • 恭喜您找到了自己的答案!

标签: version-control merge mercurial


【解决方案1】:

在玩了很多之后,我终于解决了......虽然我仍然完全不知道为什么会发生这种情况。

我的做法是这样的……

  • 更新到Development 分支
  • 更改ViewOffer.aspx 文件并提交
  • 更新到Master 分支
  • 删除ViewOffer.aspx文件并提交
  • 开始从Development 分支合并到当前Master 分支。此时,TortoiseHG 向我显示了以下提示:

远程更改本地删除的ViewOffer.aspx使用(c)更改版本或离开(d)删除

  • 选中changed并完成合并

现在当我在MasterDevelopment 之间update 时,唯一要更新的文件是.hgtags(如预期的那样)。

当我进行任何更改并将Development 合并到Master 时,ViewOffer.aspx 不再列为文件之一。

【讨论】:

    猜你喜欢
    • 2022-08-11
    • 2018-08-30
    • 1970-01-01
    • 2014-11-06
    • 1970-01-01
    • 2021-12-28
    • 2011-08-25
    • 2018-12-31
    • 1970-01-01
    相关资源
    最近更新 更多