git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: "Ping Yin" <pkufranky@gmail.com>
Cc: "Junio C Hamano" <gitster@pobox.com>,
	"Roman Shaposhnik" <rvs@sun.com>,
	"Avery Pennarun" <apenwarr@gmail.com>,
	stuart.freeman@et.gatech.edu, git@vger.kernel.org
Subject: Re: Intricacies of submodules
Date: Fri, 11 Apr 2008 22:25:48 -0700	[thread overview]
Message-ID: <7vej9blk4j.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <46dff0320804112102t52a60072rc97c772a1e74f597@mail.gmail.com> (Ping Yin's message of "Sat, 12 Apr 2008 12:02:25 +0800")

"Ping Yin" <pkufranky@gmail.com> writes:

>>  After working with the project for a while (i.e. you pull and perhaps push
>>  back or send patches upstream), .gitmodules file changes and it now says
>>  the repository resides at host B.xz because the project relocated.  You
>>  would want the next "git submodule update" to notice that your .git/config
>>  records a URL you derived from git://A.xz/project.git/, and that you have
>>  not seen this new URL git://B.xz/project.git/, and give you a chance to
>>  make adjustments if needed.
>
> I think this should be done if "git submodule update" fails. The
> reason it fails may be different, such as newest commits not pushed
> out and the subproject relocated etc. So it can only given some hints
> with "maybe".
>
> However, how to detect the url has changed in .gitmodules? Compare the
> latest two version of .gitmodules?

That's why I suggested (and Roman seems to have got it, so I do not think
what I wrote was too confusing to be understood) you should record the set
of _all_ URLs you have _seen_ in .git/config.  If the URL in .gitmodules
checked out is included in that set, you do not do anything.  Otherwise
you ask.

I think "git submodule update" is a good place to do that check, but I'd
prefer it be done _before_ it actually goes to the network to start
accessing potentially stale URL.  The old URL may not be defunct but the
project decided not to advertise it to be used for some non-technical
reason (e.g. the site owner asked them not to point at it and instead use
some other mirrors).

> When bug happens, i only care the commit in the index of submodule and
> wheter i can check out the old submodule commit. However, does it
> really matter that what the url of the submodule is?

No.  The discussion was what should _not_ happen when you run "git
submodule update" from that state.  Usually in a steadily advancing
history, you _want_ "git submodule update" to notice that the suggested
remote URL has changed in .gitmodules and give the user a chance to adjust
the URL _before_ it hits the network, but you obviously do not want it to
happen only because you happened to be at a seeked back commit when you
initiated "git submodule update".  In other words, you are agreeing with
me without really reading what I wrote ;-)  It does not matter, and
recording the URLs you have _seen_ (not "the last one you saw", or "the
one you initialized .git/config with") is a way to make sure that the
fixed "git submodule update" agrees with us on that point.

  reply	other threads:[~2008-04-12  5:26 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-31 20:59 Migrating svn to git with heavy use of externals D. Stuart Freeman
2008-04-08 18:07 ` D. Stuart Freeman
2008-04-08 20:06   ` Avery Pennarun
2008-04-08 20:49     ` D. Stuart Freeman
2008-04-08 21:01       ` Avery Pennarun
2008-04-08 22:47         ` D. Stuart Freeman
2008-04-09  3:03         ` Roman Shaposhnik
2008-04-09  3:33           ` Avery Pennarun
2008-04-09  4:39             ` Roman Shaposhnik
2008-04-09  6:34               ` Avery Pennarun
2008-04-09  6:43                 ` Junio C Hamano
2008-04-10  3:43                   ` Intricacies of submodules [was: Migrating svn to git with heavy use of externals] Roman Shaposhnik
2008-04-10  5:53                     ` Intricacies of submodules Junio C Hamano
2008-04-10 20:32                       ` Roman Shaposhnik
2008-04-11  5:20                         ` Junio C Hamano
2008-04-11 16:04                           ` Ping Yin
2008-04-11 22:32                             ` Junio C Hamano
2008-04-12  3:13                               ` Roman Shaposhnik
2008-04-12  5:11                                 ` Junio C Hamano
2008-04-14 19:52                                   ` Roman Shaposhnik
2008-04-15  1:13                                     ` Junio C Hamano
2008-04-15  2:13                                       ` Ping Yin
2008-04-16  3:49                                       ` Roman V. Shaposhnik
2008-04-17 18:09                                         ` Jeremy Maitin-Shepard
2008-04-17 19:06                                           ` Linus Torvalds
2008-04-17 20:04                                             ` Junio C Hamano
     [not found]                                               ` <32541b130804181128j57d76edcsbbd5fb8d4c782ae7@mail.gmail.com>
2008-04-18 18:30                                                 ` Avery Pennarun
2008-04-17 19:50                                           ` Roman V. Shaposhnik
2008-04-17 20:06                                             ` Martin Langhoff
2008-04-17 20:44                                               ` Junio C Hamano
2008-04-17 21:00                                                 ` Sverre Rabbelier
2008-04-17 21:25                                                   ` Martin Langhoff
2008-04-17 21:27                                                     ` Sverre Rabbelier
2008-04-17 21:31                                                       ` Martin Langhoff
2008-04-18  1:41                                                         ` Ping Yin
2008-04-17 22:29                                             ` Dmitry Potapov
2008-04-17 22:32                                             ` Linus Torvalds
2008-04-18  1:48                                               ` Ping Yin
2008-04-18 14:02                                             ` Jakub Narebski
2008-04-12  3:20                               ` Ping Yin
2008-04-14 19:56                           ` Roman Shaposhnik
2008-04-12  4:02                       ` Ping Yin
2008-04-12  5:25                         ` Junio C Hamano [this message]
2008-04-12  6:26                           ` Ping Yin
2008-04-10 16:07                     ` Intricacies of submodules [was: Migrating svn to git with heavy use of externals] Ping Yin
2008-04-10 19:27                       ` Roman Shaposhnik
2008-04-09 19:57                 ` Roman Shaposhnik
2008-04-09 20:27                   ` Avery Pennarun

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=7vej9blk4j.fsf@gitster.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=apenwarr@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=pkufranky@gmail.com \
    --cc=rvs@sun.com \
    --cc=stuart.freeman@et.gatech.edu \
    /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).