CVStoGit

From RTEMSWiki
Jump to: navigation, search

Contents

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.

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


Procedure

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

Conversion

  1. Use cvs2git to convert the repository. See below for the cvs->git username map.
  2. Check log file for any errors, the conversion log(s) for each repository will be placed on the FTP.
  3. 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

  1. Remove any extraneous branches or tags.
  2. rename tags/branches to normalise names.
  3. sign tags using PGP.


User Map

The following is the cvs->git name map.

CVS Username Git Name Git Email
ccj Chris Johns hidden
charles Charles Phillips hidden
ericn Eric Norum hidden
gregmenke Greg Menke hidden
humph Glenn Humphrey hidden
jennifer Jennifer Averett hidden
jmj Mark Johannes hidden
joel Joel Sherrill hidden
jtm Jay Monkman hidden
loki Philippe Simons hidden
ralf Ralf Corsepius hidden
richard Richard Campbell hidden
sh Sebastian Huber hidden
strauman Till Straumann hidden
thomas Thomas Doerfler hidden
wade Wade A Smith hidden

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

  1. Convert all repositories to Git
  2. 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.
  3. Publish the results to http://www.rtems.org/ftp/pub/rtems/people/chrisj/git/.

Phase 2

  1. 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.
  2. Lock down git.rtems.org to have restricted root access (Joel, Jeff, and Chris (Asian support hours)).
  3. Install required components to support the git features needed (Amar to provide list to Jeff and Chris).
  4. Create restricted accounts for those with git write privileges.
  5. Load a converted test git repository for testing.
  6. Announce on rtems-users public access to the test repository.
  7. Wait for feedback, making any changes necessary.

Phase 3

  1. Make CVS repository read-only. (All commits disabled)
  2. Create GIT repository and load onto git.rtems.org.
  3. Update the web site to reference git and not CVS.
  4. Update the project's documentation to reference git and not CVS.
  5. Create a tar file of the CVS repository and make available as an http/ftp download
  6. Disable the CVS server access and the web interface.

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.

* http://gitready.com/ - an excellent resource from beginner to very advanced.
* http://progit.org/book/ - Covers git basics and some advanced features. Includes some useful workflow examples.
* http://gitref.org/ - Fast and simple reference for the most used git commands. 

Personal tools
Namespaces

Variants
Actions
Navigation
Gedare's Special Help
Toolbox