Clarification on git namespace

Asked by Juerg Haefliger

After all these years I still haven't fully grokked Launchpad's git repository namespaces :-/

Apologies if this is documented somewhere which I failed to locate.

For illustration purposes, I've managed to created the following personal repos:

1. lp:~juergh/+git/foo
2. lp:~juergh/foo/+git/foo
3. lp:~juergh/ubuntu/+source/foo
4. lp:~juergh/ubuntu/+source/foo/+git/foo
5. lp:~juergh/ubuntu/+source/foo/+git/bar
6. lp:~juergh/ubuntu/+source/bar/+git/foo

4 seems to be an alias for 3 (or the other way around) and map to the same repo.

Can someone shed some light on the differences, the significance of the path components and when to use one vs another? I guess it has to do with project association or something but that's just uneducated speculation on my part :-)

Thanks!

Question information

Language:
English Edit question
Status:
Solved
For:
Launchpad itself Edit question
Assignee:
No assignee Edit question
Solved by:
Ines Almeida
Solved:
Last query:
Last reply:
Revision history for this message
Best Ines Almeida (ines-almeida) said :
#1

Hi Juerg!

Indeed all of those work:
 1. A personal git repo named "foo"
 2. A personal git repo related to project "foo" where the repo is also named "foo"
 3. An alias for 4 (defaults to repo whose name is the source package name)
 4. A personal git repo related to source package "foo" where the repo is also named "foo"
 5. A personal git repo related to source package "foo" where the repo is named "bar"
 6. A personal git repo related to source package "bar" where the repo is named "foo"

Basically, what comes after "+git" is the name of the repo. You can have multiple repositories within the same project/package, e.g.
 - lp:~juergh/ubuntu/+source/foo/+git/foo
 - lp:~juergh/ubuntu/+source/foo/+git/bar

What goes between your username and the repo name, is the object the git repo is associated with:
 1. not associated with any object, just a personal repo
 2. project foo
 3. source package foo
 4. source package foo
 5. source package foo
 6. source package bar

I notice that project foo (https://launchpad.net/foo) is not active, so it might show up as non-existing for these specific scenarios. But you can have a look at for example the Launchpad project:
 - https://code.launchpad.net/launchpad <-- the project
 - https://code.launchpad.net/~ines-almeida/launchpad <-- my personal launchpad repo
 - https://code.launchpad.net/~ines-almeida/launchpad/+git/launchpad <-- also my personal launchpad repo

Here is a link to our documentation that explains the types of repository URLS: https://documentation.ubuntu.com/launchpad/user/explanation/working-with-code/git-hosting/#repository-urls

Revision history for this message
Juerg Haefliger (juergh) said :
#2

Thanks Ines Almeida, that solved my question.