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

Re: [PATCH 2/2] submodule: fix handling of supermodules with relative origin URLs

From
Jon Seymour <jon.seymour@gmail.com>
Date
May 19, 2012, 23:45 UTC
Message-ID
<CAH3Anrrq5+MgGMFn89zFaaeyRkcZ7d+PHKfpVhJhdt2dNpWZoQ@mail.gmail.com>
In-Reply-To
<CAH3AnrrxgT1OQe-K2A91XfMLSd2WGvJ5CzyNR4tRqvYfp4wgQg@mail.gmail.com>
On Sun, May 20, 2012 at 9:10 AM, Jon Seymour <jon.seymour@gmail.com> wrote:
Show 21 quoted lines
> On Sun, May 20, 2012 at 8:51 AM, Jon Seymour <jon.seymour@gmail.com> wrote:
>> On Sun, May 20, 2012 at 4:56 AM, Jens Lehmann <Jens.Lehmann@web.de> wrote:
>>> Am 19.05.2012 06:40, schrieb Jon Seymour:
>> I noticed one relative case that is not handled properly yet, but
>> there is a workaround. If the superproject's origin URL is of the
>> form: foo/bar (a case I actually have myself for reasons I can explain
>> if you want me to), then the correct rule doesn't get matched by
>> .*/*). The workaround is for the user to change foo/bar style origin
>> URLs to ./foo/bar.
>>
>> Let me know if I should fix this case now too.
>
> I think this expression:
>
>    remoteurl=$(echo "remoteurl" | sed "s|^[^/][^:]*\$|./&|" )
>    remoteurl=${remoteurl%/}
>
> would normalize remoteurl correctly for the foo/bar case and not any other.
>
> I'd also need to add at least one new test (or do I actually need 3?),
> of course.
Ok. I have a version that implements this fix:
        url="$1"
+       remoteurl=$(echo "$remoteurl" | sed "s|^[^/][^:]*\$|./&|")
        remoteurl=${remoteurl%/}
and...
+                       .*/*)
+                               up_path="$(echo "$2" | sed "s/[^/]*/../g")"
+                               remoteurl=${remoteurl#./}
+                               remoteurl="${up_path%/}/${remoteurl%/*}"
+                               ;;

with a single test that demonstrates that it works. The additional #./ tweak is so that submodule URLs end up like:

   ../foo/sub
instead of:
   ../foo/./sub
jon.
Previous: Jon SeymourNext: Jens Lehmann
Message 6 of 10 in “submodule: add tests for add,sync,init in presence of relative super origin URL”
  1. 1/2 submodule: add tests for add,sync,init in presence of relative super origin URLJon Seymour, May 19, 2012
  2. 2/2 submodule: fix handling of supermodules with relative origin URLsJon Seymour, May 19, 2012
  3. Jens LehmannMay 19, 2012
  4. Jon SeymourMay 19, 2012
  5. Jon SeymourMay 19, 2012
  6. Jon SeymourMay 19, 2012
  7. Jens LehmannMay 20, 2012
  8. Jon SeymourMay 20, 2012
  9. Junio C HamanoMay 20, 2012
  10. Consistently use "superproject" instead of "supermodule"Jens Lehmann, May 20, 2012

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.