From Fedora Project Wiki

Revision as of 02:03, 17 December 2009 by Jkeating (talk | contribs) (Work in progress, gotta eat dinner.)


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

  1. CVS
  2. git
  3. fedpkg
  4. Koji
  5. 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:

  1. One git repo per package
  2. Development (rawhide) happens on origin/master
  3. 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.