2

因此,我的任务是替换我们的项目出于历史兼容性原因需要的一些虚拟代码,但自上次发布以来的某个时候神秘地退出了。由于消失的代码让我担心还有什么可能丢失但没有被注意到,我一直在挖掘日志,试图找出这几行被删除的提交。我已经尝试了很多东西,包括“git log -S'add-visit-resource-pcf'”、git blame,甚至是 git bisect,其脚本只是检查该行是否存在但无法查明这些行被删除的确切位置。我发现这非常令人困惑,特别是因为在我重新引入此代码之前的最后一个日志条目(通过上述命令获得)是其他人也添加了代码。

commit 0b0556fa87ff80d0ffcc2b451cca1581289bbc3c
Author: Andrew 
Date:   Thu May 13 10:55:32 2010 -0400

    Re-introduced add-visit-resource-pcf, see PR-65034.

diff --git a/spike/hst/scheduler/defpackage.lisp b/spike/hst/scheduler/defpackage.lisp
index f8e692d..a6f8d38 100644
--- a/spike/hst/scheduler/defpackage.lisp
+++ b/spike/hst/scheduler/defpackage.lisp
@@ -115,6 +115,7 @@
     #:add-to-current-resource-pcf
     #:add-user-package-nickname
     #:add-value-criteria
+    #:add-visit-resource-pcf
     #:add-window-to-gs-params
     #:adjust-derived-resources
     #:adjust-links-candidate-criteria-types

commit 9fb10e25572c537076284a248be1fbf757c1a6e1
Author: Bob 
Date:   Sun Jan 17 18:35:16 2010 -0500

    update-defpackage for Spike 33.1 Delivery

diff --git a/spike/hst/scheduler/defpackage.lisp b/spike/hst/scheduler/defpackage.lisp
index 983666d..47f1a9a 100644
--- a/spike/hst/scheduler/defpackage.lisp
+++ b/spike/hst/scheduler/defpackage.lisp
@@ -118,6 +118,7 @@
     #:add-user-package-nickname
     #:add-value-criteria
     #:add-vars-from-proposal
+    #:add-visit-resource-pcf
     #:add-window-to-gs-params
     #:adjust-derived-resources
     #:adjust-links-candidate-criteria-types

这是针对我们的包定义文件之一,但相关的源文件反映了类似的内容。有谁知道这里会发生什么以及我如何找到我想要的信息?这不是真的那么重要,但这种事情让我有点紧张。

4

1 回答 1

4

我怀疑你可能有一个邪恶的合并——一个真正改变的合并提交。作为解决冲突的一部分,也许这是一个无辜的错误。假设这是发生了什么,让我们看看如何找到它......

git log -Sstring似乎没有正确处理邪恶合并。(不幸git log --cc -Sstring的是并不能说服它正确地查看它们;它只是选择所有合并提交。)

有了这个障碍,我可以想到两个选择:

  • 手动测试合并提交

  • Kludge your own log -S:搜索git log --merges -p -cc目标行的输出。它应该看起来像-- #:add-visit-resource-pcf,虽然最快的方法可能只是管道到less和搜索add-visit-resource-pcf

当然,这个故事的寓意是,邪恶的合并被称为邪恶是有原因的。

顺便说一句,我很惊讶你找不到它。我很确定 bisect 能够将合并提交作为结果。

于 2010-05-13T20:32:53.427 回答