summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/internal-fs-layout.md2
-rw-r--r--manifest_xml.py4
-rw-r--r--project.py5
-rwxr-xr-xrepo7
-rw-r--r--subcmds/init.py9
5 files changed, 24 insertions, 3 deletions
diff --git a/docs/internal-fs-layout.md b/docs/internal-fs-layout.md
index af6a4523..0e830510 100644
--- a/docs/internal-fs-layout.md
+++ b/docs/internal-fs-layout.md
@@ -163,6 +163,7 @@ User controlled settings are initialized when running `repo init`.
163| repo.clonefilter | `--clone-filter` | Filter setting when using [partial git clones] | 163| repo.clonefilter | `--clone-filter` | Filter setting when using [partial git clones] |
164| repo.depth | `--depth` | Create shallow checkouts when cloning | 164| repo.depth | `--depth` | Create shallow checkouts when cloning |
165| repo.dissociate | `--dissociate` | Dissociate from any reference/mirrors after initial clone | 165| repo.dissociate | `--dissociate` | Dissociate from any reference/mirrors after initial clone |
166| repo.git-lfs | `--git-lfs` | Enable [Git LFS] support |
166| repo.mirror | `--mirror` | Checkout is a repo mirror | 167| repo.mirror | `--mirror` | Checkout is a repo mirror |
167| repo.partialclone | `--partial-clone` | Create [partial git clones] | 168| repo.partialclone | `--partial-clone` | Create [partial git clones] |
168| repo.partialcloneexclude | `--partial-clone-exclude` | Comma-delimited list of project names (not paths) to exclude while using [partial git clones] | 169| repo.partialcloneexclude | `--partial-clone-exclude` | Comma-delimited list of project names (not paths) to exclude while using [partial git clones] |
@@ -254,6 +255,7 @@ Repo will create & maintain a few files in the user's home directory.
254 255
255 256
256[git-config]: https://git-scm.com/docs/git-config 257[git-config]: https://git-scm.com/docs/git-config
258[Git LFS]: https://git-lfs.github.com/
257[git worktree]: https://git-scm.com/docs/git-worktree 259[git worktree]: https://git-scm.com/docs/git-worktree
258[gitsubmodules]: https://git-scm.com/docs/gitsubmodules 260[gitsubmodules]: https://git-scm.com/docs/gitsubmodules
259[manifest-format.md]: ./manifest-format.md 261[manifest-format.md]: ./manifest-format.md
diff --git a/manifest_xml.py b/manifest_xml.py
index 68ead53c..daf85d30 100644
--- a/manifest_xml.py
+++ b/manifest_xml.py
@@ -666,6 +666,10 @@ https://gerrit.googlesource.com/git-repo/+/HEAD/docs/manifest-format.md
666 def HasSubmodules(self): 666 def HasSubmodules(self):
667 return self.manifestProject.config.GetBoolean('repo.submodules') 667 return self.manifestProject.config.GetBoolean('repo.submodules')
668 668
669 @property
670 def EnableGitLfs(self):
671 return self.manifestProject.config.GetBoolean('repo.git-lfs')
672
669 def GetDefaultGroupsStr(self): 673 def GetDefaultGroupsStr(self):
670 """Returns the default group string for the platform.""" 674 """Returns the default group string for the platform."""
671 return 'default,platform-' + platform.system().lower() 675 return 'default,platform-' + platform.system().lower()
diff --git a/project.py b/project.py
index 8490d9f9..12257857 100644
--- a/project.py
+++ b/project.py
@@ -2533,8 +2533,9 @@ class Project(object):
2533 for key in ['user.name', 'user.email']: 2533 for key in ['user.name', 'user.email']:
2534 if m.Has(key, include_defaults=False): 2534 if m.Has(key, include_defaults=False):
2535 self.config.SetString(key, m.GetString(key)) 2535 self.config.SetString(key, m.GetString(key))
2536 self.config.SetString('filter.lfs.smudge', 'git-lfs smudge --skip -- %f') 2536 if not self.manifest.EnableGitLfs:
2537 self.config.SetString('filter.lfs.process', 'git-lfs filter-process --skip') 2537 self.config.SetString('filter.lfs.smudge', 'git-lfs smudge --skip -- %f')
2538 self.config.SetString('filter.lfs.process', 'git-lfs filter-process --skip')
2538 self.config.SetBoolean('core.bare', True if self.manifest.IsMirror else None) 2539 self.config.SetBoolean('core.bare', True if self.manifest.IsMirror else None)
2539 except Exception: 2540 except Exception:
2540 if init_obj_dir and os.path.exists(self.objdir): 2541 if init_obj_dir and os.path.exists(self.objdir):
diff --git a/repo b/repo
index 6d7ce42a..c084b654 100755
--- a/repo
+++ b/repo
@@ -149,7 +149,7 @@ if not REPO_REV:
149BUG_URL = 'https://bugs.chromium.org/p/gerrit/issues/entry?template=Repo+tool+issue' 149BUG_URL = 'https://bugs.chromium.org/p/gerrit/issues/entry?template=Repo+tool+issue'
150 150
151# increment this whenever we make important changes to this script 151# increment this whenever we make important changes to this script
152VERSION = (2, 17) 152VERSION = (2, 21)
153 153
154# increment this if the MAINTAINER_KEYS block is modified 154# increment this if the MAINTAINER_KEYS block is modified
155KEYRING_VERSION = (2, 3) 155KEYRING_VERSION = (2, 3)
@@ -382,6 +382,11 @@ def InitParser(parser, gitc_init=False):
382 group.add_option('--no-clone-bundle', 382 group.add_option('--no-clone-bundle',
383 dest='clone_bundle', action='store_false', 383 dest='clone_bundle', action='store_false',
384 help='disable use of /clone.bundle on HTTP/HTTPS (default if --partial-clone)') 384 help='disable use of /clone.bundle on HTTP/HTTPS (default if --partial-clone)')
385 group.add_option('--git-lfs', action='store_true',
386 help='enable Git LFS support')
387 group.add_option('--no-git-lfs',
388 dest='git_lfs', action='store_false',
389 help='disable Git LFS support')
385 390
386 # Tool. 391 # Tool.
387 group = parser.add_option_group('repo Version options') 392 group = parser.add_option_group('repo Version options')
diff --git a/subcmds/init.py b/subcmds/init.py
index b0db76a4..32c85f79 100644
--- a/subcmds/init.py
+++ b/subcmds/init.py
@@ -291,6 +291,15 @@ to update the working directory files.
291 if opt.submodules: 291 if opt.submodules:
292 m.config.SetBoolean('repo.submodules', opt.submodules) 292 m.config.SetBoolean('repo.submodules', opt.submodules)
293 293
294 if opt.git_lfs is not None:
295 if opt.git_lfs:
296 git_require((2, 17, 0), fail=True, msg='Git LFS support')
297
298 m.config.SetBoolean('repo.git-lfs', opt.git_lfs)
299 if not is_new:
300 print('warning: Changing --git-lfs settings will only affect new project checkouts.\n'
301 ' Existing projects will require manual updates.\n', file=sys.stderr)
302
294 if opt.use_superproject is not None: 303 if opt.use_superproject is not None:
295 m.config.SetBoolean('repo.superproject', opt.use_superproject) 304 m.config.SetBoolean('repo.superproject', opt.use_superproject)
296 305