git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Andy Parkins <andyparkins@gmail.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <junkio@cox.net>
Subject: Re: [3/4] What's not in 1.5.2 (new topics)
Date: Thu, 17 May 2007 08:51:25 +0100	[thread overview]
Message-ID: <200705170851.26548.andyparkins@gmail.com> (raw)
In-Reply-To: <7v4pmcauu3.fsf@assigned-by-dhcp.cox.net>

On Thursday 2007 May 17, Junio C Hamano wrote:

> I think that depends _WHY_ the URL recorded .gitmodules are
> updated.  It would perfectly be reasonable for release #1 of an
> appliance project to bind linux 2.4 tree at kernel/ subdirectory
> while release #2 source to have 2.6 one; they come from two
> different repository URLs.  When you seek the superproject back
> to release #1, you would still want to fetch from 2.4 upstream
> if you are updating.

That's a very good point; I hadn't considered that there was a case for 
recording a change.

> What I was "handwaving" (or "envisioning") was to have something
> like this in .gitmodules:

Sorry, "handwaving" was a bit rude - I certainly didn't mean that you weren't 
supplying sufficient detail for the circumstance; I meant that in the sense 
of the tricky bits being papered over with user overrides and questions about 
which URL to /really/ use.  The fact that you even felt it necessary to 
mention those overrides signals, I think, that something is wrong.

> 	[subproject "kernel/"]
>         	URL = git://git.kernel.org/pub/linux-2.4.git
>
> (or 2.6, depending on the revision of the superproject) and per
> repository configuration would maps this with these two entries:

So now - running with your example - I'm in a project with a 2.6 URL 
in .gitmodules and config; now I check out a past revision.  .gitmodules is 
updated to show the URL at that time (2.4) - what happens to config, which 
must have higher precedence?  Am I meant to update that myself?  So, as I hop 
around between branches you expect that I will be updating the config file 
for each checkout?

> 	[subproject "git://git.kernel.org/pub/linux-2.4.git"]
>         	URL = http://www.kernel.org/pub/linux-2.4.git
>
> 	[subproject "git://git.kernel.org/pub/linux-2.6.git"]
>         	URL = http://www.kernel.org/pub/linux-2.6.git

Now this part I love.  _That_ is a proper solution.  To me though, these are a 
completely different category from the [subproject] above.  I think that 
should be highlighted with a different section name like "[urlmap]".
     
> The intent is
>
> 	(1) "kernel/" directory is found to be a gitlink in the
>             tree/index; .gitmodules is consulted to find the
>             "URL", which is just a handle and the initial hint

In which case that [subproject "kernel/"] section is not needed (I think it 
would be better to simply say "URL not found for submodule kernel/" or 
something if there is no .gitmodules rather than supplying that override).

> 	(2) That "initial hint" is used to look up the
>             subproject entry from the configuration, to find the
>             "real" URL that is used by this repository

Yes.  Excellent; the "hint" now becomes a lookup key into the url mappings.

> which hopefully is already answered by the above handwaving ;-).

Absolutely.  I'm very impressed.  It solves both the temporal and spatial 
changes problem because one can remap every URL that was ever used in the 
history of the .gitmodules file if one wanted.

> in your .git/config.  After the repository migrates to
> git.sf.net, you would update that existing entry and also add
> another entry, so that .git/config would have these two entries:
>
> 	[subproject "git://git.or.cz/sub.git"]
>         	URL = git://git.sf.net/sub.git
>
> 	[subproject "git://git.sf.net/sub.git"]
>         	URL = git://git.sf.net/sub.git

I don't suppose the second one is needed; wouldn't the default be $key = $url, 
when no override is found?

This also raises the point that these mappings would probably be 
order-dependent; because it may be that I want to do:

  [subproject "git://git.or.cz/sub.git"]
    URL = git://git.sf.net/sub.git

  [subproject "git://git.sf.net/sub.git"]
    URL = /home/andyp/git/mycopyofsub.git

In conclusion: I think that's a first class solution to the problem (and 
probably what you had in mind all along, and me screaming around wasn't 
helpful :-)).



