diff options
author | r.burenkov <panzercheg@gmail.com> | 2019-12-11 09:47:23 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-12-11 09:59:17 -0800 |
commit | ea94b16fb832d6e0bc2fb8761fd4a89555002bcc (patch) | |
tree | 41ebb67974a8e764a2b389dcc134e6097196e971 | |
parent | Git 2.24.1 (diff) | |
download | tgif-ea94b16fb832d6e0bc2fb8761fd4a89555002bcc.tar.xz |
git-p4: honor lfs.storage configuration variable
"git lfs" allows users to specify the custom storage location with
the configuration variable `lfs.storage`, but when interacting with
GitLFS pointers, "git p4" always uses the hardcoded default that is
the `.git/lfs/` directory, without paying attention to the
configuration.
Use the value configured in `lfs.storage`, if exists, as all the
"git" operations do, for consistency.
Signed-off-by: r.burenkov <panzercheg@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | git-p4.py | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -1257,9 +1257,15 @@ class GitLFS(LargeFileSystem): pointerFile = re.sub(r'Git LFS pointer for.*\n\n', '', pointerFile) oid = re.search(r'^oid \w+:(\w+)', pointerFile, re.MULTILINE).group(1) + # if someone use external lfs.storage ( not in local repo git ) + lfs_path = gitConfig('lfs.storage') + if not lfs_path: + lfs_path = 'lfs' + if not os.path.isabs(lfs_path): + lfs_path = os.path.join(os.getcwd(), '.git', lfs_path) localLargeFile = os.path.join( - os.getcwd(), - '.git', 'lfs', 'objects', oid[:2], oid[2:4], + lfs_path, + 'objects', oid[:2], oid[2:4], oid, ) # LFS Spec states that pointer files should not have the executable bit set. |