groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Git, where zombie branches shamble again


From: G. Branden Robinson
Subject: Git, where zombie branches shamble again
Date: Sun, 24 Oct 2021 13:16:14 +1100
User-agent: NeoMutt/20180716

[Here's another long email; Ralph may want to skip it.]

Hi Keith,

At 2021-10-23T22:07:27+0100, Keith Marshall via Groff-commit wrote:
> Guys,
> 
> I have no idea what's happened here!
[...]
> Well, I pulled, and updated my local tree, to capture Brandon's most
> recent commits, then applied _one_ trivial ms patch, (which _should_
> have affected only tmac/s.tmac, and ChangeLog); how this push has
> regurgitated around 50 of Branden's old commits is beyond me.

It looks like you had a local, remote-tracking branch for
dev-gropdf-boxes (which Bertrand created back in April or so).

Recently, Deri landed that same work (sboxes) on master, ignoring the
branch (a good move in my opinion, since the velocity of master is
relatively high, I was taking a long time to finish the work I wanted to
do on the branch, and rebasing on _any_ Savannah-hosted branch produces
commit emails).

On master, I cherry-picked some changes from the dev-gropdf-boxes branch
and did my usual fixups, disposing of the items from the `BRANCH-TODO`
file on the branch that I deemed still relevant.

I then attempted to delete this branch, as it was neither up
to date with master (getting it that way before closing it out would
have meant a rebase, meaning another huge email blitz), nor needed any
longer.

However, I did not succeed in completely deleting the branch on
Savannah--I though I had, since it no longer appeared alongside the
'master' and Knuth-Plass formatting branches on the Web UI.  I _think_
what happened is that I managed to get the branch into a half-dead state
on Savannah, but when I tried to push my branch deletion it _did_ manage
to update with the state of my work as I had left it before I realized
that my rebasing was going to cause a commit mail blitz.  That
discouraged me, and I left the work for later once I had decided what to
do about the problem (which never happened).

Fast forward to the past 24 hours.  You probably "git --pull --rebase"d,
and implicitly pulled all branches.  You did your work and
pushed...implicitly, _all_ branches.  Apparently, this was enough to
pull the writhing zombie of the dev-gropdf-boxes branch from its grave,
and you got the dubious credit for (rebased) commits to the branch that
I had done months before but not pushed until the last week.

Today, after your mail, I have done this:

$ git push --delete origin dev-gropdf-boxes
To git.sv.gnu.org:/srv/git/groff.git
 - [deleted]             dev-gropdf-boxes

It _seems_ to be truly dead:

$ git branch --remote -l | grep gropdf
  origin/gropdfmultiglyph

(I don't know what that is, but it's not dev-gropdf-boxes; maybe we
should clean it up too.)

I attribute the problem to, in decreasing order of importance:
  1. My inexperience as a Git administrator of remote branch management;
  2. Some "helpful" Git defaults where pushes and pulls involve _all_
     branches you have checked out, not just the one corresponding to
     one's working tree (or maybe you have "--all" in a convenient alias
     somewhere);
  3. Configuration of the groff-commit list to notify of activity on all
     branches instead of just master;
  4. Some kind of disagreement between the Savannah Git Web UI and Git
     proper over which branches are truly alive.  If you do "git branch
     --remote --list", you'll see several more branches than
     <https://git.savannah.gnu.org/cgit/groff.git> shows us.

I think point (3) discourages work on remote branches, especially when
the parent branch is busy.  On the other hand, most of my development
experience is on local-only branches (or remote branches that are by
convention reserved to single-developer use), where one really does have
almost unlimited freedom, and rebasing (interactive and otherwise) is
frequent, and you can't mess up your colleagues with a "--force --push".

But the problem was mainly (1); that is, me.

Sorry about that.

Regards,
Branden

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]