diff options
author | XD Trol <milestonejxd@gmail.com> | 2022-01-17 23:29:04 +0800 |
---|---|---|
committer | XD Trol <milestonejxd@gmail.com> | 2022-01-26 01:47:20 +0000 |
commit | 630876f9e4910a4c91705c6cc98414123547419a (patch) | |
tree | aa7c9374ce0aba3107c563ab7c3407c10b54e735 /subcmds/init.py | |
parent | 4aa8584ec6a57b24c7e41e6fccd0b554a264423d (diff) | |
download | git-repo-630876f9e4910a4c91705c6cc98414123547419a.tar.gz |
init: add an option --enable-git-lfs-filter
It was reported that git-lfs did not work with git-repo. Specifically,
`git read-tree -u` run by `repo sync` would fail git-lfs's smudge
filter. See https://github.com/github/git-lfs/issues/1422.
In fact, by the time `git read-tree -u` is run, the repository is not
bare. It is just that, the working directory is not the same as the
.git directory. git-lfs's filter should work. No one seems to have
delved into that issue.
Today, with newer versions of git-repo and git-lfs, that issue will
not reproduce. Tested with
- git 2.33, git-lfs 2.13 on macOS
- git 2.17, git-lfs 2.3 on ubuntu
So, it seems fine to add an option --enable-git-lfs-filter, default to
false, and stat that it may not work with older versions of git and
git-lfs in the help doc.
Bug: https://crbug.com/gerrit/14516
Change-Id: I8d21854eeeea541e072f63d6b10ad1253b1a9826
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/328359
Tested-by: XD Trol <milestonejxd@gmail.com>
Reviewed-by: Mike Frysinger <vapier@google.com>
Diffstat (limited to 'subcmds/init.py')
-rw-r--r-- | subcmds/init.py | 9 |
1 files changed, 9 insertions, 0 deletions
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 | ||