[PATCH 6 of 6 OBSOLETE-MARKERS] obsolete: command can now specify `replacing` changeset
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Sat May 12 12:08:54 CDT 2012
# HG changeset patch
# User Pierre-Yves.David at ens-lyon.org
# Date 1336841272 -7200
# Node ID 0b316fb8ffc3732d3fa0fe2f81ce782e05f7dc80
# Parent 09943a88d99a60e597ba7c3828612c7bec43e370
obsolete: command can now specify `replacing` changeset.
A "--new" option is added to the hg obsolete command. This allow to specify
replacement changeset when creating marker.
diff -r 09943a88d99a -r 0b316fb8ffc3 mercurial/commands.py
--- a/mercurial/commands.py Sat May 12 18:39:11 2012 +0200
+++ b/mercurial/commands.py Sat May 12 18:47:52 2012 +0200
@@ -4173,6 +4173,7 @@
@command('obsolete',
[('r', 'rev', [], _('mark given revision as obsolete'), _('REV')),
+ ('N', 'new', [], _('Newer changeset replacing obsoleted one'), _('REV')),
] + commitopts2,
_('[--rev] REV'))
def obsolete(ui, repo, *revs, **opts):
@@ -4183,6 +4184,7 @@
if not revs:
raise util.Abort(_('no revisions specified'))
+ new = scmutil.revrange(repo, opts['new'])
metadata = {}
metadata['date'] = opts['date'] or '%f %i' % util.makedate()
try:
@@ -4195,7 +4197,9 @@
l = repo.lock()
try:
for obs in revs:
- marker = (repo[obs].node(), (), 0, metadata)
+ marker = (repo[obs].node(),
+ tuple(repo[n].node() for n in new),
+ 0, metadata)
repo.obsstore.add(marker)
finally:
l.release()
diff -r 09943a88d99a -r 0b316fb8ffc3 tests/test-debugcomplete.t
--- a/tests/test-debugcomplete.t Sat May 12 18:39:11 2012 +0200
+++ b/tests/test-debugcomplete.t Sat May 12 18:47:52 2012 +0200
@@ -257,7 +257,7 @@
incoming: force, newest-first, bundle, rev, bookmarks, branch, patch, git, limit, no-merges, stat, style, template, ssh, remotecmd, insecure, subrepos
locate: rev, print0, fullpath, include, exclude
manifest: rev, all
- obsolete: rev, date, user
+ obsolete: rev, new, date, user
outgoing: force, rev, newest-first, bookmarks, branch, patch, git, limit, no-merges, stat, style, template, ssh, remotecmd, insecure, subrepos
parents: rev, style, template
paths:
diff -r 09943a88d99a -r 0b316fb8ffc3 tests/test-obsolete.t
--- a/tests/test-obsolete.t Sat May 12 18:39:11 2012 +0200
+++ b/tests/test-obsolete.t Sat May 12 18:47:52 2012 +0200
@@ -40,3 +40,43 @@
add kill_me
+
+ $ cd ..
+
+Killing a single changeset with replacement
+
+ $ hg init tmpb
+ $ cd tmpb
+ $ mkcommit a
+ $ hg phase -p .
+ $ mkcommit b
+ $ mkcommit original_c
+ $ hg up "desc('b')"
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ mkcommit new_c
+ created new head
+ $ hg obsolete -N "desc('new_c')" "desc('original_c')" -d '56 12'
+ $ hg log -r "desc('original_c')"
+ changeset: 2:245bde4270cd
+ obsolete: dead
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: add original_c
+
+ $ hg log --debug -r "desc('original_c')"
+ changeset: 2:245bde4270cd1072a27757984f9cda8ba26f08ca
+ phase: draft
+ parent: 1:7c3bad9141dcb46ff89abf5f61856facd56e476c
+ parent: -1:0000000000000000000000000000000000000000
+ obsolete: dead
+ replaced: Thu Jan 01 00:00:44 1970 -0000 by test
+ by: 3:cdbce2fbb163
+ manifest: 2:1bb50d177b665d9d0c361d682511ba72974ea9e8
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ files+: original_c
+ extra: branch=default
+ description:
+ add original_c
+
+
More information about the Mercurial-devel
mailing list