[PATCH evolve v4] evolve: make split respect rev args passed without --rev or -r
Kostia Balytskyi
ikostia at fb.com
Thu Feb 4 10:48:40 UTC 2016
Please disregard, wrong tag.
On 2/4/16, 10:48 AM, "Mercurial-devel on behalf of Kostia Balytskyi" <mercurial-devel-bounces at mercurial-scm.org on behalf of ikostia at fb.com> wrote:
># HG changeset patch
># User Kostia Balytskyi <ikostia at fb.com>
># Date 1454582800 28800
># Thu Feb 04 02:46:40 2016 -0800
># Node ID 1e11ccaf25c178014d9eb7ba2057244bd4cf83d8
># Parent 983f2e4dbe5d4d97d6ca82f6679913d75c1f2577
>evolve: make split respect rev args passed without --rev or -r
>
>Currently, if one runs `hg split .` or `hg split`, it will fail
>with an exception. This happens becuase we only expect revision
>args to be passed as --rev/-r ones and don't treat unnamed args
>properly or add default values if no args are provided.
>
>diff --git a/hgext/evolve.py b/hgext/evolve.py
>--- a/hgext/evolve.py
>+++ b/hgext/evolve.py
>@@ -2729,16 +2729,13 @@
> tr = wlock = lock = None
> newcommits = []
>
>- revopt = opts.get('rev')
>- if revopt:
>- revs = scmutil.revrange(repo, revopt)
>- if len(revs) != 1:
>- raise error.Abort(_("you can only specify one revision to split"))
>- else:
>- rev = list(revs)[0]
>- else:
>- rev = '.'
>-
>+ revarg = (list(revs) + opts.get('rev')) or ['.']
>+ if len(revarg) != 1:
>+ msg = _("more than one revset is given")
>+ hnt = _("use either `hg split <rs>` or `hg split --rev <rs>`, not both")
>+ raise error.Abort(msg, hint=hnt)
>+
>+ rev = scmutil.revsingle(repo, revarg[0])
> try:
> wlock = repo.wlock()
> lock = repo.lock()
>diff --git a/tests/test-split.t b/tests/test-split.t
>--- a/tests/test-split.t
>+++ b/tests/test-split.t
>@@ -320,9 +320,14 @@
> bookA 19:a2b5c9d9b362
> * bookB 19:a2b5c9d9b362
>
>-Cannot specify multiple revisions with -r
>+Lastest revision is selected if multiple are given to -r
> $ hg split -r "desc(_a)::"
>- abort: you can only specify one revision to split
>+ (leaving bookmark bookB)
>+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
>+ adding _d
>+ diff --git a/_d b/_d
>+ new file mode 100644
>+ examine changes to '_d'? [Ynesfdaq?] abort: response expected
> [255]
>
> Cannot split a commit that is not a head if instability is not allowed
>@@ -335,4 +340,41 @@
> abort: cannot split commit: ced8fbcce3a7 not a head
> [255]
>
>+Changing evolution level to createmarkers
>+ $ echo "[experimental]" >> $HGRCPATH
>+ $ echo "evolution=createmarkers" >> $HGRCPATH
>
>+Running split without any revision operates on the parent of the working copy
>+ $ hg split << EOF
>+ > q
>+ > EOF
>+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
>+ adding _d
>+ diff --git a/_d b/_d
>+ new file mode 100644
>+ examine changes to '_d'? [Ynesfdaq?] q
>+
>+ abort: user quit
>+ [255]
>+
>+Running split with tip revision, specified as unnamed argument
>+ $ hg split . << EOF
>+ > q
>+ > EOF
>+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
>+ adding _d
>+ diff --git a/_d b/_d
>+ new file mode 100644
>+ examine changes to '_d'? [Ynesfdaq?] q
>+
>+ abort: user quit
>+ [255]
>+
>+Running split with both unnamed and named revision arguments shows an error msg
>+ $ hg split . --rev .^ << EOF
>+ > q
>+ > EOF
>+ abort: more than one revset is given
>+ (use either `hg split <rs>` or `hg split --rev <rs>`, not both)
>+ [255]
>+
>_______________________________________________
>Mercurial-devel mailing list
>Mercurial-devel at mercurial-scm.org
>https://urldefense.proofpoint.com/v2/url?u=https-3A__www.mercurial-2Dscm.org_mailman_listinfo_mercurial-2Ddevel&d=CwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=Pp-gQYFgs4tKlSFPF5kfCw&m=zUz3vdDt5hts8X-rXQD7oMrM8v-7YrDl9kZPpNefkvg&s=Toh6lkW1xHTpB1sic8rG0W-4qI0J8Ttw7YRkGzCmESE&e=
More information about the Mercurial-devel
mailing list