[issue1982] svn subrepo has errnoneous status parsing

Gomez bugs at mercurial.selenic.com
Mon Jan 11 14:21:01 UTC 2010


New submission from Gomez <ed.gomez at free.fr>:

As it is implemented now, svn subrepo will mostly fail for lot of reasons:

Test case:
$ hg init
$ echo a > a
$ echo "ffmpeg = [svn]svn://svn.mplayerhq.hu/ffmpeg/trunk" > .hgsub
$ hg add a .hgsub
$ svn co svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
$ hg commit -m 'cset1'
fails in status parsing with a string exception

The svn status implied by subrepo is (using en_US.UTF-8 locale):
$ svn status ffmpeg
X       ffmpeg/libswscale

Performing status on external item at 'ffmpeg/libswscale'

My test case fails because of svn:external sub-subrepos. At first glance i 
would add a --ignore-externals to the svn status call.

However the problem is more complex, because svn status output is complex as 
it gets splitted over the 6 first chars, not only the first as we check in 
current code

A good fix would be to maybe:
 - ignore sub subrepos
 - check on first and second characters (the ones dealing with the files and 
their svn metadata) and check for more than just 'not ?'. X,I should be 
ignored, C should abort commit just as conflicts do on mercurial repos 
etc...

----------
messages: 11429
nosy: edgomez
priority: bug
status: unread
title: svn subrepo has errnoneous status parsing

____________________________________________________
Mercurial issue tracker <bugs at mercurial.selenic.com>
<http://mercurial.selenic.com/bts/issue1982>
____________________________________________________


More information about the Mercurial-devel mailing list