[PATCH 5 of 5 topic-experiment] topics: add an extrafield "topic_change_source "to prevent hash cycle
Pulkit Goyal
7895pulkit at gmail.com
Tue Jun 20 22:09:26 EDT 2017
# HG changeset patch
# User Pulkit Goyal <7895pulkit at gmail.com>
# Date 1498010531 -19800
# Wed Jun 21 07:32:11 2017 +0530
# Node ID 675753af7aa6855a183c674fab69f00400f35813
# Parent fd9e563f9e2b12615231839c847f42a98b5581fd
topics: add an extrafield "topic_change_source "to prevent hash cycle
If we have a changeset with topic `x`, we change it's topic to `y`, fine.
When we change it's topic back again to `x`, we get the hash of the the
obsoleted changeset which had the topic `x` initially. The same happens for few
more cases like clearing the topic of a changeset which initially had no topic.
This approach is influenced from cmdutil.amend.
diff --git a/hgext3rd/topic/__init__.py b/hgext3rd/topic/__init__.py
--- a/hgext3rd/topic/__init__.py
+++ b/hgext3rd/topic/__init__.py
@@ -329,6 +329,7 @@
del fixedextra[constants.extrakey]
else:
fixedextra[constants.extrakey] = newtopic
+ fixedextra[constants.changekey] = c.hex()
if 'amend_source' in fixedextra:
# TODO: right now the commitctx wrapper in
# topicrepo overwrites the topic in extra if
diff --git a/hgext3rd/topic/constants.py b/hgext3rd/topic/constants.py
--- a/hgext3rd/topic/constants.py
+++ b/hgext3rd/topic/constants.py
@@ -1,1 +1,2 @@
extrakey = 'topic'
+changekey = 'topic_change_source'
diff --git a/tests/test-topic.t b/tests/test-topic.t
--- a/tests/test-topic.t
+++ b/tests/test-topic.t
@@ -556,7 +556,7 @@
changed topic on 1 changes
please run hg evolve --rev "not topic()" now
$ hg log -Gr 'draft() and not obsolete()'
- o changeset: 11:783930e1d79e
+ o changeset: 11:441b61d558fc
| tag: tip
| parent: 3:a53952faf762
| user: test
@@ -581,7 +581,7 @@
changed topic on 1 changes
please run hg evolve --rev "topic(wat)" now
$ hg log -Gr 'draft() and not obsolete()'
- o changeset: 13:d91cd8fd490e
+ o changeset: 13:174bd31a8f4c
| tag: tip
| topic: wat
| parent: 3:a53952faf762
@@ -589,7 +589,7 @@
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: start on fran
|
- | @ changeset: 12:d9e32f4c4806
+ | @ changeset: 12:3e5965b66515
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | trouble: unstable
@@ -600,17 +600,17 @@
bonus deps in the testsuite.
$ hg rebase -d tip -s .
- rebasing 12:d9e32f4c4806 "fran?"
+ rebasing 12:3e5965b66515 "fran?"
$ hg log -Gr 'draft()'
- @ changeset: 14:cf24ad8bbef5
+ @ changeset: 14:d1f7e958b66c
| tag: tip
| topic: wat
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: fran?
|
- o changeset: 13:d91cd8fd490e
+ o changeset: 13:174bd31a8f4c
| topic: wat
| parent: 3:a53952faf762
| user: test
@@ -623,15 +623,15 @@
$ hg topic watwat
$ hg ci --amend
$ hg log -Gr 'draft()'
- @ changeset: 16:893ffcf66c1f
+ @ changeset: 16:3b23f609880b
| tag: tip
| topic: watwat
- | parent: 13:d91cd8fd490e
+ | parent: 13:174bd31a8f4c
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: fran?
|
- o changeset: 13:d91cd8fd490e
+ o changeset: 13:174bd31a8f4c
| topic: wat
| parent: 3:a53952faf762
| user: test
@@ -644,9 +644,9 @@
$ hg topic --clear
$ hg ci --amend
$ hg log -r .
- changeset: 18:a13639e22b65
+ changeset: 18:44d7f9376d6a
tag: tip
- parent: 13:d91cd8fd490e
+ parent: 13:174bd31a8f4c
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: fran?
@@ -659,15 +659,15 @@
$ hg co 19
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg log -Gr 'draft()'
- @ changeset: 19:b72b86a1f96b
+ @ changeset: 19:4ea5df7d3ff8
| tag: tip
| topic: watwat
- | parent: 13:d91cd8fd490e
+ | parent: 13:174bd31a8f4c
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: fran?
|
- o changeset: 13:d91cd8fd490e
+ o changeset: 13:174bd31a8f4c
| topic: wat
| parent: 3:a53952faf762
| user: test
@@ -679,28 +679,28 @@
changed topic on 2 changes
please run hg evolve --rev "topic(changewat)" now
$ hg log -Gr 'draft()'
- o changeset: 21:58e15a6365ca
+ o changeset: 21:6e2eb1738e3f
| tag: tip
| topic: changewat
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: fran?
|
- o changeset: 20:a96ac830b62e
+ o changeset: 20:f0ac69c44c45
| topic: changewat
| parent: 3:a53952faf762
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: start on fran
|
- | @ changeset: 19:b72b86a1f96b
+ | @ changeset: 19:4ea5df7d3ff8
| | topic: watwat
- | | parent: 13:d91cd8fd490e
+ | | parent: 13:174bd31a8f4c
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: fran?
| |
- | x changeset: 13:d91cd8fd490e
+ | x changeset: 13:174bd31a8f4c
|/ topic: wat
| parent: 3:a53952faf762
| user: test
More information about the Mercurial-devel
mailing list