Browse Source

Merge branch 'ls/p4-empty-file-on-lfs' into maint

"git p4" LFS support was broken when LFS stores an empty blob.

* ls/p4-empty-file-on-lfs:
  git-p4: fix empty file processing for large file system backend GitLFS
maint
Junio C Hamano 8 years ago
parent
commit
cf479b4fb5
  1. 9
      git-p4.py
  2. 2
      t/t9824-git-p4-git-lfs.sh

9
git-p4.py

@ -1005,8 +1005,10 @@ class LargeFileSystem(object): @@ -1005,8 +1005,10 @@ class LargeFileSystem(object):
steps."""
if self.exceedsLargeFileThreshold(relPath, contents) or self.hasLargeFileExtension(relPath):
contentTempFile = self.generateTempFile(contents)
(git_mode, contents, localLargeFile) = self.generatePointer(contentTempFile)

(pointer_git_mode, contents, localLargeFile) = self.generatePointer(contentTempFile)
if pointer_git_mode:
git_mode = pointer_git_mode
if localLargeFile:
# Move temp file to final location in large file system
largeFileDir = os.path.dirname(localLargeFile)
if not os.path.isdir(largeFileDir):
@ -1056,6 +1058,9 @@ class GitLFS(LargeFileSystem): @@ -1056,6 +1058,9 @@ class GitLFS(LargeFileSystem):
the actual content. Return also the new location of the actual
content.
"""
if os.path.getsize(contentFile) == 0:
return (None, '', None)

pointerProcess = subprocess.Popen(
['git', 'lfs', 'pointer', '--file=' + contentFile],
stdout=subprocess.PIPE

2
t/t9824-git-p4-git-lfs.sh

@ -42,6 +42,8 @@ test_expect_success 'Create repo with binary files' ' @@ -42,6 +42,8 @@ test_expect_success 'Create repo with binary files' '
(
cd "$cli" &&

>file0.dat &&
p4 add file0.dat &&
echo "content 1 txt 23 bytes" >file1.txt &&
p4 add file1.txt &&
echo "content 2-3 bin 25 bytes" >file2.dat &&

Loading…
Cancel
Save