summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Frysinger <vapier@google.com>2020-02-11 18:51:08 -0500
committerMike Frysinger <vapier@google.com>2020-02-12 00:28:03 +0000
commit82caef67a16437b9c39e1f2c920cc6307767b1d6 (patch)
tree3405146a19806eac2f5d28012aac7235c12f1096
parent3645bd24200b0f97eaeb8f65552ec67cc5a3fce8 (diff)
downloadgit-repo-82caef67a16437b9c39e1f2c920cc6307767b1d6.tar.gz
repo: lower min version of git a bit
We were perhaps a bit too hasty to jump to git-2.10. Existing LTS releases of Ubuntu are quite old still: Trusty has 1.9 while Xenial has 2.5. While we plan on dropping support for those eventually as we migrate to Python 3.6, we don't need to be so strict just yet on the git versions. We also want to disconnect the version the repo launcher requires from the version the rest of the source tree requires. The repo launcher doesn't need as many features, and being flexible there allows us more freedom to upgrade & rollback as needed. So we'll allow git-1.7 again, but start warning on any users older than git-1.9. This aligns better with existing LTS releases, and gives users a chance to start upgrading before we cut them off. Change-Id: I140305dd8e42c9719c84e2aee0dc6a5c5b18da25 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/254573 Reviewed-by: David Pursehouse <dpursehouse@collab.net> Tested-by: Mike Frysinger <vapier@google.com>
-rw-r--r--git_command.py13
-rwxr-xr-xrepo7
-rw-r--r--subcmds/init.py9
3 files changed, 24 insertions, 5 deletions
diff --git a/git_command.py b/git_command.py
index 5017ea9b..4868ccdf 100644
--- a/git_command.py
+++ b/git_command.py
@@ -28,8 +28,17 @@ from repo_trace import REPO_TRACE, IsTrace, Trace
28from wrapper import Wrapper 28from wrapper import Wrapper
29 29
30GIT = 'git' 30GIT = 'git'
31# Should keep in sync with the "repo" launcher file. 31# NB: These do not need to be kept in sync with the repo launcher script.
32MIN_GIT_VERSION = (2, 10, 2) 32# These may be much newer as it allows the repo launcher to roll between
33# different repo releases while source versions might require a newer git.
34#
35# The soft version is when we start warning users that the version is old and
36# we'll be dropping support for it. We'll refuse to work with versions older
37# than the hard version.
38#
39# git-1.7 is in (EOL) Ubuntu Precise. git-1.9 is in Ubuntu Trusty.
40MIN_GIT_VERSION_SOFT = (1, 9, 1)
41MIN_GIT_VERSION_HARD = (1, 7, 2)
33GIT_DIR = 'GIT_DIR' 42GIT_DIR = 'GIT_DIR'
34 43
35LAST_GITDIR = None 44LAST_GITDIR = None
diff --git a/repo b/repo
index 2b125296..01d5c46d 100755
--- a/repo
+++ b/repo
@@ -166,7 +166,12 @@ TACbBS+Up3RpfYVfd63c1cDdlru13pQAn3NQy/SN858MkxN+zym86UBgOad2
166""" 166"""
167 167
168GIT = 'git' # our git command 168GIT = 'git' # our git command
169MIN_GIT_VERSION = (2, 10, 2) # minimum supported git version 169# NB: The version of git that the repo launcher requires may be much older than
170# the version of git that the main repo source tree requires. Keeping this at
171# an older version also makes it easier for users to upgrade/rollback as needed.
172#
173# git-1.7 is in (EOL) Ubuntu Precise.
174MIN_GIT_VERSION = (1, 7, 2) # minimum supported git version
170repodir = '.repo' # name of repo's private directory 175repodir = '.repo' # name of repo's private directory
171S_repo = 'repo' # special repo repository 176S_repo = 'repo' # special repo repository
172S_manifests = 'manifests' # special manifest repository 177S_manifests = 'manifests' # special manifest repository
diff --git a/subcmds/init.py b/subcmds/init.py
index 6594a602..a7950069 100644
--- a/subcmds/init.py
+++ b/subcmds/init.py
@@ -34,7 +34,7 @@ from command import InteractiveCommand, MirrorSafeCommand
34from error import ManifestParseError 34from error import ManifestParseError
35from project import SyncBuffer 35from project import SyncBuffer
36from git_config import GitConfig 36from git_config import GitConfig
37from git_command import git_require, MIN_GIT_VERSION 37from git_command import git_require, MIN_GIT_VERSION_SOFT, MIN_GIT_VERSION_HARD
38import platform_utils 38import platform_utils
39 39
40class Init(InteractiveCommand, MirrorSafeCommand): 40class Init(InteractiveCommand, MirrorSafeCommand):
@@ -451,7 +451,12 @@ to update the working directory files.
451 self.OptionParser.error('--mirror and --archive cannot be used together.') 451 self.OptionParser.error('--mirror and --archive cannot be used together.')
452 452
453 def Execute(self, opt, args): 453 def Execute(self, opt, args):
454 git_require(MIN_GIT_VERSION, fail=True) 454 git_require(MIN_GIT_VERSION_HARD, fail=True)
455 if not git_require(MIN_GIT_VERSION_SOFT):
456 print('repo: warning: git-%s+ will soon be required; please upgrade your '
457 'version of git to maintain support.'
458 % ('.'.join(str(x) for x in MIN_GIT_VERSION_SOFT),),
459 file=sys.stderr)
455 460
456 self._SyncManifest(opt) 461 self._SyncManifest(opt)
457 self._LinkManifest(opt.manifest_name) 462 self._LinkManifest(opt.manifest_name)