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

Re: Messed up a salsa commit - how best to fix?



Hi Timo (and Geert),

On Sun, Apr 24, 2022 at 10:42:51PM +0200, Timo Röhling wrote:
> Hi Julian,
> 
> * Julian Gilbey <julian@d-and-j.net> [2022-04-24 21:01]:
> > Somehow I managed to really mess up a commit to python-qtconsole: the
> > upstream and pristine-tar branches do not have the upstream/5.3.0
> > sources (the current ones).  However, there's already an
> > upstream/5.3.0 tag in the repository, pointing to a commit to the
> > master branch.
> > 
> > I think the simplest thing to do is to "rewrite history": delete the
> > head commits to the master branch and the 5.3.0 tags, and then
> > recommit correctly and force-push to salsa.
> > 
> > Would people be OK with me doing this, or do you have an alternative
> > suggestion?
> I looked at the Salsa repository, and it is not so bad. It seems like you
> forgot to pull the latest changes in upstream and pristine-tar from
> the 5.2.2 import first, so your import of 5.3.0 forked the those branches
> unintentionally.
> [...]

Thanks for all the advice!  I managed to sort it moderately cleanly in
the end, and this email records what happened and what I did, in case
anyone might benefit from this in the future.

It turns out that I'd also messed up more than I'd realised: even when
I pulled in the updated master branch, I didn't pull the upstream
branch, so managed to introduce even more conflicts.  Oh well.

But the key things that allowed for a moderately clean fix were:

* I'd correctly used gbp import-orig to pull in the original 5.3.0
  distribution to the master branch

* I had an upstream/5.3.0 tag in my local repository (which for some
  reason I hadn't pushed, yeesh)

So the state of the salsa repository was (in an ideal world where I'd
pulled upstream):
- master included the upstream/5.3.0 commit, tagged as upstream/5.3.0,
  along with further commits
- upstream was at upstream/5.2.2
- pristine-tar contained data up to upstream/5.2.2

To fix the problem, I did:

$ git checkout upstream
$ git reset --hard upstream/5.3.0
$ git checkout master
$ gbp pristine-tar commit

and that fixed everything.  I finished with git push --all and git
push --tags.

I hope I don't make this mistake again!

Best wishes,

   Julian


Reply to: