git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Martin Waitz <tali@admingilde.org>
To: Junio C Hamano <junkio@cox.net>
Cc: skimo@liacs.nl, git@vger.kernel.org
Subject: Re: [RFC] Third round of support for cloning submodules
Date: Mon, 21 May 2007 00:14:55 +0200	[thread overview]
Message-ID: <20070520221455.GN5412@admingilde.org> (raw)
In-Reply-To: <7vhcq7l3ar.fsf@assigned-by-dhcp.cox.net>

[-- Attachment #1: Type: text/plain, Size: 2466 bytes --]

hoi :)

On Sun, May 20, 2007 at 12:10:04PM -0700, Junio C Hamano wrote:
> The more important issue I think is at what point in the
> superproject operation does a recursive checkout in a subproject
> should happen, and how we should do the checkout.

we should really move from our big clone thing to a simple
fetch+checkout wrapper.

And then integrate all the submodule logic into the actual checkout
step where it belongs.

We might also want to expand fetch to also fetch newly reachable
submodule commits (of a configurable subset of modules).

> Issues I can think of offhand are (no way exhaustive):
> 
>  - Do we checkout a branch? if so which one?

At least no off-the-shelf branch from the upstream repository of
the submodule.

To use some special branch allows to use normal git methods in
the submodule, too -- but I haven't been able to convince everybody
yet...  So let's get it to a state where people can play with it
in real projects and let's see.


>  - Do we detach HEAD if the commit named by the superproject
>    tree is not at the tip of the current branch of subproject?
>    do we detach always even if the commit is at the tip?

We must not mess with random upstream branches of the submodule
just because they happen to reference the same tip.
That would be too confusing.
Either use one special branch or detach.

>  - What would we do when the subproject working tree is not
>    clean?

The same as with normal files:
error out if something is changed which conflicts with the requested
update.

When we have a special managed-by-supermodule branch and the submodule
has another branch currently checked out we can entirely ignore this
issue.
This really allows the user to deliberately keep one module in an
unclean state.

>  - How can a user decide which subproject to descend into and
>    which subproject to ignore, and how does git remember the
>    earlier decision made by the user without asking the same
>    again, and how does a user express "now I want to also track
>    that subproject I've ignored so far" and "now I am not
>    interested in following that subproject anymore"?

I'd simply use explicit checkout of a submodule and removal of
the submodule to be a fine way to express the user's wish.
Of course we also need some way to say: populate everything
below "src/target" or similar.  But that is independent from
the rest.

-- 
Martin Waitz

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

  parent reply	other threads:[~2007-05-20 22:15 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-20 18:04 [RFC] Third round of support for cloning submodules skimo
2007-05-20 18:04 ` [PATCH 01/15] Add dump-config skimo
2007-05-20 18:04 ` [PATCH 02/15] git-config: add --remote option for reading config from remote repo skimo
2007-05-20 18:11   ` Frank Lichtenheld
2007-05-20 19:44     ` Sven Verdoolaege
2007-05-20 22:03       ` Frank Lichtenheld
2007-05-20 18:04 ` [PATCH 03/15] http.h: make fill_active_slots a function pointer skimo
2007-05-20 18:04 ` [PATCH 04/15] git-config: read remote config files over HTTP skimo
2007-05-20 18:04 ` [PATCH 05/15] unpack-trees.c: pass cache_entry * to verify_absent rather than just the name skimo
2007-05-20 18:04 ` [PATCH 06/15] git-read-tree: take --submodules option skimo
2007-05-20 21:24   ` Martin Waitz
2007-05-20 21:50     ` Sven Verdoolaege
2007-05-20 18:04 ` [PATCH 07/15] unpack-trees.c: assume submodules are clean skimo
2007-05-20 18:04 ` [PATCH 08/15] Add run_command_v_opt_cd: chdir into a directory before exec skimo
2007-05-20 18:04 ` [PATCH 09/15] entry.c: optionally checkout submodules skimo
2007-05-20 21:18   ` Martin Waitz
2007-05-20 21:51     ` Sven Verdoolaege
2007-05-24 13:29     ` Sven Verdoolaege
2007-05-20 18:04 ` [PATCH 10/15] git-checkout: pass --submodules option to git-read-tree skimo
2007-05-20 18:04 ` [PATCH 11/15] git-read-tree: treat null commit as empty tree skimo
2007-05-20 18:04 ` [PATCH 12/15] git_config: add void * for callback data skimo
2007-05-20 18:04 ` [PATCH 13/15] unpack-trees.c: optionally clone submodules for later checkout skimo
2007-05-20 18:04 ` [PATCH 14/15] entry.c: optionall checkout newly cloned submodules skimo
2007-05-20 18:04 ` [PATCH 15/15] git-clone: add --submodules for cloning submodules skimo
2007-05-20 19:10 ` [RFC] Third round of support " Junio C Hamano
2007-05-20 19:59   ` Sven Verdoolaege
2007-05-20 20:54     ` Alex Riesen
2007-05-20 21:09       ` Sven Verdoolaege
2007-05-20 21:24         ` Alex Riesen
2007-05-20 21:47           ` Sven Verdoolaege
2007-05-20 22:26             ` Alex Riesen
2007-05-21  9:57               ` Sven Verdoolaege
2007-05-21 10:44                 ` Josef Weidendorfer
2007-05-21 11:41                   ` Martin Waitz
2007-05-20 21:40       ` Martin Waitz
2007-05-20 22:24         ` Alex Riesen
2007-05-20 22:55           ` Martin Waitz
2007-05-20 23:02             ` Alex Riesen
2007-05-20 23:12               ` Martin Waitz
2007-05-22 21:54                 ` Alex Riesen
2007-05-24 15:56                   ` Martin Waitz
2007-05-21  0:39     ` Steven Grimm
2007-05-21 10:01       ` Sven Verdoolaege
2007-05-22 21:56       ` Alex Riesen
2007-05-20 22:14   ` Martin Waitz [this message]
2007-05-20 22:58     ` Alex Riesen
2007-05-20 23:36       ` Martin Waitz
2007-05-20 22:52 ` Martin Waitz
2007-05-21  8:54   ` Sven Verdoolaege
2007-05-21 10:07     ` Martin Waitz
2007-05-21 10:14       ` Sven Verdoolaege
2007-05-21 11:34         ` Martin Waitz
2007-05-21 12:19           ` Sven Verdoolaege

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=20070520221455.GN5412@admingilde.org \
    --to=tali@admingilde.org \
    --cc=git@vger.kernel.org \
    --cc=junkio@cox.net \
    --cc=skimo@liacs.nl \
    /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).