M hgext3rd/confman/configuration.py +2 -0
@@ 2,6 2,7 @@
import itertools
import os
+import shutil
from collections import defaultdict
from mercurial import error, util
@@ 203,6 204,7 @@ class configurationmanager(object):
self.failed.add(section)
ui.write('%s\n' % err, label='confman.dirty')
ui.debug(str(err))
+ shutil.rmtree(dest)
continue
# if managed is a sub configuration, we add the rootpath
M tests/test-git.t +17 -0
@@ 232,3 232,20 @@ Add a git tag
$ hg cfs -I foo
conf
|- foo (HEAD) [baseline 'foo-0.2' in a parallel branch] M
+
+Git clone failure
+ $ cd $TESTTMP
+ $ hg init test-git-failure
+ $ cd test-git-failure
+ $ cat > .hgconf <<EOF
+ > [agitrepo]
+ > pulluri = invalid.git
+ > layout = target
+ > track = master
+ > EOF
+ $ hg cfensureconf --no-hggit
+ fatal: repository 'invalid.git' does not exist
+ cloning agitrepo from invalid.git to $TESTTMP/test-git-failure/target
+ Command '['git', 'clone', 'invalid.git', '$TESTTMP/test-git-failure/target']' returned non-zero exit status 128.
+ $ [ -e target ] ; echo $?
+ 1