Overview
This proposal concerns the desire to replace Fedora's package source control, currently based on CVS, with git, and to improve the developer workflow at the same time.
Problem Space
Current package source control is in CVS, and designed in a way that can make the developer's life difficult. See Infrastructure/VersionControl#Current_Pain_Points for a list of current pain points with our package source control. See also Jesse Keating's FUDCon presentation on the issue.
Proposed Solution
We propose to convert the current package source control repositories into git format, turning the CVS release subdirs into git branches. We also propose to replace the Make and common/ dir system with a userland utility.
Scope
- CVS
- git
- fedpkg
- Koji
- Wiki Pages
CVS
All available history from Fedora dist-cvs will need to be imported. Currently we are planning to use parsecvs in order to import the history. This requires read access to the ",V" files which live on the CVS server. CVS commits must be disabled prior to the final import run to prevent any lost changes.
git
Git is where the CVS history will wind up. As mentioned, parsecvs will be used to get content into the git repo. The layout of the git repos will be:
- One git repo per package
- Development (rawhide) happens on origin/master
- Remote branches for each Fedora/EPEL release (F-12, F-11, EL-5...)
Discussion Points
Comments?
To leave a comment, use the Talk page for this proposal.