Trac Decentral Branching
(draft)
This plan implements functionality into Trac / SVN, which allows developers to participate on code-level with a project, without having access to the main repository.
Development happens on an own branch, which is made publicly available , thus other developers can:
- check-out this branch an verify the changes.
- view the work on the dedicated project-environment (e.g. trac)
The change-log contains only changes made by this developer (or group of developers).
The repository can be synched with the central repository by standard svn-merge operations.
Any committer of the central repository can merge the decentral-branch (or portions of it) to the central repository.
Goals
- Enable collaborative work on a branch location without commit access to the main repository
Requirements
Implementational
- Simplicity, Integrity
- Use original svn, avoid additional tools
Functional
- create (copy original repo to the branch-server location)
- commit (high amounts of incremental development steps)
- synchronize (branch is synchronized with original repo)
- mergeback (branch is merged back to original repo)
Description
- create a branch from the central repository
- checkout-revision should be captured somewhere (COR)
- last-update-revision (LUR) set to COR
- synchronize the branch to the central repository
- merge changes from LUR:HEAD to the branch-repo
- set LUR to HEAD
- mergeback changes back into central repository
Trac
currently, a copy of the central branch must be kept in order to be able to produce difference reports:
http://dev.lazaridis.com/base/intertrac/diff:sync/trac@115:infra/trac-dev@115
Ideally, trac should be able to display a diff report on an external repository:
http://dev.lazaridis.com/base/intertrac/diff:ext/trac@4231:infra/trac-dev@115