Feature #9703

Define repositories independently from projects

Added by Hugues De Keyzer over 5 years ago. Updated about 1 year ago.

Status:NewStart date:
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:SCM
Target version:-
Resolution:

Description

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.


Related issues

Related to Redmine - Feature #779: Multiple SCM per project Closed 2008-03-04
Related to Redmine - Patch #9359: invert project <-> repository relationship New 2011-09-30
Related to Redmine - Feature #23079: Same Repository to differents projects Closed

History

#1 Updated by Hugues De Keyzer over 5 years ago

The subject of this feature request should be “Define repositories independently from projects”.

#2 Updated by Etienne Massip over 5 years ago

  • Subject changed from Define repositories indepently from projects to Define repositories independently from projects
  • Category set to SCM

I think it's a dupe too.

#3 Updated by Hugues De Keyzer over 5 years ago

The following issues are related to this one, but I wasn’t able to find one proposing a similar solution: #779, #1657, #2255, #3087, #3169, #3346, #3687.

#4 Updated by Mischa The Evil over 5 years ago

Hugues De Keyzer wrote:

The following issues are related to this one, but I wasn’t able to find one proposing a similar solution: #779, #1657, #2255, #3087, #3169, #3346, #3687.

Indeed. I've added a relation to #779.

#5 Updated by Colin Mollenhour over 5 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 over 5 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 over 5 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 over 5 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?

#9 Updated by Holger Winkelmann about 5 years ago

We also suggest to have repos independently of projects and assign them to one or more projects,

#10 Updated by R. Steve McKown about 4 years ago

+1

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 about 4 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.

#12 Updated by Zer Guz about 1 year ago

+1. In our company we have many repository modules that are used in multiple projects. It will help if a repository can be associated with multiple projects.

#13 Updated by Toshi MARUYAMA about 1 year ago

  • Related to Feature #23079: Same Repository to differents projects added

Also available in: Atom PDF