Chromium Code Reviews| Index: tools/utils.py |
| diff --git a/tools/utils.py b/tools/utils.py |
| index db7582eca4c006e3b3887540e02aa050c35462b7..4969ad5b61adea1188d68a928f97eacd93acd0d8 100644 |
| --- a/tools/utils.py |
| +++ b/tools/utils.py |
| @@ -406,6 +406,40 @@ def GetSVNRevision(): |
| return None |
| +# Our schema for releases and archiving is based on an increasing |
| +# sequence of numbers. In the svn world this was simply the revision of a |
| +# commit, which would always give us a one to one mapping between the number |
| +# and the commit. This was true across branches as well, so a number used |
| +# to archive a build was always unique and unambiguous. |
| +# In git there is no such global number, so we loosen the requirement a bit. |
| +# We only use numbers on the master branch (bleeding edge). On branches |
| +# we use the version number instead for archiving purposes. |
| +# The number on master is the count of commits on the master branch. |
| +def GetArchiveVersion(): |
| + version = ReadVersionFile() |
| + if not version: |
| + raise 'Could not get the archive version, parsing the version file failed' |
| + if version.channel == 'be': |
| + return GetGitNumber() |
| + return GetSemanticSDKVersion() |
| + |
| +# To eliminate clashing with older archived builds on bleding edge we add |
| +# a base number bigger the largest svn revision (this also gives us an easy |
| +# way of seeing if an archive comes from git based or svn based commits). |
| +GIT_NUMBER_BASE = 100000 |
|
Søren Gjesse
2015/04/21 13:04:30
When we have the GitHub repro we could adjust this
|
| +def GetGitNumber(): |
| + p = subprocess.Popen(['git', 'rev-list', 'HEAD', '--count'], |
| + stdout = subprocess.PIPE, |
| + stderr = subprocess.STDOUT, shell=IsWindows(), |
| + cwd = DART_DIR) |
| + output, _ = p.communicate() |
| + try: |
| + number = int(output) |
| + return number + GIT_NUMBER_BASE |
| + except: |
| + print "Warning: could not parse git count, output was %s" % output |
| + return None |
| + |
| def ParseGitInfoOutput(output): |
| """Given a git log, determine the latest corresponding svn revision.""" |
| for line in output.split('\n'): |