runbot/forwardport
Xavier Morel 60188063f8 [FIX] *: ensure I don't get bollocked up again by tags
Today (or really a month ago) I learned: when giving git a symbolic
ref (e.g. a ref name), if it's ambiguous then

1. If `$GIT_DIR/$name` exists, that is what you mean (this is usually
   useful only for `HEAD`, `FETCH_HEAD`, `ORIG_HEAD`, `MERGE_HEAD`,
   `REBASE_HEAD`, `REVERT_HEAD`, `CHERRY_PICK_HEAD`, `BISECT_HEAD` and
   `AUTO_MERGE`)
2. otherwise, `refs/$name` if it exists
3. otherwise, `refs/tags/$name` if it exists
4. otherwise, `refs/heads/$name` if it exists
5. otherwise, `refs/remotes/$name` if it exists
6. otherwise, `refs/remotes/$name/HEAD` if it exists

This means if a tag and a branch have the same name and only the name
is provided (not the full ref), git will select the tag, which gets
very confusing for the mergebot as it now tries to rebase onto the tag
(which because that's not fun otherwise was not even on the branch of
the same name).

Fix by providing full refs to `rev-parse` when trying to retrieve the
head of the target branches. And as a defense in depth opportunity,
also exclude tags when fetching refs by spec: apparently fetching a
specific commit does not trigger the retrieval of tags, but any sort
of spec will see the tags come along for the ride even if the tags are
not in any way under the fetched ref e.g. `refs/heads/*` will very
much retrieve the tags despite them being located at `refs/tags/*`.

Fixes #922
2024-09-06 15:09:08 +02:00
..
changelog [ADD] *: changelog entries I forgot 2023-08-14 09:28:19 +02:00
data [IMP] *: trigger-ify task queue type crons 2024-08-02 15:14:50 +02:00
migrations [CHG] *: rewrite commands set, rework status management 2024-05-23 07:58:46 +02:00
models [FIX] *: ensure I don't get bollocked up again by tags 2024-09-06 15:09:08 +02:00
tests [FIX] *: unnecessary warning on r- of forward port 2024-09-06 13:04:13 +02:00
__init__.py [ADD] mergebot, forwardbot: changelog 2021-10-20 15:16:48 +02:00
__manifest__.py [CHG] *: rewrite commands set, rework status management 2024-05-23 07:58:46 +02:00
controllers.py [FIX] forwardport: count next to users should be the fwport 2024-06-28 08:18:34 +02:00