heptapod lacks several improvements when working with stacked topics
Summary
When stacking topics for various reason when doing multiple parallels topic aren't possible, heptapod's UI lacks lacks several improvements:
- url displayed on "hg push" always point to the base branch, not to the directly previous topic
- when create a MR on the web UI, the base branch is also always suggested instead of the next topic, thus creating a MR with a huge diff where it should only be the targeted commits
- when merging a MR, its topic is deleted by default, thus, if another MR was targeting this topic it will now be broken
Steps to reproduce
Go on a project, then:
- hg commit -m "a"
- hg topic -r tip "a"
- hg commit -m "b"
- hg topic -r tip "b"
- hg push
"hg log" will look like this:
@ 19 9ad89ae3d882 draft (branch: default) (topic: b) "b"
|
o 17 adbffc757607 draft (branch: default) (topic: a) "a"
|
o 14 aecf2a0e138a public (branch: default) "old commit message"
|
You will have this kind of message in cli:
pushing to https://my.heptapod.tld/orga/project
searching for changes
OBSEXC: computing relevant nodes
OBSEXC: looking for common markers in 14 nodes
OBSEXC: computing markers relevant to 2 nodes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 2 changesets with 2 changes to 1 files
remote: 3 new obsolescence markers
remote: To create a merge request for topic/default/a, visit:
remote: https://my.heptapod.tld/orga/project/-/merge_requests/new?merge_request%5Bsource_branch%5D=topic%2Fdefault%2Fa&merge_request%5Btarget_branch%5D=branch%2Fdefault
remote: To create a merge request for topic/default/b, visit:
remote: https://my.heptapod.tld/orga/project/-/merge_requests/new?merge_request%5Bsource_branch%5D=topic%2Fdefault%2Fb&merge_request%5Btarget_branch%5D=branch%2Fdefault
Also try to create a MR.
What is the current bug behavior? What is the expected correct behavior?
The url to create a MR for topic "b" is:
remote: To create a merge request for topic/default/b, visit:
remote: https://my.heptapod.tld/orga/project/-/merge_requests/new?merge_request%5Bsource_branch%5D=topic%2Fdefault%2Fb&merge_request%5Btarget_branch%5D=branch%2Fdefault
It should be:
remote: To create a merge request for topic/default/b, visit:
remote: https://my.heptapod.tld/orga/project/-/merge_requests/new?merge_request%5Bsource_branch%5D=topic%2Fdefault%2Fb&merge_request%5Btarget_branch%5D=topic%2Fdefault%2a
Same, when creating a MR from the web UI, the default targeted branch for topic/default/b should be topic/default/a and not branch/default
Also, if the MR for topic/default/b is correctly pointing to topic/default/a and topic/default/a also have a MR, merging topic/default/a MR will delete it topic and breaks topic/default/b becaust its targeted branch doesn't exist anymore, it should have automatically be changed to branch/default
Those little frictions are making it hard for us to move to a full web ui based usage of heptapod for MRs handling instead of doing it in cli but, nevertheless, heptapod is already great and has been a great improvement for us at logilab, thx a lot :)