From: Jens Lehmann <Jens.Lehmann@web.de>
To: Ramkumar Ramachandra <artagnon@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>,
Git List <git@vger.kernel.org>, Jeff King <peff@peff.net>
Subject: Re: Composing git repositories
Date: Thu, 28 Mar 2013 21:40:44 +0100 [thread overview]
Message-ID: <5154AACC.7050006@web.de> (raw)
In-Reply-To: <CALkWK0nfNCu775MBB-Y28=V93RkV24kbTLTDKWO2dZ-0yxX=Sw@mail.gmail.com>
Am 28.03.2013 10:16, schrieb Ramkumar Ramachandra:
> Jens Lehmann wrote:
>> Unless you acknowledge that submodules are a different repo, you'll
>> always run into problems. I believe future enhancements will make
>> this less tedious, but in the end they will stay separate repos
>> (which is the whole point, you'd want to use a different approach
>> - e.g. subtree - if you want to put stuff from different upstreams
>> into a single repo without keeping the distinction where all that
>> came from).
>
> I acknowledge that it's a different repository. It's just that I
> think that our current design has too many seams: why do you think
> it's impossible to make it seamless?
>
> git-subtree is not an answer to anything. Dumping all the history
> into one repository has its limited usecases, but it is no solution.
Guess what: submodules are the solution for a certain set of use
cases, and tools like subtree are a solution for another set of
use cases. There is no silver bullet.
>> What else than a commit object should that be??? Submodules are
>> there to have a different upstream for a part of your work tree,
>> and that means a commit in that repo is the only sane thing to
>> record in the superproject. A lot of thought has been put into
>> this, and it is definitely a good choice [1].
>
> Linus argues that it shouldn't be a tree object, and I agree with
> that. I don't see an argument that says that the commit object is a
> perfect fit (probably because it's not).
There was discussion about what to record in the index/commit of
the superproject in early submodule days (some time before I became
involved in Git, seems I currently cannot find a link to that). A
commit is the thing to record here because it *is* the perfect fit,
as some years of submodule experience show.
>> How? The "submodules suck, we should try a completely different
>> approach" thingy comes up from time to time, but so far nobody
>> could provide a viable alternative to what we currently do.
>
> My argument is not "submodules suck; we should throw them out of the
> window, and start from scratch" at all. I'm merely questioning the
> fundamental assumptions that submodules make, instead of proposing
> that we work around everything in shell. We don't have to be married
> to the existing implementation of submodules and try to fix all the
> problems in shell.
You cannot simply change the fundamental assumptions of submodules
and expect them to be the same thing afterwards. And it doesn't
matter at all if we "fix all the problems in shell" or in C-code,
we'll fix the remaining problems that are fixable in whatever part
of Git it makes sense. And I don't have the impression you have an
idea about what submodules are good at, where they can be improved
and what problems they'll probably never solve.
>> And apart from that, let's not forget we identified some valuable
>> improvements to submodules in this thread:
>> [...]
>> All of those are topics I like to see materialize, and you are
>> welcome to tackle them.
>
> Allow me a few days to think about changing the fundamental building
> blocks to make our shell hackery easier.
Please go ahead, but if your goal is "to make our shell hackery
easier" I'm not interested. I want to improve the user experience
of submodules and don't care much in what language we achieve that.
And I can't see anything fundamental being wrong with submodules but
strongly believe they are a perfect match for some very important
use cases (some of which I see happening at my $dayjob for some
years now), so I still don't see what you are trying to "fix" here.
next prev parent reply other threads:[~2013-03-28 20:41 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-26 7:56 Composing git repositories Ramkumar Ramachandra
2013-03-26 16:39 ` Junio C Hamano
2013-03-27 11:49 ` Ramkumar Ramachandra
2013-03-27 16:06 ` Junio C Hamano
2013-03-27 17:02 ` Ramkumar Ramachandra
2013-03-27 17:16 ` Junio C Hamano
2013-03-27 19:26 ` Jonathan Nieder
2013-03-27 20:18 ` Junio C Hamano
2013-03-27 20:42 ` Jonathan Nieder
2013-03-28 11:48 ` Ramkumar Ramachandra
2013-03-28 20:25 ` Jens Lehmann
2013-03-28 10:01 ` Ramkumar Ramachandra
2013-03-28 18:21 ` Jonathan Nieder
2013-03-28 20:17 ` Jens Lehmann
2013-03-27 23:02 ` Jens Lehmann
2013-03-28 9:16 ` Ramkumar Ramachandra
2013-03-28 20:40 ` Jens Lehmann [this message]
2013-03-31 20:34 ` Ramkumar Ramachandra
2013-03-31 22:57 ` Jonathan Nieder
2013-04-02 17:44 ` Ramkumar Ramachandra
2013-04-02 17:58 ` Jeff King
2013-04-02 19:33 ` Ramkumar Ramachandra
2013-04-02 19:56 ` Jens Lehmann
2013-04-02 18:03 ` Junio C Hamano
2013-04-04 6:40 ` Junio C Hamano
2013-04-05 2:36 ` Duy Nguyen
2013-04-05 4:53 ` Junio C Hamano
2013-04-05 5:27 ` Duy Nguyen
2013-04-05 7:15 ` Jens Lehmann
2013-03-31 23:50 ` Phil Hord
2013-04-01 12:14 ` Jens Lehmann
2013-04-01 14:49 ` Phil Hord
2013-04-02 18:35 ` Ramkumar Ramachandra
2013-04-02 18:54 ` Jonathan Nieder
2013-04-02 19:09 ` Junio C Hamano
2013-04-02 19:11 ` Ramkumar Ramachandra
2013-04-02 19:20 ` Jonathan Nieder
2013-04-02 19:29 ` Ramkumar Ramachandra
2013-04-02 19:49 ` Ramkumar Ramachandra
2013-04-02 19:59 ` Jens Lehmann
2013-04-01 9:50 ` Jens Lehmann
2013-04-01 0:16 ` Seth Robertson
2013-04-02 19:19 ` Ramkumar Ramachandra
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5154AACC.7050006@web.de \
--to=jens.lehmann@web.de \
--cc=artagnon@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).