summaryrefslogtreecommitdiffstats
path: root/project.py
diff options
context:
space:
mode:
authorXD Trol <milestonejxd@gmail.com>2022-01-17 23:29:04 +0800
committerXD Trol <milestonejxd@gmail.com>2022-01-26 01:47:20 +0000
commit630876f9e4910a4c91705c6cc98414123547419a (patch)
treeaa7c9374ce0aba3107c563ab7c3407c10b54e735 /project.py
parent4aa8584ec6a57b24c7e41e6fccd0b554a264423d (diff)
downloadgit-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.py5
1 files changed, 3 insertions, 2 deletions
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):