Repository aliases to help create logical groups for multiple projects.

Lance Saleme 3 years ago updated 3 years ago 1

When there are multiple projects that share common code repositories, but also have unique component repositories, it would be helpful to create a project Group with an alias (single or multiple) to a shared repository. The logical grouping of the repositories under a given project would simply mass-pulls and status checks, but keep a single cloned instance of any shared repositories.

Do I understand you correctly, that you want to add the same repository (= directory) to different repository groups? That won't be possible because we maintain a set of directories.

Yes, I understand... that fact is respected, but not limiting when/if one could add an alias. You have a single true instance of the repo and directories, but can create a logical reference to it that simply allows for project based group organization. Maybe a picture is helpful:

Project A Group

  • Common Code X Repo (original)
  • Common Code Y Repo (original)
  • Special Code A Repo

Project B Group

  • Common Code X Repo (alias)
  • Special Code B Repo

Project C Group

  • Common Code Y Repo (alias)
  • Special Code C Repo

It is then possible to select a given project group, open all the contained repos, and focus there for the needed work. Changes to a shared code repo should be seen in the original and all alias instances so there is no confusion and apparent divergence of code. One minor expected compromise is that any shared code repo alias would point to the original's declared branch, but I figured that was obvious. This is really just a UI idea inside the SmartGit app to visually group repos into project groups... not a request for any magical GIT repo logic on the server side. :)

Intuit has multiple apps in development at any given time and we try to share code where possible. Keeping a group view onto any given app with all it's shared repos is very helpful for development, but isn't apparently possible (visually) in SmartGit currently. Hence the 'suggested idea'. :)