# HG changeset patch # User Anton Shestakov # Date 1694022342 10800 # Node ID e45bfd1e058888f136fe4fda06acdf75389eaa29 # Parent 445240ccb701eed050dc864df967c2eff1d70cd3 topic: don't write namespace into commit extras if there's no topic Topic namespace is considered a part of topic, but topic is more important than just namespace alone, so it doesn't make a lot of sense to have topic namespace on a commit unless it also has topic. We could simple ignore topic namespace in such cases, but it makes sense to not record it at all. diff -r 445240ccb701 -r e45bfd1e0588 hgext3rd/topic/__init__.py --- a/hgext3rd/topic/__init__.py Thu Jul 27 16:39:43 2023 -0300 +++ b/hgext3rd/topic/__init__.py Wed Sep 06 14:45:42 2023 -0300 @@ -954,6 +954,10 @@ if constants.extrakey in extra and not extra[constants.extrakey]: extra = extra.copy() del extra[constants.extrakey] + if constants.extrakey not in extra and b'topic-namespace' in extra: + # if topic is not in extra, drop namespace as well + extra = extra.copy() + del extra[b'topic-namespace'] # hg <= 4.9 (0e41f40b01cc) kwargs = {} if p1copies is not None: diff -r 445240ccb701 -r e45bfd1e0588 tests/test-namespaces-report.t --- a/tests/test-namespaces-report.t Thu Jul 27 16:39:43 2023 -0300 +++ b/tests/test-namespaces-report.t Wed Sep 06 14:45:42 2023 -0300 @@ -40,11 +40,11 @@ $ echo banana > b $ hg debug-topic-namespace bob marked working directory as topic namespace: bob + $ hg topic b + marked working directory as topic: b $ hg ci -qAm 'banana' -XXX: should not require --new-branch - - $ hg push ../case-1 --new-branch + $ hg push ../case-1 pushing to ../case-1 searching for changes adding changesets @@ -67,9 +67,7 @@ $ hg debug-topic-namespace bruce $ hg ci --amend -m 'broccoli' -XXX: should not require --new-branch - - $ hg push ../case-2 --new-branch + $ hg push ../case-2 pushing to ../case-2 searching for changes adding changesets @@ -96,6 +94,7 @@ $ cd orig $ hg debug-topic-namespace charlie + $ hg topic c $ echo coconut > c $ hg ci -qAm 'coconut' @@ -107,14 +106,12 @@ 1 new phase-divergent changesets $ hg evolve --phase-divergent - recreate:[4] cloudberry + recreate:[s1] cloudberry atop:[3] coconut - committed as c398b3caf447 - working directory is now at c398b3caf447 + committed as 9f1abc6f4a6f + working directory is now at 9f1abc6f4a6f -XXX: should not require --new-branch - - $ hg push ../case-3 --new-branch + $ hg push ../case-3 pushing to ../case-3 searching for changes adding changesets @@ -139,6 +136,8 @@ searching for changes no changes found topic namespaces affected: carol + active topic 'c' is now empty + (use 'hg topic --clear' to clear it if needed) [1] $ cd .. @@ -153,12 +152,11 @@ $ cd orig $ hg debug-topic-namespace dana + $ hg topic d $ echo durian > d $ hg ci -qAm 'durian' -XXX: should not require --new-branch - - $ hg push ../case-5 --new-branch + $ hg push ../case-5 pushing to ../case-5 searching for changes adding changesets @@ -171,9 +169,7 @@ $ echo dragonfruit > d $ hg ci --amend -m 'dragonfruit' -XXX: should not require --new-branch - - $ hg push ../case-5 --new-branch + $ hg push ../case-5 pushing to ../case-5 searching for changes adding changesets @@ -185,8 +181,8 @@ obsoleted 1 changesets $ hg bookmark --hidden -r 'desc("durian")' @ - bookmarking hidden changeset ac97707e6b4a - (hidden revision 'ac97707e6b4a' was rewritten as: 822ac0064503) + bookmarking hidden changeset c56d89b2348b + (hidden revision 'c56d89b2348b' was rewritten as: 7fc662c4767d) $ hg push ../case-5 -B @ pushing to ../case-5 @@ -208,17 +204,24 @@ $ hg clone orig case-6 -q $ cd orig +XXX: we see "active topic is now empty" twice because stack doesn't handle topic namespaces yet + $ hg push ../case-6 -r . --publish pushing to ../case-6 searching for changes no changes found topic namespaces affected: dave + active topic 'd' is now empty + active topic 'd' is now empty + (use 'hg topic --clear' to clear it if needed) [1] previous topic namespace is resurrected... $ hg phase --secret --force -r . --config 'devel.tns-report-transactions=phase' topic namespaces affected: dave + active topic 'd' grew its first changeset + (see 'hg help topics' for more information) ...just to disappear again @@ -227,6 +230,8 @@ searching for changes no changes found topic namespaces affected: dave + active topic 'd' is now empty + (use 'hg topic --clear' to clear it if needed) [1] $ cd .. @@ -240,11 +245,13 @@ $ cd orig $ hg phase --draft --force -r tip + active topic 'd' grew its first changeset + (see 'hg help topics' for more information) $ hg phase --secret --force -r tip -R ../case-7 + active topic 'd' grew its first changeset + (see 'hg help topics' for more information) -XXX: should not require --new-branch - - $ hg push ../case-7 -r . --config 'devel.tns-report-transactions=*' --new-branch + $ hg push ../case-7 -r . --config 'devel.tns-report-transactions=*' pushing to ../case-7 searching for changes adding changesets @@ -252,6 +259,8 @@ adding file changes topic namespaces affected: dave added 0 changesets with 0 changes to 1 files + active topic 'd' grew its first changeset + (see 'hg help topics' for more information) $ cd ..