Read about our upcoming Code of Conduct on this issue

This instance will be upgraded to Heptapod 0.28.1 on 2022-01-26 at 16:00 UTC+1 (a few minutes of down time)

Commit 29628ca6 authored by Manuel Jacob's avatar Manuel Jacob
Browse files

absorb: make it explicit if empty changeset was created

If the config rewrite.empty-successor=skip is set, a message "became empty and
was dropped" is shown if the changeset became empty. If the config
rewrite.empty-successor=keep is set, absorb may create changesets even if they
became empty. It’s probably a good idea to make that explicit. Therefore the
message is changed to be a combination of both: "became empty and became ...".

Repeating the word "became" is not very elegant. This results from the fact
that "became" was and is overloaded to indicate both the change from non-empty
to empty and the successor relation. In the combinated message, both meanings
are used in one sentence.
parent 3ee8e2d5c0d8
Pipeline #7956 failed with stage
in 26 minutes
......@@ -783,11 +783,10 @@ class fixupstate(object):
# nothing changed, nothing commited
nextp1 = ctx
continue
if (
self.skip_empty_successor
and ctx.files()
and self._willbecomenoop(memworkingcopy, ctx, nextp1)
):
willbecomenoop = ctx.files() and self._willbecomenoop(
memworkingcopy, ctx, nextp1
)
if self.skip_empty_successor and willbecomenoop:
# changeset is no longer necessary
self.replacemap[ctx.node()] = None
msg = _(b'became empty and was dropped')
......@@ -798,7 +797,14 @@ class fixupstate(object):
nextp1 = lastcommitted
self.replacemap[ctx.node()] = lastcommitted.node()
if memworkingcopy:
msg = _(b'%d file(s) changed, became %s') % (
if willbecomenoop:
msg = _(
b'%d file(s) changed, became empty '
b'and became %s'
)
else:
msg = _(b'%d file(s) changed, became %s')
msg = msg % (
len(memworkingcopy),
self._ctx2str(lastcommitted),
)
......
......@@ -509,6 +509,7 @@ Setting config rewrite.empty-successor=keep causes empty changesets to get commi
$ hg commit -m b3
$ echo 4 >> b
$ hg commit -m b4
$ hg commit -m empty --config ui.allowemptycommit=True
$ echo 1 > b
$ echo 3 >> a
$ hg absorb -pn
......@@ -527,16 +528,19 @@ Setting config rewrite.empty-successor=keep causes empty changesets to get commi
1154859 b12
bfafb49 a12
$ hg absorb -av --config rewrite.empty-successor=keep | grep became
0:bfafb49242db: 1 file(s) changed, became 4:1a2de97fc652
1:115485984805: 2 file(s) changed, became 5:0c930dfab74c
2:30970dbf7b40: 2 file(s) changed, became 6:df6574ae635c
3:a393a58b9a85: 2 file(s) changed, became 7:ad4bd3462c9e
0:bfafb49242db: 1 file(s) changed, became 5:1a2de97fc652
1:115485984805: 2 file(s) changed, became 6:0c930dfab74c
2:30970dbf7b40: 2 file(s) changed, became empty and became 7:df6574ae635c
3:a393a58b9a85: 2 file(s) changed, became empty and became 8:ad4bd3462c9e
4:1bb0e8cff87a: 2 file(s) changed, became 9:2dbed75af996
$ hg log -T '{rev} {desc}\n' -Gp
@ 7 b4
@ 9 empty
|
o 6 b3
o 8 b4
|
o 5 b12
o 7 b3
|
o 6 b12
| diff --git a/b b/b
| new file mode 100644
| --- /dev/null
......@@ -544,7 +548,7 @@ Setting config rewrite.empty-successor=keep causes empty changesets to get commi
| @@ -0,0 +1,1 @@
| +1
|
o 4 a12
o 5 a12
diff --git a/a b/a
new file mode 100644
--- /dev/null
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment