gitk: seltsamer Geschichte Baum

9

Ich portiere ein SVN Repo zu git (mit svn2git von Ссылка ) und seit svn tut Verfolgen Sie keine Merges, ich muss .git / info / grafts manuell bearbeiten. Dazu starte ich gitk, suche in Commit-Nachrichten nach dem Begriff "Merge", vergewissere mich, dass die Zusammenführungs-Commits die richtige Abstammung haben und befülle .git / info / grafts entsprechend.

Das Problem, das ich habe, ist, dass Gitk mit dem "Master" Zweig zu verwechseln scheint. Es zeigt oft, dass der Master von einem Zweig "gegabelt" wird und zu einem Zweignachwort verschmolzen wird, wenn es eigentlich das Gegenteil ist.

Warum kann es nicht verstehen, dass der Meister "so linear" wie möglich sein sollte, und es ist die Verzweigung, die daraus abgeleitet werden sollte, nicht das Gegenteil? Ist es ein Gitk-Problem oder ist die Geschichte des Git Repo unvollständig? Es scheint, dass "git log --pretty = oneline --graph" das korrekte Verhalten zeigen kann, so dass ich denke, dass es ein gitk Problem sein könnte.

Ich habe auch versucht, kichern und qgit, aber beide haben ihr Problem. Ich finde Kicherbaum sehr schwer zu verstehen (Merges sind zum Beispiel horizontal, während in Qgit und Gitk sie schräg sind ...) und qgit scheint keine Commits zu zeigen (das Commit, das den Zweig in Svn erstellt, wird in beiden als Git-Commit angezeigt "git log --pretty = oneline --graph" und gitk, aber nicht in qgit noch kichern).

Beachten Sie, dass ich "gitk --all" in meinen Tests verwende.

Also meine Frage ist: -Wie kann ich Gitk zwingen, Master so linear wie möglich zu zeigen? Idealerweise "linksbündig" mit Zweigen, die sich von ihm abzweigen, nicht umgekehrt. "git log --pretty = oneline --graph" scheint es richtig zu machen, aber was ist mit gitk?

Danke!

Bearbeiten: Screenshot Links sind tot. Zuvor gesagt:

  

Ich habe Screenshots der verschiedenen Tools hochgeladen:    git log, gitk, kichern, qgit

     

Sehen Sie, wie "git log" den Zweig anzeigt, der in trunk zusammengeführt wird, während gitk   zeigt, dass der Stamm in der Verzweigung zusammengeführt wird. Giggle und qgit zeigt das Recht   Zusammenführen, aber sie lassen oft einige Commits (Erstellen von Zweigen) fallen, so ist es   wirklich schwer, die .git / info / grafts Datei manuell zu bearbeiten.

    
big_gie 22.12.2010, 16:40
quelle

3 Antworten

1

Nach dem Spielen mit einer anderen GUI scheint das Verhalten wirklich vom Werkzeug abhängig zu sein. Leider sind nicht viele von ihnen konfigurierbar ...

Ich bevorzuge eine Baumansicht dessen, was tatsächlich passiert ist, im Vergleich zu einer optimierten Ansicht, wo alles passt ...

Ich habe mich für "gitg" entschieden (http://trac.novowork.com/gitg/). Scheint relativ aktiv und es macht genau das, was ich von der History-Ansicht erwarte. Der Meister ist die am weitesten links liegende "Spur", von der Verzweigungen abgezweigt werden und von rechts in diese einmünden. Ich denke, es entspricht meinem Workflow. Außerdem kann ich "inaktive Spuren" anzeigen, so dass der Master immer angezeigt wird und auf der linken Seite (im Einstellungsfenster aktivieren / deaktivieren). Schön ist auch die "Geschichte in topologischer Reihenfolge zeigen". Wenn diese Option aktiviert ist, versucht gitg, Commits in einem Zweig zu platzieren. Wenn sie nicht markiert sind, werden sie in chronologischer Reihenfolge angezeigt.

Es kann auch grundlegende Commits und Staging durchführen.

Einziger Wermutstropfen, den ich finden kann, ist die Suche: Es scheint, dass ich nicht in ein Sha1sum einsteigen und das richtige Commit finden kann. Vielleicht nur ein Fehler.

Über die ursprüngliche Frage (kann gitk so konfiguriert werden, wie ich es möchte?) Ich bin mir immer noch nicht sicher, ob es möglich ist. Wahrscheinlich eine Designentscheidung ...

    
big_gie 23.12.2010 15:24
quelle
0
  

Sehen Sie, wie "git log" den Zweig anzeigt, der in den Trunk integriert wird, während gitk den Trunk in einem Zweig zusammenführt.

Das liegt daran, dass gitk Eltern - wie viele andere Werkzeuge - frei nachordnet. Der äußerste linke Elternteil ist nicht immer der erste Elternteil. Oft stellen Werkzeuge die Eltern überall dort hin, wo Platz ist. Es sorgt letztendlich für eine mehr gepackte Ansicht. Vergleichen Sie:

  • Ссылка - git log macht "Master" um den Zweig "nucrypt2" herum, so dass das X'th (X & gt; = 2 ) Elternteil ist immer rechts von der Zusammenführung
  • Ссылка - git-forest, Standard
  • Ссылка - dasselbe, wenn die Suche nach Zusammenführungsverknüpfungen deaktiviert ist

Ich finde die Grafik von git-log nicht sehr ergonomisch - es braucht mehr leere Zeilen.

    
user502515 23.12.2010 02:18
quelle
0

Wenn Sie einen GitHub-Account haben, können Sie das " Netzwerk "dort auch sehen.

    
MatrixFrog 24.12.2010 23:10
quelle

Tags und Links