Re: [PATCH v5 6/7] git-p4: add support for large file systems
- From
Lars Schneider <larsxschneider@gmail.com>
- Date
- Sep 20, 2015, 21:26 UTC
- Message-ID
- <107A7A4A-1B2C-4280-A66E-A4B3BED13AE0@gmail.com>
- In-Reply-To
- <xmqqzj0ms85n.fsf@gitster.mtv.corp.google.com>
On 16 Sep 2015, at 17:20, Junio C Hamano <gitster@pobox.com> wrote:
Show 24 quoted lines
> Lars Schneider <larsxschneider@gmail.com> 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.
OK, to answer Luke’s question after some thoughts: I think it is possible but I haven’t implemented it.
I see one issue right away: Some large file systems depend on gitattributes filters (e.g. Git-LFS). Git-p4 would need to run the filters on clone/sync/submit. Right now this does not happen and the user sees the raw LFS pointer files in the Git repository instead of the content after the initial git-p4 clone (the Git-LFS test cases shows this). This is no problem for a git-p4 one time usage as you usually upload the created Git repo to some Git server. Nevertheless, I was not able to find a quick and easy way to fix this. Anyone an idea?
If we get these filters working then we could create a new large file system similar to “Git-LFS”. Instead of pointing to large files on a “Git-LFS” server we could point right to their P4 location. That would be pretty neat.
- Lars