Git не показывает, где код был удален - PullRequest
2 голосов
/ 14 мая 2010

Таким образом, мне было поручено заменить некоторый фиктивный код, который требуется нашему проекту по историческим причинам совместимости, но он загадочным образом выпал когда-то со времени последнего выпуска. Поскольку исчезающий код заставляет меня нервничать из-за того, что еще могло пропасть, но незаметно, я копался в журналах, пытаясь найти, в каком коммите был убран этот набор строк. Я пробовал несколько вещей, включая «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

Это для одного из наших файлов определения пакета, но соответствующий исходный файл отражает нечто подобное. Кто-нибудь знает, что здесь может происходить и как я могу найти информацию, которую я хочу? Это на самом деле не так важно, но такие вещи заставляют меня немного нервничать.

1 Ответ

4 голосов
/ 14 мая 2010

Я подозреваю, что у вас может быть злое слияние - коммит слияния, который вносит реальные изменения. Возможно, это была невинная ошибка как часть разрешения конфликта. Предполагая, что это то, что произошло, давайте посмотрим, как это найти ...

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 способен давать коммиты слияния как результаты.

...