Getting jj log to talk about the remote

Part 6 of 9.

The thing that made me trust jj log as a daily driver rather than a novelty was seeing remote state show up in it without extra ceremony. jj git fetch updates jj’s view of every remote bookmark, and the default log template already annotates commits with whichever bookmarks - local, remote, or both - point at them.

Reading the markers took a moment to get used to. main main@origin on the same line means the local and remote bookmark currently agree. old-experiment@origin with no bare old-experiment means it’s a bookmark nobody has locally, seen only because it exists on the remote. An asterisk on either means they’ve diverged.

One config decision actually changes what you see, not just how it’s styled: git.auto-local-bookmark. On, every newly-fetched remote bookmark gets a matching local one automatically, so it appears in jj log as a first-class local bookmark right away. Off, it stays in the remote-only form until you explicitly jj bookmark track it. I can see the case for either default depending on the shape of the team - a small team where you track most branches benefits from the automatic version; a large repo where hundreds of short-lived branches get pushed benefits from the deliberate, noisier opt-in. Worth checking what your jj defaults to rather than assuming.

jj log -r 'remote_bookmarks()' turned out to be the single most useful revset I’ve used so far - a “what does the team actually have pushed right now” view that’s completely independent of whatever mess my own working copy is currently in.