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

    From Geert Stappers@21:1/5 to Julian Gilbey on Sun Apr 24 22:10:01 2022
    On Sun, Apr 24, 2022 at 09:01:02PM +0100, Julian Gilbey wrote:
    Hi,

    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,

    I'm not OK with rewriting history.


    or do you have an alternative suggestion?

    Accept the failure, learn from it, move on, make new mistakes, learn from them.

    In other words: Do not spend energy on erasing a mistake^Wlearing expirience.


    Best wishes,
    Julian


    Groeten
    Geert Stappers
    --
    Silence is hard to parse

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Julian Gilbey@21:1/5 to All on Sun Apr 24 22:10:01 2022
    Hi,

    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?

    Best wishes,

    Julian

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Timo =?utf-8?Q?R=C3=B6hling?=@21:1/5 to All on Sun Apr 24 22:50:01 2022
    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.

    As the first order of business, you should run

    $ git fetch origin

    to update all your remote branches to the actual locations. Then, we
    can fix the branches one by one.

    For the pristine-tar branch, the easiest way is to rebase your
    commit to the actual remote branch that includes the 5.2.2 import by Frédéric:

    $ git checkout pristine-tar
    $ git rebase origin/pristine-tar
    $ git push origin pristine-tar

    The upstream branch cannot be rebased, because it is interwined with
    the master branch. Fortunately, that is not necessary, because the
    5.2.2 import has been merged into master and therefore is connected
    in the graph.

    Make sure that your local upstream branch and the upstream/5.3.0 tag both point at commit 08935221b549bf32157d739cd54eb1645a2ab123:

    $ git -P log -n1 upstream
    $ git -P log -n1 upstream/5.3.0

    If they do, you can

    $ git push --force origin upstream upstream/5.3.0

    This will remove the 5.2.2 import from the upstream branch history, but it
    will not be lost because it is still connected to the master branch,
    which is arguably the more important connection, as it allows
    you to reproduce the 5.2.2 upload if required.


    Cheers
    Timo

    --
    ⢀⣴⠾⠻⢶⣦⠀ ╭────────────────────────────────────────────────────╮
    ⣾⠁⢠⠒⠀⣿⡁ │ Timo Röhling │
    ⢿⡄⠘⠷⠚⠋⠀ │ 9B03 EBB9 8300 DF97 C2B1 23BF CC8C 6BDD 1403 F4CA │
    ⠈⠳⣄⠀⠀⠀⠀ ╰────────────────────────────────────────────────────╯

    -----BEGIN PGP SIGNATURE-----

    iQGzBAABCgAdFiEEJvtDgpxjkjCIVtam+C8H+466LVkFAmJltkYACgkQ+C8H+466 LVnuigwAqND51/G+9QpkPdOohgN931n9XCCjsYuz/7tBhk9znZZWpiEMYCJwyWVw WAFaqP8nqA4xgEQnGXK8pDxA1hdMffSuPEJGhtZIBq11c/ULZmILXMXHHskrvxie 1FzS4vDivgYiLPFncCLkNpmx9qb3oKWuzpKxYc/Pe7rOWUW7Ed/OhMkySurfIDiq gLIn6Ol5s+w64bTWAgIoVGt+aGqP6UZGzoRpTMVEP/p3btQZZSygdQ8RF7ep8Avg nEX85+a58sPFIbj9XLu0F3IArFyPVuSwImiEE71xMVc5NxoVDxg/l1KwFwBB5igC dfdj/R05/tkIGfz4a/HNzx56D8jeh8KQYfbgyU3owyy
  • From Timo =?utf-8?Q?R=C3=B6hling?=@21:1/5 to All on Sun Apr 24 23:00:01 2022
    * Timo Röhling <roehling@debian.org> [2022-04-24 22:42]:
    Make sure that your local upstream branch and the upstream/5.3.0 tag
    both point at commit 08935221b549bf32157d739cd54eb1645a2ab123:
    Aaaand I copied the wrong commit hash to the email. :/ e228e8902aeb91011a53bb1a91f7f3390a771e0e is the one you should be
    looking for:

    https://salsa.debian.org/python-team/packages/python-qtconsole/-/commit/e228e8902aeb91011a53bb1a91f7f3390a771e0e

    Cheers
    Timo

    --
    ⢀⣴⠾⠻⢶⣦⠀ ╭────────────────────────────────────────────────────╮
    ⣾⠁⢠⠒⠀⣿⡁ │ Timo Röhling │
    ⢿⡄⠘⠷⠚⠋⠀ │ 9B03 EBB9 8300 DF97 C2B1 23BF CC8C 6BDD 1403 F4CA │
    ⠈⠳⣄⠀⠀⠀⠀ ╰────────────────────────────────────────────────────╯

    -----BEGIN PGP SIGNATURE-----

    iQGzBAABCgAdFiEEJvtDgpxjkjCIVtam+C8H+466LVkFAmJlt+8ACgkQ+C8H+466 LVmAqAv/dDzBlr3YC49FlJbjauztTyNBSw9wveobU5wloxTDtdsTYTWI5h8lEpmU y/gvI3YqVhsp5/Uye+61VBRtCgEApeeO8PJUsSbzS4xo3mK4kit7koi3Kj/HaA2p Ue0cjEzBLWjzAdpbCrQJAPX6cky4lQYBxTqTafMu1vlNuSoVuezVRCRsgD9VzoC5 kdUsOaVqlQgNoAv2TrQneC93RMQiLdqkEaVJuLycgImzh0Wv7smEQGGdEmz8/Qqd KxP5ggyiTEp8baNGzHfmHdQ7Kn0TY8W6btjPLEu5eOPa3m4Nvdcp0+FJoJB4tRqg oHZ6r5HCvMIG+mTl8gG5GSBvMgUZUWGK9z8JGAs591Z
  • From Julian Gilbey@21:1/5 to Geert Stappers on Sun Apr 24 22:50:01 2022
    On Sun, Apr 24, 2022 at 10:09:21PM +0200, Geert Stappers wrote:
    On Sun, Apr 24, 2022 at 09:01:02PM +0100, Julian Gilbey wrote:
    Hi,

    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,

    I'm not OK with rewriting history.

    or do you have an alternative suggestion?

    Accept the failure, learn from it, move on, make new mistakes, learn from them.

    In other words: Do not spend energy on erasing a mistake^Wlearing expirience.

    I do understand this, but now someone cloning the repository and
    running "gbp buildpackage" won't be able to do so.

    I realise there is a much more minor change that would fix things:
    just delete the upstream/5.3.0 tag, create the upstream/5.3.0
    pristine-tar and upstream branch contents manually, make a commit with
    those and recreate the upstream/5.3.0 tag to point to those.

    Would that be acceptable?

    Best wishes,

    Julian

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Julian Gilbey@21:1/5 to All on Sun Apr 24 23:30:01 2022
    On Sun, Apr 24, 2022 at 10:49:55PM +0200, Timo Rhling wrote:
    * Timo Rhling <roehling@debian.org> [2022-04-24 22:42]:
    Make sure that your local upstream branch and the upstream/5.3.0 tag
    both point at commit 08935221b549bf32157d739cd54eb1645a2ab123:
    Aaaand I copied the wrong commit hash to the email. :/ e228e8902aeb91011a53bb1a91f7f3390a771e0e is the one you should be
    looking for:

    https://salsa.debian.org/python-team/packages/python-qtconsole/-/commit/e228e8902aeb91011a53bb1a91f7f3390a771e0e

    Ah, I understand now! This commit is actually the upstream sources!
    I hadn't realised exactly what gbp does. I'll have a go at following
    your instructions in your last email tomorrow.

    Thanks,

    Julian

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Julian Gilbey@21:1/5 to All on Sun Apr 24 23:20:02 2022
    On Sun, Apr 24, 2022 at 10:49:55PM +0200, Timo Rhling wrote:
    * Timo Rhling <roehling@debian.org> [2022-04-24 22:42]:
    Make sure that your local upstream branch and the upstream/5.3.0 tag
    both point at commit 08935221b549bf32157d739cd54eb1645a2ab123:
    Aaaand I copied the wrong commit hash to the email. :/ e228e8902aeb91011a53bb1a91f7f3390a771e0e is the one you should be
    looking for:

    https://salsa.debian.org/python-team/packages/python-qtconsole/-/commit/e228e8902aeb91011a53bb1a91f7f3390a771e0e

    Indeed, that was the commit made by gbp import-orig. But the upstream
    and pristine-tar branches don't include that commit, unfortunately,
    because of my mistake. Therefore gbp buildpackage doesn't work,
    because it can't find the original sources on the upstream branch.

    Best wishes,

    Julian

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Geert Stappers@21:1/5 to Julian Gilbey on Mon Apr 25 08:20:01 2022
    On Sun, Apr 24, 2022 at 09:40:53PM +0100, Julian Gilbey wrote:
    On Sun, Apr 24, 2022 at 10:09:21PM +0200, Geert Stappers wrote:
    On Sun, Apr 24, 2022 at 09:01:02PM +0100, Julian Gilbey wrote:
    Hi,

    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,

    I'm not OK with rewriting history.

    or do you have an alternative suggestion?

    Accept the failure, learn from it, move on, make new mistakes, learn from them.

    In other words: Do not spend energy on erasing a mistake^Wlearing expirience.

    I do understand this, but now someone cloning the repository and
    running "gbp buildpackage" won't be able to do so.

    I realise there is a much more minor change that would fix things:
    just delete the upstream/5.3.0 tag, create the upstream/5.3.0
    pristine-tar and upstream branch contents manually, make a commit with
    those and recreate the upstream/5.3.0 tag to point to those.

    Would that be acceptable?

    If upstream has a 5.3.1 go for 5.3.1 in Debian.
    If an upstream 5.3.1 will take weeks, go for 5.3.01


    Groeten
    Geert Stappers
    --
    Silence is hard to parse

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Julian Gilbey@21:1/5 to All on Tue Apr 26 12:10:01 2022
    Hi Timo (and Geert),

    On Sun, Apr 24, 2022 at 10:42:51PM +0200, Timo Rhling 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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Timo =?utf-8?Q?R=C3=B6hling?=@21:1/5 to pull". I lost count how often I on Tue Apr 26 14:00:01 2022
    Hi Julian,

    * Julian Gilbey <julian@d-and-j.net> [2022-04-26 11:03]:
    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.
    It's an easy mistake to write "git pull" if you meant to do "gbp
    pull". I lost count how often I wrote "git pq" by accident...

    To fix the problem, I did:

    $ git checkout upstream
    $ git reset --hard upstream/5.3.0
    Judging from the current commit graph, you probably threw in a
    "git merge -s ours origin/upstream" here as well?
    $ git checkout master
    $ gbp pristine-tar commit

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

    I hope I don't make this mistake again!
    Don't worry about it too much. Git is quite resilient, and as long
    as you do not panic and start force-pushing random stuff, everything
    can be repaired.


    Cheers
    Timo

    --
    ⢀⣴⠾⠻⢶⣦⠀ ╭────────────────────────────────────────────────────╮
    ⣾⠁⢠⠒⠀⣿⡁ │ Timo Röhling │
    ⢿⡄⠘⠷⠚⠋⠀ │ 9B03 EBB9 8300 DF97 C2B1 23BF CC8C 6BDD 1403 F4CA │
    ⠈⠳⣄⠀⠀⠀⠀ ╰────────────────────────────────────────────────────╯

    -----BEGIN PGP SIGNATURE-----

    iQGzBAABCgAdFiEEJvtDgpxjkjCIVtam+C8H+466LVkFAmJn3Z4ACgkQ+C8H+466 LVkm8Av/ctLSShEcJ44B15mpRFLVSzXoasI+y8nnDqNcBKCQrF3SvYUE86xEo12t Z1RIJFj8U9FTUsY/il0nIstmqT+hscsaUuI5F9DKmFgkQhxYsaX+ffvm3pkojWdQ +mfjzU2IxSLM4xGVUc/9SMUteR0V0MQuC7rdDcUVUCcHMvSCxD0JcRjRKZ4+QZIV IuOGqwYChOAcc1h3fRoGDpg2JFTb8rnOogEqVK15Ds9r17I/C7Nu/eBf/TaWaQu2 Nlj7/MLByGrUBkTSY8vDzL1GvPP75WJs2A+Hh37IUaI0IYcNM665dWmg5cj45Urf wfOqGqgKe75AEljjMMbPIVsWAagczPWPKM+QsgD9/XQ
  • From Julian Gilbey@21:1/5 to All on Tue Apr 26 14:40:01 2022
    Hi Timo,

    On Tue, Apr 26, 2022 at 01:55:13PM +0200, Timo Rhling wrote:
    Hi Julian,

    * Julian Gilbey <julian@d-and-j.net> [2022-04-26 11:03]:
    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.
    It's an easy mistake to write "git pull" if you meant to do "gbp
    pull". I lost count how often I wrote "git pq" by accident...

    Ah, I didn't know about gbp pull/push! I'm definitely going to use
    those in future (and repeatedly make that same typing mistake!).

    To fix the problem, I did:

    $ git checkout upstream
    $ git reset --hard upstream/5.3.0
    Judging from the current commit graph, you probably threw in a
    "git merge -s ours origin/upstream" here as well?

    Yeah :-( Well, sort of. I did the git reset, then git push --all and
    got an error because I hadn't done a pull on this branch :-( So then I
    did a git pull on this branch followed by resolving the conflicts....

    $ git checkout master
    $ gbp pristine-tar commit

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

    I hope I don't make this mistake again!
    Don't worry about it too much. Git is quite resilient, and as long
    as you do not panic and start force-pushing random stuff, everything
    can be repaired.

    I'm not too worried, just that it took far more effort than it would
    have done if I'd done things right to begin with!

    Best wishes,

    Julian

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)