From: Ben Peart Date: Mon, 05 Nov 2018 20:07:48 GMT Subject: Re: [RFC v1] Add virtual file system settings and hook proc Message-ID: In-Reply-To: On 11/5/2018 10:26 AM, Duy Nguyen wrote: > On Mon, Nov 5, 2018 at 12:40 PM Ævar Arnfjörð Bjarmason > wrote: >> >> >> On Sun, Nov 04 2018, Duy Nguyen wrote: >> >>> On Wed, Oct 31, 2018 at 9:53 PM Ben Peart wrote: >>>>>> +core.virtualFilesystem:: >>>>>> + If set, the value of this variable is used as a command which >>>>>> + will identify all files and directories that are present in >>>>>> + the working directory. Git will only track and update files >>>>>> + listed in the virtual file system. Using the virtual file system >>>>>> + will supersede the sparse-checkout settings which will be ignored. >>>>>> + See the "virtual file system" section of linkgit:githooks[6]. >>>>> >>>>> It sounds like "virtual file system" is just one of the use cases for >>>>> this feature, which is more about a dynamic source of sparse-checkout >>>>> bits. Perhaps name the config key with something along sparse checkout >>>>> instead of naming it after a use case. >>>> >>>> It's more than a dynamic sparse-checkout because the same list is also >>>> used to exclude any file/folder not listed. That means any file not >>>> listed won't ever be updated by git (like in 'checkout' for example) so >>>> 'stale' files could be left in the working directory. It also means git >>>> won't find new/untracked files unless they are specifically added to the >>>> list. >>> >>> OK. I'm not at all interested in carrying maintenance burden for some >>> software behind closed doors. I could see values in having a more >>> flexible sparse checkout but this now seems like very tightly designed >>> for GVFS. So unless there's another use case (preferably open source) >>> for this, I don't think this should be added in git.git. >> >> I haven't looked at the patch in any detail beyond skimming it, and >> you're more familiar with this area... >> >> But in principle I'm very interested in getting something like this in >> git.git, even if we were to assume GVFS was a 100% proprietary >> implementation. > > I have nothing against building a GVFS-like solution. If what's > submitted can be the building blocks for that, great! But if it was > just for GVFS (and it was not available to everybody) then no thank > you. > Not only is VFS for Git open source and is/will be supported on Windows, Mac and Linux, the interface being proposed is quite generic so should be usable for other implementations. To use it, you just need to provide a hook that will return a list of files git should pay attention to (using a subset of the existing sparse-checkout format). If you see anything that would make using it difficult for other solutions to use, let's fix it now!