Andy
-- 
Dr Andy Parkins, M Eng (hons), MIET
andyparkins@gmail.com

  reply	other threads:[~2007-05-17  7:51 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-16 22:47 [0/4] What's not in 1.5.2 (overview) Junio C Hamano
2007-05-16 22:47 ` [1/4] What's not in 1.5.2 (have been cooking in next) Junio C Hamano
2007-05-16 22:47 ` [2/4] What's not in 1.5.2 (will cook " Junio C Hamano
2007-05-16 22:47 ` [3/4] What's not in 1.5.2 (new topics) Junio C Hamano
2007-05-17  4:39   ` Andy Parkins
2007-05-17  5:21     ` Junio C Hamano
2007-05-17  7:51       ` Andy Parkins [this message]
2007-05-17 11:02       ` Alex Riesen
2007-05-17 12:46         ` Petr Baudis
2007-05-17 13:46           ` Jeff King
2007-05-17 16:10             ` Petr Baudis
2007-05-17 16:25               ` Jeff King
2007-05-17 17:30                 ` Petr Baudis
2007-05-17 17:35                   ` Jeff King
2007-05-17 18:49             ` Junio C Hamano
2007-05-18 12:58               ` Jeff King
2007-05-17 18:47         ` Junio C Hamano
2007-05-17 13:45       ` Nicolas Pitre
2007-05-17 21:58       ` Michael S. Tsirkin
2007-05-17 23:41         ` Josef Weidendorfer
2007-05-18  0:32           ` Steven Grimm
2007-05-18  4:50             ` Petr Baudis
2007-05-18  9:18               ` Josef Weidendorfer
2007-05-19  0:56                 ` Torgil Svensson
2007-05-18 12:00               ` Jakub Narebski
2007-05-18 12:41                 ` Petr Baudis
2007-05-19 16:38                   ` Jakub Narebski
2007-05-18 18:37                 ` Junio C Hamano
2007-05-18 18:40                   ` Julian Phillips
2007-05-18 18:45                     ` Junio C Hamano
2007-05-20  0:16                       ` Petr Baudis
2007-05-25  9:55                         ` News reader woes (was: Re: [3/4] What's not in 1.5.2 (new topics)) Jakub Narebski
2007-05-18  7:57           ` [3/4] What's not in 1.5.2 (new topics) Andy Parkins
2007-05-18  8:43             ` Josef Weidendorfer
2007-05-18  9:21               ` Andy Parkins
2007-05-18 11:08                 ` Michael S. Tsirkin
2007-05-18 12:27                   ` Josef Weidendorfer
2007-05-18 12:46                     ` Michael S. Tsirkin
2007-05-18 15:06                   ` Aidan Van Dyk
2007-05-18 15:31                     ` Michael S. Tsirkin
2007-05-19 12:50                   ` Sven Verdoolaege
2007-05-21  1:10                     ` Jakub Narebski
2007-05-18 17:00               ` Junio C Hamano
2007-05-19 18:12                 ` Michael S. Tsirkin
2007-05-19 19:56                   ` Junio C Hamano
2007-05-18  8:57             ` Michael S. Tsirkin
2007-05-18  9:40               ` Andy Parkins
2007-05-18 10:16                 ` Johannes Sixt
2007-05-18 11:22                 ` Michael S. Tsirkin
2007-05-18 12:36                   ` Andy Parkins
2007-05-19  1:02             ` Steven Grimm
2007-05-19 16:55               ` Josef Weidendorfer
     [not found]     ` <200705181524.40705.Josef.Weidendorfer@gmx.de>
     [not found]       ` <20070518133922.GK4708@mellanox.co.il>
     [not found]         ` <200705181751.15435.Josef.Weidendorfer@gmx.de>
2007-05-18 16:08           ` Petr Baudis
2007-05-18 16:21             ` Michael S. Tsirkin
2007-05-16 22:47 ` [4/4] What's not in 1.5.2 (other bits and pieces) Junio C Hamano

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200705170851.26548.andyparkins@gmail.com \
    --to=andyparkins@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=junkio@cox.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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).