git ne montre pas où a été supprimé du code
Question
Alors j'ai été chargé de remplacer un code factice que notre projet a besoin pour des raisons de compatibilité historique, mais a mystérieusement abandonné quelque temps depuis la dernière version. Depuis le code disparaissant me rend nerveux au sujet de quoi d'autre pourrait avoir disparu, mais non remarqué que j'ai creuser à travers les journaux en essayant de trouver dans ce commit cette poignée de lignes a été supprimée. J'ai essayé un certain nombre de choses, y compris "git-visite -S'add une session-ressources pcf», blâme git, et même bisect git avec un script qui vérifie simplement l'existence de la ligne, mais ont été incapables de Pinpoint exactement où ces lignes ont été supprimées. Je trouve cela très perplexe, surtout depuis la dernière entrée du journal (obtenu par la commande ci-dessus) avant ma réintroduction de ce code a été quelqu'un d'autre en ajoutant le code.
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
Ceci est l'un de nos fichiers de définition de package, mais le fichier source pertinente reflète quelque chose de similaire. Est-ce que quelqu'un sait ce qui pourrait se passer ici et comment je pouvais trouver l'information que je veux? Ce n'est pas vraiment important, mais ce genre de choses me fait un peu nerveux.
La solution
Je suppose que vous pouvez avoir une fusion mal - un commit de fusion qui fait un changement réel. Peut-être était une erreur innocente dans le cadre de la résolution des conflits. À supposer que ce qui est arrivé, nous allons voir comment le trouver ...
git log -Sstring
ne semble pas traiter le mal se confond correctement. (Et malheureusement git log --cc -Sstring
ne convainc pas de les regarder correctement;. Il seulement sélectionne tous commits de fusion)
Avec ce handicap, je peux penser à deux options:
-
commits de fusion de test manuellement
-
Kludge votre propre
log -S
: rechercher la sortie degit log --merges -p -cc
pour la ligne cible. Il devrait ressembler à-- #:add-visit-resource-pcf
, bien que le moyen le plus rapide est probablement juste de tuyau pourless
et rechercheradd-visit-resource-pcf
.
La morale de l'histoire est, bien sûr, qu'il ya une raison du mal se confond sont appelés mal.
Je suis surpris que vous ne avez pu le trouver avec un sécable, par la voie. Je suis assez sûr capable de bisect de donner commits de fusion comme résultats.