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: