Define repositories independently from projects
It is common for multiple projects to use the same repository. When a repository is set up in a parent project, references to and from children work, although no “Repository” link appears in the children’s primary links. I don’t know whether this is supposed to work or not, since the feature request #1657 about this is not resolved.
I think that it would be more interesting if repositories were defined independently from projects. A project would then select the repository it uses from the list of defined repositories. This could also allow for multiple repositories per project.
#5 Updated by Colin Mollenhour about 10 years ago
This sounds like the best all-around solution, better than #779. It solves duplicate commit messages and the whole parent-child-sibling issue. For me the biggest issue is I have multiple git repos by creating dummy projects under the parent project, but then if there is some commit that references an issue of a sibling repository the connection is not made. With svn I could work around this because I would organize the repo around my sub-project layout but with git having multiple repositories is the only way to control access to specific submodules.
#6 Updated by Andy Bolstridge about 10 years ago
I'm not convinced. While it does sound 'clean' to refer to repositories separately, I think most projects will still use unique repositories themselves. Ie, the code for each project does not reside in the same place, either because they are in distinct repositories, or in distinct sub-sections of a single repo.
As a result, we'd end up defining repository links in one place, only to refer to each in the projects - the same could be achieved by placing the repo links directly in the project.
This does not mean that we could take all the repo links for all projects and have them displayed in a report elsewhere that allows the admin to change them (eg if a repo moves).
#7 Updated by William Baum about 10 years ago
I really like this idea, and actually considered writing up something similar myself.
I don't see it as inconsistent with #779. It would be great to have available repositories and associate them with projects as need be.. Multiple repositories per project and multiple projects per repository.
Colin, the cross-project revision references thing is easy.. See #3087
#8 Updated by Pedro Gutierrez about 10 years ago
I like the idea very much. It would make our life simpler and more flexible.
Mainly because our problem is not that we need multiple repositories for a project, but the other way around, i.e. we'd need multiple projects per repository.
So I'd prefer this solution to the one proposed in #779 . However,I see a number of open issues:
Issue1: Any suggestion on how to grant access to the repositories?The easiest way, I'd say, would be that repositories had a list of associated projects.
And keep the rest as it is at the moment, i.e. the access to the repository granted at role level.
So if I want to push a change to a repository I'd need:
- to be involved in a project with a role that provides access to the repository
- that the project itself be associated to that repository
Issue2: If I'm involved in two projects (with the appriate role). And both projects are sharing a repository how do I associate each commit with the project?
#10 Updated by R. Steve McKown over 8 years ago
This might greatly help larger team use of redmine. We have about a dozen shared code git repos, used by several dozen unique applications, each of which is built from its own application level git repo and git submodule like links to the relevant shared git repos. Since we develop apps for customers, the number of apps is growing, and the feature set made available by the shared code is also growing. It's a massive N:N relationship between app code and shared code.
We want to enter feature and defect issues against the project that triggers the issue. But our shared code base is getting so comprehensive now that about half of any project's issues end up generating commits against shared code. We don't want to use #779 to attach the shared repos to all the relevant projects, as this would result in massive commit data duplication in redmine. The concept of this #9703 would look to solve this challenge for us.
Edit: I just found the global setting "Allow issues of all the other projects to be referenced and fixed". Enabling this checkbox seems to be a good solution to use issue-commit relations in our shop.
#11 Updated by Bruno Medeiros over 8 years ago
R. Steve McKown, don't you have a separated redmine project for each shared code library (repo)?
I have a similar setup of yours, but I create a project for each library (shared code repo), and every time a new commit is needed on the shared code, I create a new issue on the specific project of the shared code.
PS.: I still would like to see this ticket implemented, but not for this specific case.
#14 Updated by Tolga Uzun 4 months ago
We are using a main reposityory for a product and managing the different versions of the project in the same repository but differentiating in folder hierarchy but not at root level, inside other folders (literature, design etc and than the version folders). And also there are different projects in Redmine that is used to track the issues. This way, I have to add the main repository to all of the parent and child projects that causes fetching all repository changesets to the redmine database multiple times which takes enormous time for a big old repository.
I think this feature would be very useful and the solution is already provided: Just make the repositories independent of the projects and implement a relation between them.
By the way, I am new using the repository module so I may be wrong about the solution since I only use it for listing the changesets and relating them with the issues.
In short: +1