diff options
-rw-r--r-- | lib/bb/fetch2/svn.py | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/bb/fetch2/svn.py b/lib/bb/fetch2/svn.py index ea5902e05..30c4b91b8 100644 --- a/lib/bb/fetch2/svn.py +++ b/lib/bb/fetch2/svn.py @@ -27,6 +27,7 @@ import os import sys import logging import bb +import re from bb import data from bb.fetch2 import FetchMethod from bb.fetch2 import FetchError @@ -89,6 +90,8 @@ class Svn(FetchMethod): if command == "info": svncmd = "%s info %s %s://%s/%s/" % (ud.basecmd, " ".join(options), proto, svnroot, ud.module) + elif command == "log1": + svncmd = "%s log --limit 1 %s %s://%s/%s/" % (ud.basecmd, " ".join(options), proto, svnroot, ud.module) else: suffix = "" if ud.revision: @@ -165,14 +168,13 @@ class Svn(FetchMethod): """ Return the latest upstream revision number """ - bb.fetch2.check_network_access(d, self._buildsvncommand(ud, d, "info")) + bb.fetch2.check_network_access(d, self._buildsvncommand(ud, d, "log1")) - output = runfetchcmd("LANG=C LC_ALL=C " + self._buildsvncommand(ud, d, "info"), d, True) + output = runfetchcmd("LANG=C LC_ALL=C " + self._buildsvncommand(ud, d, "log1"), d, True) - revision = None - for line in output.splitlines(): - if "Last Changed Rev" in line: - revision = line.split(":")[1].strip() + # skip the first line, as per output of svn log + # then we expect the revision on the 2nd line + revision = re.search('^r([0-9]*)', output.splitlines()[1]).group(1) return revision |