jj log dazu bringen, über das Remote zu sprechen

Teil 6 von 9.

Was mich jj log als Alltagswerkzeug vertrauen ließ statt als Spielerei, war zu sehen, wie der Remote-Zustand ohne zusätzliche Zeremonie darin auftaucht. jj git fetch aktualisiert jjs Sicht auf jedes Remote-Bookmark, und das Standard-Log-Template annotiert Commits bereits mit den Bookmarks, ob lokal, remote oder beides, die auf sie zeigen.

Die Marker zu lesen brauchte einen Moment der Gewöhnung. main main@origin in derselben Zeile bedeutet, dass das lokale und das Remote-Bookmark derzeit übereinstimmen. old-experiment@origin ohne ein bloßes old-experiment bedeutet, dass es ein Bookmark ist, das niemand lokal hat, nur sichtbar, weil es auf dem Remote existiert. Ein Sternchen an einem von beiden bedeutet, dass sie divergiert sind.

Eine Konfigurationsentscheidung ändert tatsächlich, was du siehst, nicht nur, wie es gestylt ist: git.auto-local-bookmark. An: Jedes neu gefetchte Remote-Bookmark bekommt automatisch ein passendes lokales, sodass es sofort als erstklassiges lokales Bookmark in jj log erscheint. Aus: Es bleibt in der Remote-only-Form, bis du es explizit mit jj bookmark track trackst. Ich kann den Fall für jeden der beiden Standards je nach Form des Teams sehen, ein kleines Team, in dem man die meisten Branches trackt, profitiert von der automatischen Variante; ein großes Repo, in dem Hunderte kurzlebiger Branches gepusht werden, profitiert vom bewussten, lauteren Opt-in. Es lohnt sich zu prüfen, worauf dein jj standardmäßig eingestellt ist, statt es anzunehmen.

jj log -r 'remote_bookmarks()' stellte sich als das einzelne nützlichste Revset heraus, das ich bisher verwendet habe, eine “was hat das Team gerade tatsächlich gepusht”-Sicht, die völlig unabhängig davon ist, in welchem Chaos meine eigene Arbeitskopie gerade steckt.