Inconsistencia entre "git show" y "git log -" al rastrear cambios en un subdirectory

Me gustaría encontrar los cambios en un subdirectory sobre la historia de un sistema. Para ese propósito, yo uso

git log -- $subdirectory 

De acuerdo con esto , eso sería suficiente. Hay algunas confirmaciones que no aparecen en el resultado de "git log – $ subdirectory"; Sin embargo de acuerdo a

 git show $sha 

, cambian el subdirectory

Por ejemplo, en apache-accumulo cuando miro este compromiso usando

 git show 31ee26b8ac41844f2a647a5d1484f47da731872a 

, Veo que cambia "core / src / main" . Para ser más específico, recibo la siguiente respuesta

 commit 31ee26b8ac41844f2a647a5d1484f47da731872a Author: Eric C. Newton <eric.newton@gmail.com> Date: Wed Mar 11 14:37:39 2015 -0400 ACCUMULO-3423 fixed replication bugs with recent refactorings in StatusUtil diff --git a/core/src/main/java/org/apache/accumulo/core/replication/StatusUtil.java b/core/src/main/java/org/apache/accumulo/core/replication/StatusUtil.java index d8ec403..cdb6963 100644 --- a/core/src/main/java/org/apache/accumulo/core/replication/StatusUtil.java +++ b/core/src/main/java/org/apache/accumulo/core/replication/StatusUtil.java @@ -155,7 +155,7 @@ public class StatusUtil { /** * @return A {@link Status} for an open file of unspecified length, all of which needs replicating. */ - public static Status openWithUnknownLength(long timeCreated) { + public static synchronized Status openWithUnknownLength(long timeCreated) { return INF_END_REPLICATION_STATUS_BUILDER.setCreatedTime(timeCreated).build(); } diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/log/TabletServerLogger.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/log/TabletServerLogger.java index 46101c1..498cbdd 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/log/TabletServerLogger.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/log/TabletServerLogger.java @@ -319,7 +319,7 @@ public class TabletServerLogger { // Need to release KeyExtent extent = commitSession.getExtent(); if (ReplicationConfigurationUtil.isEnabled(extent, tserver.getTableConfiguration(extent))) { - Status status = StatusUtil.fileCreated(System.currentTimeMillis()); + Status status = StatusUtil.openWithUnknownLength(System.currentTimeMillis()); log.debug("Writing " + ProtobufUtil.toString(status) + " to metadata table for " + copy.getFileName()); // Got some new WALs, note this in the metadata table ReplicationTableUtil.updateFiles(tserver, commitSession.getExtent(), copy.getFileName(), status); 

; mientras

 git log -- core/src/main | grep 31ee26b8ac41844f2a647a5d1484f47da731872a 

no muestra ese compromiso.

¡No pude encontrar ninguna respuesta para eso! ¡Apreciaría cualquier idea! ¡Gracias!

Primero, no hay .gitmodules file .gitmodules en apache / accumulo , por lo que no estamos hablando en absoluto de los submodules de git .
En su lugar, puede considerar el logging para una subcarpeta o subdirectory. No es un submodule.

Segundo:

 C:\Users\vonc\prog\git\accumulo>git show --name-only 31ee26b8a commit 31ee26b8ac41844f2a647a5d1484f47da731872a Author: Eric C. Newton <eric.newton@gmail.com> Date: Wed Mar 11 14:37:39 2015 -0400 ACCUMULO-3423 fixed replication bugs with recent refactorings in StatusUtil core/src/main/java/org/apache/accumulo/core/replication/StatusUtil.java server/tserver/src/main/java/org/apache/accumulo/tserver/log/TabletServerLogger.java 

Esto se refiere a StatusUtil.java , que ahora está en src/main/java/org/apache/accumulo/server/replication

En otras palabras, ese file se movió desde esa confirmación, y el git log solo mostrará los files renombrados por defecto .

Agregar --follow al git log :

 C:\Users\vonc\prog\git\accumulo>git log --graph --all --oneline --decorate --follow -- core\src\main |grep 31ee26 | * | | | | | | | | | | | | | | | | | 31ee26b8a ACCUMULO-3423 fixed replication bugs with recent refactorings in StatusUtil 

O:

 C:\Users\vonc\prog\git\accumulo>git log --follow -- core\src\main|grep 31ee26 commit 31ee26b8ac41844f2a647a5d1484f47da731872a 

Consulte " ¿Por qué git log no muestra el historial de un file movido y qué puedo hacer al respecto? "

    Intereting Posts