2016-04-20 18 views
1

Wir versuchen zu verstehen, warum wir verschiedene Ergebnisse erhalten, wenn Sie den Verlauf/Protokoll für eine Datei abhängig von den Tools, die wir verwenden, betrachten. Das Repo ist in TFS Git. Wir können es mit GitBash oder Visual Studio 2015 klonen und wir erhalten die gleichen abwechslungsreichen Ergebnisse.
eine bestimmte Datei Mit GitBash Gegeben:Git-Tools zeigen unterschiedliche Geschichte

git log <filename> 

nichts zurückkehrt.

update - Ich fand dies wurde verursacht, indem Sie nicht den gesamten Pfad zu der Datei angeben. Ich habe nur den Dateinamen verwendet. Ich weiß immer noch nicht, warum das neueste Update in TFS nicht angezeigt wird.

Die Verwendung der TFS-Webschnittstellenhistorie zeigt 9 Änderungen einschließlich 1 Zurücksetzung. Verwenden von TortoiseGit Show log returns 4 Commits. Es zeigt NICHT das letzte Commit an. Wenn ich jedoch die Option "Gesamtes Projekt anzeigen" auswähle, kann ich das neueste Commit finden.

Kann jemand den Unterschied erklären, was diese Operationen tatsächlich bewirken und warum die Ergebnisse anders sein würden?

Antwort

1

Rechtsklick auf eine Datei und Show log, TortoiseGit zeigt Ihnen das Protokoll nur für diese Datei. Also, diese Datei hat nur Änderungen in diesen 4 Commits.

Wenn Sie das Dialogfeld "Gesamtes Projekt anzeigen" im Dialogfeld "Protokollmeldung" aktivieren, wird der gesamte Projektverlauf angezeigt. So können Sie alle Commits sehen, einschließlich der Commits, die nicht mit dieser Datei zusammenhängen.

Über TFS, sorry, keine Ahnung! Ich wünsche Ihnen, dass die obigen Informationen Ihnen helfen.

+0

Dies scheint nicht korrekt zu sein. Wir haben einen Fall einer Datei, die am 19.04. Geändert wurde. Die Änderungen waren nur Leerzeichen, aber es gab definitiv Änderungen. Im TFS-Protokoll werden die Änderungen im TortoiseGit-Protokoll nicht angezeigt. Das ist die Art von Problem, mit der wir konfrontiert sind. –

+0

Interessant! Könnten Sie bitte ein Test-Repository auf GitHub/GitLab bereitstellen? –

+0

das wäre schwierig. Ich habe eine Kopie des Repos in dem Zustand, in dem das Problem besteht. Aber es ist Produktionscode und ich werde das nicht auf GitHub schieben. –

0

Ich denke ich verstehe was passiert.

zeigt die Änderungen, die angewendet werden müssen, um die Dateien in den aktuellen Status zu versetzen.

Zum Zwecke der Ermittlung, wer was zu einer Datei getan hat, wenn dies nicht ausreicht.

jedoch
git log --full-history <path> 

geben Ihnen jede einzelne Änderung jeder merge einschließlich.

TFS Git von einer TFS-Website aus gesehen scheint eine Version des Verlaufs zu zeigen, der die Zusammenführungs-Commits entfernt, aber auch ein paar weitere Commits zu enthalten scheint, als es bei Git der Fall ist. Es scheint auch Zurücksetzungen und das Zurücksetzen zu enthalten.

Was wäre hilfreich wäre eine --full-Geschichte Option in TFS Git.