wiki:Projects/CVStoGit

Version 15 (modified by ChrisJohns, on 09/05/11 at 04:05:13) (diff)

/* Public Access */

CVStoGit

CVS to Git Conversion

The following page details how we will convert from CVS to Git, it is meant as both a procedure to follow as well as a public record of what was done.

Repositories

This is a list of repositories that will be converted from CVS to Git.

{|border="1" cellpadding="3"

|CVS Repo |ada-examples |autotools-example |bare-bsp-hello |class-examples |dot-graphics |examples |examples-v2 |fss |gnucross-scripts |libbsdport |mdp-1-9a5 |multiio |network-demos |ntp-4.1.1a-rtems |osmonweb |pr-tests |psim-tests |repo-conf |rpm-scripts-odd |rtems |rtems-addon-packages |rtems-buildsys |rtems-eclipse-plug-in |rtems-esh |rtems-graphics-toolkit |rtems-plans |rtems-port |rtems-schedsim |rtems-testing |rtems-tools |scripts |wwwrtems
Convert?Notes
yes
no
?
noSuperceded by Examples-v2
no
noSuperceded by Examples-v2
yes
noFile System Simulator
noNon-rtems cross compiling scripts
yes
no
yesNice PC Multi IO board driver.
yes
no
yes
noSuperceded by Examples-v2
noSuperceded by Examples-v2
?
no
yes
yes
yesRalf RPM infrastructure
yes
no
yes
noIdea needs revisiting
no
yes
yesChris has big changes.
?
no
noPre-Drupal website.

|}

Procedure

The following details the procedures that will take place for each repository conversion.

Conversion

# Use cvs2git to convert the repository. See below for the cvs->git username map. # Check log file for any errors, the conversion log(s) for each repository will be placed on the FTP. # Run a script that will checkout each CVS and Git branch to compare the two ensuring no differences, these logs will be placed on the FTP As well.

Post

# Remove any extraneous branches or tags. # rename tags/branches to normalise names. # sign tags using PGP.

User Map

The following is the cvs->git name map. {|border="1" cellpadding="3"

|CVS Username |ccj |charles |ericn |gregmenke |humph |jennifer |jmj |joel |jtm |loki |ralf |richard |sh |strauman |thomas |wade
Git NameGit Email
Chris Johnshidden
Charles Phillipshidden
Eric Norumhidden
Greg Menkehidden
Glenn Humphreyhidden
Jennifer Averetthidden
Mark Johanneshidden
Joel Sherrillhidden
Jay Monkmanhidden
Philippe Simonshidden
Ralf Corsepiushidden
Richard Campbellhidden
Sebastian Huberhidden
Till Straumannhidden
Thomas Dörflerhidden
Wade A Smithhidden

|}

Transition

The transition will be completed in two main steps, the first is the conversion phase, the second a "transition" phase for developer feedback.

With luck the entire process will take less than two weeks.

Phase 1

# Convert all repositories to Git # Test conversion using a script to check differences between a CVS checkout vs a GIT checkout. The branches and tags tested is taken from the converted git repository. # Publish the results to http://www.rtems.org/ftp/pub/rtems/people/chrisj/git/.

Phase 2

# Set up a dedicated server (rtbf64d) as a git server moving it to the DMZ and mapping to the public address of git.rtems.org. # Lock down git.rtems.org to have restricted root access (Joel, Jeff, and Chris (Asian support hours)). # Install required components to support the git features needed (Amar to provide list to Jeff and Chris). # Create restricted accounts for those with git write privileges. # Load a converted test git repository for testing. # Announce on rtems-users public access to the test repository. # Wait for feedback, making any changes necessary.

Phase 3

# Make CVS repository read-only. (All commits disabled) # Create GIT repository and load onto git.rtems.org.

Backups

GIT is a distributed version control so back up will be performed using a cron on a machine in the RTEMS lab that is backed up.

Public Access

Public access will come from git.rtems.org with cgit as a web interface.

Git

Links to site with good Git information.