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 /project.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 'project.py')
-rw-r--r-- | project.py | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -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): |