Skip to content

Commit

Permalink
git-p4: honor lfs.storage configuration variable
Browse files Browse the repository at this point in the history
"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>
  • Loading branch information
panzercheg authored and gitster committed Dec 11, 2019
1 parent 53a06cf commit ea94b16
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions git-p4.py
Original file line number Diff line number Diff line change
Expand Up @@ -1257,9 +1257,15 @@ def generatePointer(self, contentFile):
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.
Expand Down

0 comments on commit ea94b16

Please sign in to comment.