[PATCH] convert: handle empty intial commits while converting to svn

Augie Fackler raf at durin42.com
Fri Feb 8 13:51:43 EST 2019


queued, thanks

> On Feb 7, 2019, at 13:18, Nikita Slyusarev <nslus at yandex-team.com> wrote:
> 
> # HG changeset patch
> # User Nikita Slyusarev <nslus at yandex-team.com>
> # Date 1549555074 -10800
> #      Thu Feb 07 18:57:54 2019 +0300
> # Node ID bde6d4eed3104a49c9d4558907d1af4af8718ba1
> # Parent  67e622ade4155d89270ec7ce6928f5645317a5c1
> convert: handle empty intial commits while converting to svn
> 
> Svn commit generation code skips empty commits, returning the parent.
> Skipping the root commit must return None instead.
> 
> Added test to check skipping of empty commits.
> 
> diff --git a/hgext/convert/subversion.py b/hgext/convert/subversion.py
> --- a/hgext/convert/subversion.py
> +++ b/hgext/convert/subversion.py
> @@ -1324,8 +1324,8 @@
>             try:
>                 rev = self.commit_re.search(output).group(1)
>             except AttributeError:
> -                if parents and not files:
> -                    return parents[0]
> +                if not files:
> +                    return parents[0] if parents else None
>                 self.ui.warn(_('unexpected svn output:\n'))
>                 self.ui.warn(output)
>                 raise error.Abort(_('unable to cope with svn output'))
> diff --git a/tests/test-convert-svn-sink.t b/tests/test-convert-svn-sink.t
> --- a/tests/test-convert-svn-sink.t
> +++ b/tests/test-convert-svn-sink.t
> @@ -466,3 +466,46 @@
>   msg: Add file a
>    A /a
>   $ rm -rf a a-hg a-hg-wc
> +
> +Skipping empty commits
> +
> +  $ hg init a
> +
> +  $ hg --cwd a --config ui.allowemptycommit=True ci -d '1 0' -m 'Initial empty commit'
> +
> +  $ echo a > a/a
> +  $ hg --cwd a ci -d '0 0' -A -m 'Some change'
> +  adding a
> +  $ hg --cwd a --config ui.allowemptycommit=True ci -d '2 0' -m 'Empty commit 1'
> +  $ hg --cwd a --config ui.allowemptycommit=True ci -d '3 0' -m 'Empty commit 2'
> +  $ echo b > a/b
> +  $ hg --cwd a ci -d '0 0' -A -m 'Another change'
> +  adding b
> +
> +  $ hg convert -d svn a
> +  assuming destination a-hg
> +  initializing svn repository 'a-hg'
> +  initializing svn working copy 'a-hg-wc'
> +  scanning source...
> +  sorting...
> +  converting...
> +  4 Initial empty commit
> +  3 Some change
> +  2 Empty commit 1
> +  1 Empty commit 2
> +  0 Another change
> +
> +  $ svnupanddisplay a-hg-wc 0
> +   2 1 test a
> +   2 2 test .
> +   2 2 test b
> +  revision: 2
> +  author: test
> +  msg: Another change
> +   A /b
> +  revision: 1
> +  author: test
> +  msg: Some change
> +   A /a
> +
> +  $ rm -rf a a-hg a-hg-wc
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel



More information about the Mercurial-devel mailing list