From: John Keeping <john@keeping.me.uk>
To: Ramkumar Ramachandra <artagnon@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>,
Git List <git@vger.kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [RFC/PATCH 0/7] Rework git core for native submodules
Date: Sun, 7 Apr 2013 18:52:10 +0100 [thread overview]
Message-ID: <20130407175210.GI2222@serenity.lan> (raw)
In-Reply-To: <CALkWK0nSxfEzP7KHZxGjmBYD7pX5aa3CbMt1qAGrz4tonrtHhA@mail.gmail.com>
On Sun, Apr 07, 2013 at 10:52:50PM +0530, Ramkumar Ramachandra wrote:
> Sure, I'll write it out for you from an end-user perspective:
To play Devil's Advocate for a bit...
> 0. Great UI/UX. No more cd-to-toplevel, and a beautiful set of native
> commands that are consistent with the overall design of git-core.
> Which means: clone (to put something in an unstaged place), add (to
> stage), and commit (to commit the change). There's now exactly one
> place in your worktree (which is represented as one file in git; think
> of it a sort of symlink) to look in for all the information. git
> cat-link <link> to figure out its parameters, git edit-link to edit
> its parameters: no more "find the matching pwd in .gitmodules in
> toplevel". To remove a submodule, just git rm. And git mv works!
Presumably now without .git/config support, so I can't override the
checked-in settings without my own custom branch. Even carrying a dirty
working tree seems problematic here since a checked-out link object is a
directory, which can't have information like the remote URL in it.
> 1. True floating submodules. You can have a submodule checked out at
> `master` or `v3.1`: no more detached HEADs in submodules unless you
> want fixed submodules. No additional cruft required to do the
> floating: the information is native, in a link object.
Can't I do that now with "submodule.<name>.branch" and "git submodule
update --remote --rebase" and friends?
> 2. Initializing a nested submodule without having to initialize the
> outer one: no more repo XML nonsense. And it's composable: you don't
> need to put the information about all submodules in one central place.
How does this interact when there is the following structure:
super
`-- sub
`-- subsub (specified by sub)
and subsub is specified as a submodule in *both* super and sub but with
different settings. Do I get different behaviour depending on $PWD?
> 3. Ability to have very many large submodule repositories without the
> performance hit. It makes sense to block stat() from going through
> when you have floating submodules. This means that many levels of
> nesting are very easily possible.
Can't I already control this to some degree? Certainly the following
commands take different amounts of time to run:
git status
git -c status.submodulesummary=true status
> 4. It's suddenly much easier to add new features to this
> implementation. You don't need to do the kind of gymnastics you'd
> have to do if you were hacking on submodule.c/ git-submodule.sh.
>
> This is basically how "great design" plays out.
next prev parent reply other threads:[~2013-04-07 17:52 UTC|newest]
Thread overview: 140+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-04 18:30 [RFC/PATCH 0/7] Rework git core for native submodules Ramkumar Ramachandra
2013-04-04 18:30 ` [PATCH 1/7] link.c, link.h: introduce fifth object type Ramkumar Ramachandra
2013-04-04 18:30 ` [PATCH 2/7] sha1_file, link: write link objects to the database Ramkumar Ramachandra
2013-04-05 7:11 ` Ramkumar Ramachandra
2013-04-05 7:59 ` Ramkumar Ramachandra
2013-04-04 18:30 ` [PATCH 3/7] teach ce_compare_gitlink() about OBJ_LINK Ramkumar Ramachandra
2013-04-04 18:30 ` [PATCH 4/7] builtin/log: teach show " Ramkumar Ramachandra
2013-04-04 18:30 ` [PATCH 5/7] edit-link: add new builtin Ramkumar Ramachandra
2013-04-04 18:30 ` [PATCH 6/7] clone: introduce clone.submodulegitdir Ramkumar Ramachandra
2013-04-05 7:07 ` Ramkumar Ramachandra
2013-04-04 18:30 ` [PATCH 7/7] sha1_file: write ref_name to link object Ramkumar Ramachandra
2013-04-05 7:03 ` Ramkumar Ramachandra
2013-04-04 18:40 ` [RFC/PATCH 0/7] Rework git core for native submodules Linus Torvalds
2013-04-04 18:52 ` Ramkumar Ramachandra
2013-04-04 19:04 ` Linus Torvalds
2013-04-04 19:17 ` Junio C Hamano
2013-04-04 19:59 ` Ramkumar Ramachandra
2013-04-04 20:28 ` Jens Lehmann
2013-04-04 19:36 ` Ramkumar Ramachandra
2013-04-04 19:44 ` Linus Torvalds
2013-04-04 19:52 ` Ramkumar Ramachandra
2013-04-04 20:08 ` Ramkumar Ramachandra
2013-04-04 20:04 ` Ramkumar Ramachandra
2013-04-05 16:02 ` Linus Torvalds
2013-04-05 16:37 ` Ramkumar Ramachandra
2013-04-04 19:42 ` Ramkumar Ramachandra
2013-04-04 21:20 ` Jens Lehmann
2013-04-04 21:35 ` Ramkumar Ramachandra
2013-04-04 22:13 ` Junio C Hamano
2013-04-04 22:18 ` Ramkumar Ramachandra
2013-04-04 22:26 ` Junio C Hamano
2013-04-04 22:32 ` Ramkumar Ramachandra
2013-04-04 23:08 ` Junio C Hamano
2013-04-04 23:14 ` Ramkumar Ramachandra
2013-04-05 17:07 ` Junio C Hamano
2013-04-05 17:23 ` Ramkumar Ramachandra
2013-04-05 6:53 ` Ramkumar Ramachandra
2013-04-04 18:47 ` Jonathan Nieder
2013-04-04 18:58 ` Jonathan Nieder
2013-04-04 18:55 ` Jonathan Nieder
2013-04-08 10:10 ` Duy Nguyen
2013-04-08 10:26 ` [PATCH] t3700 (add): add failing test for add with submodules Ramkumar Ramachandra
2013-04-08 11:04 ` Duy Nguyen
2013-04-08 15:07 ` Junio C Hamano
2013-04-08 21:30 ` Jeff King
2013-04-08 22:03 ` Junio C Hamano
2013-04-08 22:07 ` Jeff King
2013-04-09 9:19 ` Ramkumar Ramachandra
2013-04-09 9:21 ` [PATCH 0/2] Fix git " Ramkumar Ramachandra
2013-04-09 9:21 ` [PATCH 1/2] t3700 (add): add two tests for testing " Ramkumar Ramachandra
2013-04-09 9:21 ` [PATCH 2/2] add: refuse to add paths beyond repository boundaries Ramkumar Ramachandra
2013-04-09 16:50 ` Jeff King
2013-04-09 17:09 ` Junio C Hamano
2013-04-09 17:34 ` Junio C Hamano
2013-04-09 17:41 ` Ramkumar Ramachandra
2013-04-09 17:54 ` Junio C Hamano
2013-04-09 18:17 ` Ramkumar Ramachandra
2013-04-09 18:50 ` Junio C Hamano
2013-04-09 19:09 ` Junio C Hamano
2013-04-09 20:31 ` Junio C Hamano
2013-04-10 13:25 ` Ramkumar Ramachandra
2013-04-10 16:25 ` Junio C Hamano
2013-04-09 17:41 ` Junio C Hamano
2013-04-09 17:56 ` Ramkumar Ramachandra
2013-04-09 18:48 ` Junio C Hamano
2013-04-10 13:38 ` Ramkumar Ramachandra
2013-04-09 18:32 ` Jakub Narębski
2013-04-09 18:51 ` Junio C Hamano
2013-04-09 18:58 ` Jakub Narębski
2013-04-09 19:10 ` Junio C Hamano
2013-04-09 16:27 ` [PATCH] t3700 (add): add failing test for add with submodules Jeff King
2013-04-09 11:43 ` Jakub Narębski
2013-04-09 11:54 ` Ramkumar Ramachandra
2013-04-09 13:49 ` Jakub Narębski
2013-04-06 20:10 ` [RFC/PATCH 0/7] Rework git core for native submodules Ramkumar Ramachandra
2013-04-07 3:31 ` Junio C Hamano
2013-04-07 7:27 ` Ramkumar Ramachandra
2013-04-07 9:00 ` Junio C Hamano
2013-04-07 10:58 ` Ramkumar Ramachandra
2013-04-07 15:51 ` Ramkumar Ramachandra
2013-04-07 16:12 ` John Keeping
2013-04-07 16:42 ` Ramkumar Ramachandra
2013-04-07 17:02 ` John Keeping
2013-04-07 17:22 ` Ramkumar Ramachandra
2013-04-07 17:52 ` John Keeping [this message]
2013-04-07 18:07 ` Ramkumar Ramachandra
2013-04-07 18:21 ` John Keeping
2013-04-07 18:34 ` Jens Lehmann
2013-04-07 18:44 ` Ramkumar Ramachandra
2013-04-07 20:15 ` Jens Lehmann
2013-04-07 20:49 ` Ramkumar Ramachandra
2013-04-07 21:02 ` John Keeping
2013-04-07 21:11 ` Ramkumar Ramachandra
2013-04-07 20:57 ` Ramkumar Ramachandra
2013-04-07 21:23 ` Jonathan Nieder
2013-04-07 21:30 ` Ramkumar Ramachandra
2013-04-08 7:48 ` Jens Lehmann
2013-04-08 8:07 ` Ramkumar Ramachandra
2013-04-08 8:19 ` Jonathan Nieder
2013-04-08 9:08 ` Ramkumar Ramachandra
2013-04-08 10:29 ` Duy Nguyen
2013-04-08 11:06 ` Ramkumar Ramachandra
2013-04-08 11:29 ` Duy Nguyen
2013-04-08 11:53 ` Ramkumar Ramachandra
2013-04-08 15:06 ` Junio C Hamano
2013-04-08 16:08 ` Ramkumar Ramachandra
2013-04-08 18:10 ` Junio C Hamano
2013-04-08 19:03 ` Ramkumar Ramachandra
2013-04-08 19:48 ` Junio C Hamano
2013-04-08 19:54 ` Ramkumar Ramachandra
2013-04-08 20:30 ` Junio C Hamano
2013-04-08 21:03 ` Ramkumar Ramachandra
2013-04-10 7:23 ` Philip Oakley
2013-04-08 21:59 ` Ramkumar Ramachandra
2013-04-09 11:51 ` Jakub Narębski
2013-04-08 11:10 ` Ramkumar Ramachandra
2013-04-08 8:37 ` Jonathan Nieder
2013-04-08 9:14 ` Ramkumar Ramachandra
2013-04-08 14:46 ` Junio C Hamano
2013-04-08 17:12 ` Junio C Hamano
2013-04-17 10:37 ` Duy Nguyen
2013-04-17 11:06 ` Ramkumar Ramachandra
2013-04-17 11:27 ` Duy Nguyen
2013-04-17 11:56 ` Ramkumar Ramachandra
2013-04-17 12:06 ` Duy Nguyen
2013-04-17 12:14 ` Ramkumar Ramachandra
[not found] ` <CALkWK0m9QmZaSDruY=+2F-Kkw+fd6E1TYC TBpVQHRJrzq2VjCQ@mail.gmail.com>
2013-04-17 23:17 ` Philip Oakley
2013-04-18 7:50 ` Ramkumar Ramachandra
2013-04-19 17:08 ` Jens Lehmann
2013-04-17 16:01 ` Junio C Hamano
2013-04-08 20:41 ` Jens Lehmann
2013-04-08 21:36 ` Jeff King
2013-04-07 18:59 ` John Keeping
2013-04-07 19:06 ` Ramkumar Ramachandra
2013-04-07 19:17 ` Ramkumar Ramachandra
2013-04-07 18:37 ` Ramkumar Ramachandra
2013-04-07 18:22 ` Ramkumar Ramachandra
2013-04-07 19:26 ` Ramkumar Ramachandra
[not found] ` <CAP8UFD3i2vc3OSAHRERpiPY7cRjqhkqcBN9hVW0QmMksnCPccw@mail.gmail.com>
2013-04-07 21:24 ` Ramkumar Ramachandra
[not found] ` <CAP8UFD16gwWjE7T75D7kUM-VOXhtZaSRGtEg8fW5kmuKDLTQHQ@mail.gmail.com>
2013-04-08 17:04 ` 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=20130407175210.GI2222@serenity.lan \
--to=john@keeping.me.uk \
--cc=artagnon@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=torvalds@linux-foundation.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.