One of the advantages of older version control systems such as CVS and SVN in enterprise development is that anyone can connect to source control and see all the projects that the company has. This can make it easier to get a high level view of what kid of development is happening outside your sprint and also keeps everything in one place and easy to find.
However, distributed version control systems (Git, specifically) use the repository as their base unit. They work best with one project (or several closely related projects) per repository. This makes repository management more difficult in most enterprise environments where it is not unusual to have more than 25-50 projects to support. As far as I have been able to determine, you have to keep a list somewhere else of all the repos you have. There is software available, like GitHub, that help, but that still is an extra step beyond a single connection string and listing the contents of the repository.
What is the best way to deal with the complexity of multiple repositories?
5 Answers 5
You may create your a kind of your own Github or Gitorious
Information how you can do it can be found at Stackoverflow: Is there a Github clone that I can run on my own server?
-
Gitorious is a great piece of software, I use it all the time in a local private setup and it is awesome for what you are trying to do!user7519– user75192012年06月19日 16:47:43 +00:00Commented Jun 19, 2012 at 16:47
Pro Git, the completely free book endorsed on Git's homepage explains very well how to setup a central server for managing multiple Git repositories.
http://git-scm.com/book/en/Git-on-the-Server-Gitosis
This is section 4.7 in chapter 4, I think it is a good match for your use case.
I use gitolite as far as repository management. This gives you the ability to manage each repository on an individual level down to the branch level very easily.
As far as being able to see all of the repositories at once I know there are solutions for that but I have never had the need for it.
-
We use gitolite, and it allows us to ssh into an account on the server and automatically list all of the repostiories we have access to, as well as what permissions we have for them.Chris Pitman– Chris Pitman2012年06月19日 23:44:15 +00:00Commented Jun 19, 2012 at 23:44
If you are looking for a governable repository management system, try RhodeCode. It has support for forking, LDAP/AD integration, code reviews and pull-requests (coming soon).
You should take a tool to manage your repositories as units. Besides gitosis and Gitolite, there's also excellent Gitlab, looking like github.
If you need several repos to build your software, Google, has depot_tools for that, it allows you to pull from different repositories. In simpler cases you can, probably, get by using git submodules. Having a code review in a single place is also a good thing, Facebook's Phabricator allows that.
Explore related questions
See similar questions with these tags.