[PATCH 2 of 8 phases] mq: have mq create secret changeset only
Matt Mackall
mpm at selenic.com
Tue Jan 17 15:33:52 CST 2012
On Tue, 2012-01-17 at 18:35 +0100, pierre-yves.david at logilab.fr wrote:
> # HG changeset patch
> # User Pierre-Yves David <pierre-yves.david at ens-lyon.org>
> # Date 1326767583 -3600
> # Node ID 56ce840b148b8eaef0b8e6a58f26c9e70dff4e13
> # Parent bea078f4023a0d0e2483ed2c6f87b52cb10f4822
> mq: have mq create secret changeset only
This looks like it wants a helper function.
> diff --git a/hgext/mq.py b/hgext/mq.py
> --- a/hgext/mq.py
> +++ b/hgext/mq.py
> @@ -44,11 +44,11 @@ create other, independent patch queues w
>
> from mercurial.i18n import _
> from mercurial.node import bin, hex, short, nullid, nullrev
> from mercurial.lock import release
> from mercurial import commands, cmdutil, hg, scmutil, util, revset
> -from mercurial import repair, extensions, url, error
> +from mercurial import repair, extensions, url, error, phases
> from mercurial import patch as patchmod
> import os, re, errno, shutil
>
> commands.norepo += " qclone"
>
> @@ -551,11 +551,19 @@ class queue(object):
>
> ctx = repo[rev]
> ret = hg.merge(repo, rev)
> if ret:
> raise util.Abort(_("update returned %d") % ret)
> - n = repo.commit(ctx.description(), ctx.user(), force=True)
> +
> + bckdata = repo.ui.backupconfig('phases', 'new-commit')
> + try:
> + # ensure we won't create a secret changeset
> + repo.ui.setconfig('phases', 'new-commit', phases.secret)
> + n = repo.commit(ctx.description(), ctx.user(), force=True)
> + finally:
> + repo.ui.restoreconfig(bckdata)
> +
> if n is None:
> raise util.Abort(_("repo commit failed"))
> try:
> ph = patchheader(mergeq.join(patch), self.plainmode)
> except:
> @@ -721,11 +729,18 @@ class queue(object):
> repo.dirstate.merge(f)
> p1, p2 = repo.dirstate.parents()
> repo.dirstate.setparents(p1, merge)
>
> match = scmutil.matchfiles(repo, files or [])
> - n = repo.commit(message, ph.user, ph.date, match=match, force=True)
> + bckdata = repo.ui.backupconfig('phases', 'new-commit')
> + try:
> + # ensure we won't create a secret changeset
> + repo.ui.setconfig('phases', 'new-commit', phases.secret)
> + n = repo.commit(message, ph.user, ph.date, match=match,
> + force=True)
> + finally:
> + repo.ui.restoreconfig(bckdata)
>
> if n is None:
> raise util.Abort(_("repository commit failed"))
>
> if update_status:
> @@ -950,11 +965,18 @@ class queue(object):
> if date:
> p.write("# Date %s %s\n\n" % date)
> if util.safehasattr(msg, '__call__'):
> msg = msg()
> commitmsg = msg and msg or ("[mq]: %s" % patchfn)
> - n = repo.commit(commitmsg, user, date, match=match, force=True)
> + bckdata = repo.ui.backupconfig('phases', 'new-commit')
> + try:
> + # ensure we won't create a secret changeset
> + repo.ui.setconfig('phases', 'new-commit', phases.secret)
> + n = repo.commit(commitmsg, user, date, match=match,
> + force=True)
> + finally:
> + repo.ui.restoreconfig(bckdata)
> if n is None:
> raise util.Abort(_("repo commit failed"))
> try:
> self.fullseries[insert:insert] = [patchfn]
> self.applied.append(statusentry(n, patchfn))
> @@ -1492,12 +1514,18 @@ class queue(object):
> repo.dirstate.invalidate()
> raise
>
> try:
> # might be nice to attempt to roll back strip after this
> - n = repo.commit(message, user, ph.date, match=match,
> - force=True)
> + bckdata = repo.ui.backupconfig('phases', 'new-commit')
> + try:
> + # ensure we won't create a secret changeset
> + repo.ui.setconfig('phases', 'new-commit', phases.secret)
> + n = repo.commit(message, user, ph.date, match=match,
> + force=True)
> + finally:
> + repo.ui.restoreconfig(bckdata)
> # only write patch after a successful commit
> patchf.close()
> self.applied.append(statusentry(n, patchfn))
> except:
> ctx = repo[cparents[0]]
> diff --git a/tests/test-mq.t b/tests/test-mq.t
> --- a/tests/test-mq.t
> +++ b/tests/test-mq.t
> @@ -146,12 +146,16 @@ qinit -c should create both files if the
> $ hg init e
> $ cd e
> $ hg qnew A
> $ checkundo qnew
> $ echo foo > foo
> + $ hg phase -r qbase
> + 0: secret
> $ hg add foo
> $ hg qrefresh
> + $ hg phase -r qbase
> + 0: secret
> $ hg qnew B
> $ echo >> foo
> $ hg qrefresh
> $ echo status >> .hg/patches/.hgignore
> $ echo bleh >> .hg/patches/.hgignore
> @@ -295,10 +299,12 @@ Dump the tag cache to ensure that it has
> 1 [\da-f]{40} (re)
>
> $ hg qpush
> applying test.patch
> now at: test.patch
> + $ hg phase -r qbase
> + 2: secret
> $ hg tags > /dev/null
>
> .hg/cache/tags (post qpush):
>
> $ cat .hg/cache/tags
--
Mathematics is the supreme nostalgia of our time.
More information about the Mercurial-devel
mailing list