+2

GitLab: Show full namespaces in "GitLab Projects" window

Andrei Rogov 6 years ago updated 6 years ago 1

GitLab provides functionality for creating nested groups of projects (subgroups).

Such subgroups correspond to multi-level namespaces.

In its current version (18.2 RC 2), SmartGit recognizes only the top-level namespace.

So, if "Project" is in "mygitlab.com/Group0/SubGroupA/Project.git", its "Namespace" in the window "GitLab Projects" will read: "Group0".

Instead, for the purpose of structure, I propose the namespace should read the full name of the namespace: "Group0/SubGroupA".

Otherwise, a different project, with the same name, in the same top-level group "Group0", but in a different subgroup "SubGroupB",

will not be distinguishable from the first one!

Compare:

Project LocationNameNamespace (now)Namespace (proposed)
mygitlab.com/Group0/SubGroupA/Project.git Project Group0 Group0/SubGroupA
mygitlab.com/Group0/SubGroupB/Project.git Project Group0 Group0/SubGroupB

That's exactly the awkward situation my team and I have run into recently.

Essentially, this means I can't use GitLab subgroups and create projects of the same name without running into confusion with SmartGit.

I hope I am not alone looking for the solution!

---

NB

This situation is not as farfetched as it may seem at first.

My team has been developing an embedded hardware product series S, which includes a number of separate hardware units (modules) M1, M2, M3,..., MN.

In terms of GitLab, each module is in a separate project of the same name. All modules make up the series - subgroup "S" of some other group.

Recently, series S is being completely redesigned and upgraded, both hardware- and embedded software-wise. At the same time, we can't abandon the old series S.

Therefore, we create a separate subgroup "S-New", with separate projects for redeveloped modules.

However, names of the modules should not change: customers are conservative with the modules names, because each unit name means a very specific industrial application area.

And here we are...

By the way, in SmartGit older version (18.1.x) the situation was "inversed": "Namespace" showed only the bottom-level group (SubGroupA/SubGroupB) in the example above.