From: Junio C Hamano Date: Wed, 16 Sep 2015 15:20:20 GMT Subject: Re: [PATCH v5 6/7] git-p4: add support for large file systems Message-ID: In-Reply-To: <5329966D-1A0C-42A1-9099-AC449D50AA52@gmail.com> Lars Schneider writes: >>> +git-p4.largeFileSystem:: >>> + Specify the system that is used for large (binary) files. Please note >>> + that large file systems do not support the 'git p4 submit' command. >> >> Why is that? Is it just that you haven't implemented support, or >> is it fundamentally impossible? > > If we detect LFS files only by file extension then we could make > it work. But then we must not use any git-p4 settings. We would > need to rely only on the “.gitattributes” file that is stored in > the P4 repository. My implementation also looks at the file size > and decides on a individual file basis if a file is stored in > LFS. That means all clients need the same file size threshold. > > Junio explained the problem in the v4 thread: >> ... Hmm, I am not sure if Luke's question was answered with the above, and I do not think I explained anything, either. I did point out that with _your_ code I didn't see how "submit" would not work, but that is quite different from the problem being fundamentally not solvable. >>> +test_file_in_mock () { >>> + FILE="$1" >> Missing && >> Plus the next few lines > Are they strictly necessary? I believe you can define variables all in “one line” Absolutely. Making multiple assignments as a single statment like X=A Y=B Z=C && ... is fine, but do not break &&-chain. >> >>> + CONTENT="$2" >>> + LOCAL_STORAGE=".git/mock-storage/local/$CONTENT" >>> + SERVER_STORAGE=".git/mock-storage/remote/$CONTENT" ... and to be sure, these 'echo' also must not break &&-chain. >>> + echo "pointer-$CONTENT" >expect_pointer >>> + echo "$CONTENT" >expect_content >>> +test_file_count_in_dir () { >>> + DIR="$1" >>> + EXPECTED_COUNT="$2" >>> + find "$DIR" -type f >actual ... so are these. >>> + test_line_count = $EXPECTED_COUNT actual >>> +} Thanks.