subrepo, hghave: use "svn --version --quiet" to determine version number
authorThomas Arendsen Hein <thomas@intevation.de>
Thu, 04 Oct 2012 16:52:20 +0200
changeset 17707 35674bd95200
parent 17706 70efdc22b188
child 17708 4f2f0f367ef6
subrepo, hghave: use "svn --version --quiet" to determine version number svn --version --quiet is implemented since svn 0.14.1 (August 2002) and prints just the version number, not the long output (21 lines) of "svn --version". Additionally I expect this output format to be more stable, at least it is not changed with different translations.
mercurial/subrepo.py
tests/hghave.py
--- a/mercurial/subrepo.py	Thu Oct 04 16:44:28 2012 +0200
+++ b/mercurial/subrepo.py	Thu Oct 04 16:52:20 2012 +0200
@@ -674,8 +674,8 @@
 
     @propertycache
     def _svnversion(self):
-        output, err = self._svncommand(['--version'], filename=None)
-        m = re.search(r'^svn,\s+version\s+(\d+)\.(\d+)', output)
+        output, err = self._svncommand(['--version', '--quiet'], filename=None)
+        m = re.search(r'^(\d+)\.(\d+)', output)
         if not m:
             raise util.Abort(_('cannot retrieve svn tool version'))
         return (int(m.group(1)), int(m.group(2)))
--- a/tests/hghave.py	Thu Oct 04 16:44:28 2012 +0200
+++ b/tests/hghave.py	Thu Oct 04 16:52:20 2012 +0200
@@ -152,7 +152,7 @@
         return False
 
 def getsvnversion():
-    m = matchoutput('svn --version 2>&1', r'^svn,\s+version\s+(\d+)\.(\d+)')
+    m = matchoutput('svn --version --quiet 2>&1', r'^(\d+)\.(\d+)')
     if not m:
         return (0, 0)
     return (int(m.group(1)), int(m.group(2)))