git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [3/4] What's not in 1.5.2 (new topics)

From
Steven Grimm <koreth@midwinter.com>
Date
May 18, 2007, 00:32 UTC
Message-ID
<464CF435.1010405@midwinter.com>
In-Reply-To
<200705180141.06862.Josef.Weidendorfer@gmx.de>

It seems like a lot of the friction here is because people are trying to devise a single mechanism that will handle two distinct cases:

1. The location of a subproject's changed (the "public repository 
relocated to a different host" problem). This is not temporally 
sensitive -- if you check out an old version of the superproject, you 
need to look in the new location for the subproject. A local override 
for the subproject's location will likely still be perfectly valid.
2. The superproject no longer wants to use the same subproject; it wants 
to replace it with something else at the same point in the tree (the 
"version 2 of superproject uses the 2.6 kernel as opposed to the 2.4 
kernel"). This is temporally sensitive -- if you check out an old 
version of the superproject, you want to use the old location for the 
subproject too. A single local override will most likely not be valid 
for both versions.

I think these are fundamentally different operations and it's the desire to fold them into one mechanism that's leading to a lot of the discussion here. Would we simplify things by not conflating them?

For example -- and yes, this is partially a rehash of other people's ideas -- instead of mapping a subproject path directly to revision@URL, instead map it to revision@symbolic name. The symbolic name is then separately mapped to a URL, and it's that symbolic name that can be locally overridden. The mappings of symbolic names to URLs is unversioned; the mapping of subprojects to revision@symbolic is versioned. Local overrides happen at the symbolic->URL mapping.

So you'd have something like
version 1: kernel-src/ -> kernel24
version 2: kernel-src/ -> kernel26
unversioned:
    kernel24 -> git://whatever/2.4
    kernel26 -> git://whatever/2.6
And then locally, the override is:
    kernel24 -> git://myhost/2.4

When version 2 gets pulled down, you start off using the upstream's URL, which you know because you pulled down the new copy of the unversioned symbolic->URL map. Maybe git-pull gives you a warning like, "I see you have some overrides, so you might want to know about this new symbolic name too." With an appropriate option it might even stop before doing anything with the new symbolic name to give you a chance to override.

Maybe that has some problems I'm not seeing, but it seems like adding one more layer of indirection which has different versioning semantics would make this a more tractable problem.

-Steve
Previous: Josef WeidendorferNext: Petr Baudis
Message 21 of 55 in “[0/4] What's not in 1.5.2 (overview)”
  1. Junio C HamanoMay 16, 2007
  2. 1/4 What's not in 1.5.2 (have been cooking in next)Junio C Hamano, May 16, 2007
  3. 2/4 What's not in 1.5.2 (will cook in next)Junio C Hamano, May 16, 2007
  4. 3/4 What's not in 1.5.2 (new topics)Junio C Hamano, May 16, 2007
  5. Andy ParkinsMay 17, 2007
  6. Junio C HamanoMay 17, 2007
  7. Andy ParkinsMay 17, 2007
  8. Alex RiesenMay 17, 2007
  9. Petr BaudisMay 17, 2007
  10. Jeff KingMay 17, 2007
  11. Petr BaudisMay 17, 2007
  12. Jeff KingMay 17, 2007
  13. Petr BaudisMay 17, 2007
  14. Jeff KingMay 17, 2007
  15. Junio C HamanoMay 17, 2007
  16. Jeff KingMay 18, 2007
  17. Junio C HamanoMay 17, 2007
  18. Nicolas PitreMay 17, 2007
  19. Michael S. TsirkinMay 17, 2007
  20. Josef WeidendorferMay 17, 2007
  21. Steven GrimmMay 18, 2007
  22. Petr BaudisMay 18, 2007
  23. Josef WeidendorferMay 18, 2007
  24. Torgil SvenssonMay 19, 2007
  25. Jakub NarebskiMay 18, 2007
  26. Petr BaudisMay 18, 2007
  27. Jakub NarebskiMay 19, 2007
  28. Junio C HamanoMay 18, 2007
  29. Julian PhillipsMay 18, 2007
  30. Junio C HamanoMay 18, 2007
  31. Petr BaudisMay 20, 2007
  32. News reader woes (was: Re: [3/4] What's not in 1.5.2 (new topics))Jakub Narebski, May 25, 2007
  33. Andy ParkinsMay 18, 2007
  34. Josef WeidendorferMay 18, 2007
  35. Andy ParkinsMay 18, 2007
  36. Michael S. TsirkinMay 18, 2007
  37. Josef WeidendorferMay 18, 2007
  38. Michael S. TsirkinMay 18, 2007
  39. Aidan Van DykMay 18, 2007
  40. Michael S. TsirkinMay 18, 2007
  41. Sven VerdoolaegeMay 19, 2007
  42. Jakub NarebskiMay 21, 2007
  43. Junio C HamanoMay 18, 2007
  44. Michael S. TsirkinMay 19, 2007
  45. Junio C HamanoMay 19, 2007
  46. Michael S. TsirkinMay 18, 2007
  47. Andy ParkinsMay 18, 2007
  48. Johannes SixtMay 18, 2007
  49. Michael S. TsirkinMay 18, 2007
  50. Andy ParkinsMay 18, 2007
  51. Steven GrimmMay 19, 2007
  52. Josef WeidendorferMay 19, 2007
  53. 4/4 What's not in 1.5.2 (other bits and pieces)Junio C Hamano, May 16, 2007
  54. Petr BaudisMay 18, 2007
  55. Michael S. TsirkinMay 18, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.