Re: [PATCH] remote-hg: do not fail on invalid bookmarks
- From
Antoine Pelisse <apelisse@gmail.com>
- Date
- Jan 6, 2014, 21:51 UTC
- Message-ID
- <CALWbr2zC-Q8YduW9b1feThBtz38Tsk7D1BoCRd7KxnCuht27PQ@mail.gmail.com>
- In-Reply-To
- <52CAB508.5010002@web.de>
Thanks for noticing, I can reproduce at work, I will try to come-up with an improved version soon,
Cheers, Antoine
On Mon, Jan 6, 2014 at 2:52 PM, Torsten Bögershausen <tboegi@web.de> wrote:
Show 46 quoted lines
> On 2013-12-29 12.30, Antoine Pelisse wrote:
>> Mercurial can have bookmarks pointing to "nullid" (the empty root
>> revision), while Git can not have references to it.
>> When cloning or fetching from a Mercurial repository that has such a
>> bookmark, the import will fail because git-remote-hg will not be able to
>> create the corresponding reference.
>>
>> Warn the user about the invalid reference, and continue the import,
>> instead of stopping right away.
>>
>> Signed-off-by: Antoine Pelisse <apelisse@gmail.com>
>> ---
>> contrib/remote-helpers/git-remote-hg | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg
>> index eb89ef6..12d850e 100755
>> --- a/contrib/remote-helpers/git-remote-hg
>> +++ b/contrib/remote-helpers/git-remote-hg
>> @@ -625,6 +625,9 @@ def list_head(repo, cur):
>> def do_list(parser):
>> repo = parser.repo
>> for bmark, node in bookmarks.listbookmarks(repo).iteritems():
>> + if node == '0000000000000000000000000000000000000000':
>> + warn("Ignoring invalid bookmark '%s'", bmark)
>> + continue
>> bmarks[bmark] = repo[node]
>>
>> cur = repo.dirstate.branch()
>>
> (Side note: ap/remote-hg-skip-null-bookmarks)
>
> When I run the test-suite like this:
> ~/projects/git/git.pu/contrib/remote-helpers$ debug=t verbose=t make test-hg-hg-git.sh
>
> All 11 test cases fail on my systems (Debian Wheezy and Mac OS X):
> [snip]
> WARNING: Ignoring invalid bookmark 'master'
> To hg::../hgrepo-git
> ! [remote rejected] master -> master
> error: failed to push some refs to 'hg::../hgrepo-git'
> not ok 1 - executable bit
> #
> [snip]
>
>