{"thread":{"id":"27081","subject":"git submodule add requires remote","startedAt":"2011-04-13T06:20:23Z","lastAt":"2011-04-13T06:20:23Z","messageCount":1,"participants":["martin f krafft"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"165727","messageId":"20110413062023.GA29119@fishbowl.rw.madduck.net","threadId":"27081","inReplyTo":null,"subject":"git submodule add requires remote","fromName":"martin f krafft","fromEmail":"madduck@madduck.net","sentAt":"2011-04-13T06:20:23Z","receivedAt":"2011-04-13T06:20:23Z","isPatch":false,"sender":{"key":"madduck@madduck.net","avatar":null},"body":"Dear gitsters, dear Lars,\n\nwhile testing some workflows with submodules, we ran into the\nproblem that adding a submodule seems to require a remote \"origin\"\nto be defined, even though that is not really necessary:\n\n  ### subproj setup:\n\n  % GIT_DIR=subproj.git git --bare init\n  Initialized empty Git repository in /tmp/madduck/cdt.ciwkf2/subproj.git/\n  % mkdir subproj && cd subproj\n  % git init && git remote add origin ../subproj.git\n  Initialized empty Git repository in /tmp/madduck/cdt.ciwkf2/subproj/.git/\n  % touch a && git add a && git commit -minitial && git push origin master\n  [master (root-commit) 7f6f6e9] initial\n  0 files changed, 0 insertions(+), 0 deletions(-)\n  create mode 100644 a\n  Counting objects: 3, done.\n  Writing objects: 100% (3/3), 201 bytes, done.\n  Total 3 (delta 0), reused 0 (delta 0)\n  Unpacking objects: 100% (3/3), done.\n  To ../subproj.git\n  * [new branch]      master -> master\n\n  ### test project setup:\n\n  % mkdir ../proj && cd ../proj\n  % git init\n  Initialized empty Git repository in /tmp/madduck/cdt.ciwkf2/proj/.git/\n  % touch a && git add a && git commit -minitial\n  [master (root-commit) aa15bae] initial\n  0 files changed, 0 insertions(+), 0 deletions(-)\n  create mode 100644 a\n\n  ### adding submodule:\n\n  % git submodule add ../subproj.git\n  remote (origin) does not have a url defined in .git/config\n\nThe requirements stems from the resolve_relative_url() function in\ngit-submodule, which assumes that a relative submodule URL is\nrelative to the superproject's default remote URL. This might make\nsense for './' URLs, but not really for '../'. Plus, it breaks the\nnormal assumption that Git accepts relative (filesystem) paths as\nURLs (works for git-clone etc.).\n\nBefore I work out a patch for this, I would be curious to hear your\nthoughts.\n\nThanks,\n\n-- \nmartin | http://madduck.net/ | http://two.sentenc.es/\n \nfighting for peace is like screwing for virginity.\n                                     -- the irish times, washington dc\n \nspamtraps: madduck.bogus@madduck.net\n"}]}