-
Bug
-
Resolution: Unresolved
-
Minor
-
None
Since commit 853603cccd4434b116ef9b8e094c3f5b815aa75a, we set GIT_LFS_SKIP_SMUDGE=1 to improve performance, and require users to add the "Git LFS pull after checkout" additional behaviour to resolve pointers.
This was mostly done because git clone performance was pretty bad with the smudge filter enabled, and in some configurations, (ssh clone URLs), git lfs pull didn't work.
Since then, a lot has improved:
Clone performance through the smudge filter has improved since https://github.com/git-lfs/git-lfs/pull/2511.
Backends should support the git-lfs-authenticate dance as described in https://github.com/git-lfs/git-lfs/blob/master/docs/api/authentication.md#ssh, which retrieves a temporary authorization token to do the clone over https.
I propose to just do a git clone without setting GIT_LFS_SKIP_SMUDGE=1. Most systems should have done a git lfs install before, so they will resolve the lfs pointers during a clone. We can keep the "Git LFS pull after checkout" additional behaviour, for systems that don't have setup global smudge filters via git lfs install.
- is related to
-
JENKINS-62587 Log git version before cloning via CLI
-
- Closed
-
- relates to
-
JENKINS-47531 git-lfs: allow specifying separate credentials
-
- Closed
-
-
JENKINS-56569 Prevent automatic pulling of lfs files if no GitLFSPull option is set
-
- Open
-
Your description seems reasonable to me. I want to see the results of evaluating a pull request on the Linux (Amazon Linux, CentOS, Debian, Ubuntu), Windows, and FreeBSD environments where I run tests regularly. Will you submit the pull request?
PR 2511 to git-lfs seems to indicate that specific versions of command line git and of git lfs are needed in order to gain the benefit of the change. Can you confirm that command line git versions 2.15 and later are needed and that git lfs 2.3.0 and later are needed?
If so, then the pull request will need to check the command line git version and the git lfs version before removing the GIT_LFS_SKIP_SMUDGE environment variable. If that conditional is not included in the change, then many operating systems that deliver older versions of command line git or older versions of git lfs will suffer a performance loss from removing that environment variable.