In subrepo.py, when svn writes something to its error output stream, the command is considered as failed. This is a wrong assumption, as svn may write simple warnings as well (as seen when accessing KWallet, a keyring for KDE). The process exit code should be considered instead, for example: --- subrepo.py.orig 2011-05-01 12:57:55.000000000 +0200 +++ subrepo.py 2011-05-26 09:36:58.586318297 +0200 @@ -542,8 +542,10 @@ universal_newlines=True, env=env) stdout, stderr = p.communicate() stderr = stderr.strip() + if p.returncode: + raise util.Abort(stderr or "exited with code %d" % p.returncode) if stderr: - raise util.Abort(stderr) + self._ui.warn(stderr) return stdout
Please send your patch to the mercurial-devel@selenic.com list, no subscription necessary.
done in the meantime: http://selenic.com/pipermail/mercurial-devel/2011-May/031880.html
Fixed by http://selenic.com/repo/hg/rev/278a4e0fdfed Regis Desgroppes <regis.desgroppes@nokia.com> subrepo: svn abort now depends on exit code (issue2833) (please test the fix)
Mercurial 1.8.4 was deployed here. This aspect now works fine.
--- Bug imported by bugzilla@serpentine.com 2012-05-12 09:20 EDT --- This bug was previously known as _bug_ 2833 at http://mercurial.selenic.com/bts/issue2833