Subject: Re: Feedback outside of the user survey

From: Christian Jaeger <[email-masked]>
Date: Mon, 20 Oct 2008 17:20:28 +0200

Andreas Ericsson wrote:
> Christian Jaeger wrote:
>> Andreas Ericsson wrote:
>>> Christian Jaeger wrote:
>>>> If you really wanted, I suppose you could additionally look into 
>>>> implementing a kind of shallow cloning that only copies objects 
>>>> over the wire which are necessary for representing the subdirectory 
>>>> you're interested in.
>>>>
>>>
>>> So what do you do when one such commit also affects something outside
>>> the subdirectory?
>>
>> You haven't said what you mean with "affect".
>>
>
> I mean "how would you handle a commit (and its tree-object) that updates
> all Makefiles in, for example, the Linux kernel project?". Those files
> are spread far and wide, and you'd want that change to *your* tree, but
> getting it into your tree either means you need to rewrite the tree (and
> thereby the commit) itself to get rid of uninteresting blob's from the
> tree, and you'd also have to prune the tree to not reveal the directory
> layout of the rest of the repository.

You have said "either" but not "or".

> I take it parentage could be resolved by a ridiculously large 
> grafts-file.

Hm, not sure whether you mean to rescue the situation with rewritten 
commits here -- but hell no, I certainly don't mean to have different 
commit objects for different clones/checkouts.

> What you'd end up with wouldn't be a git repository at all anymore. It
> would be a "stump", as it'd be missing large parts of the tree entirely.

That was my point, yes.

> I'm unsure just how much you'd have to compute to be able to use such a
> stump to incorporate your changes with other users again, but I doubt it
> would be trivial to implement. Good thing it's not my itch, really.

I've been suggesting it to Garry :)

Maybe whoever writes up something on the wiki regarding subdirectory 
checkouts in SVN versus Git could still care about what the "fundamental 
technical" limits are versus what the current implementation (or 
practicalness) imposes. It will be both a more enlightening and 
potentially more future-proof explanation then.

Christian.