CVStoGit
From RTEMSWiki
|
|---|
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
- 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.
| 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
- 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.
- Update the web site to reference git and not CVS.
- Update the project's documentation to reference git and not CVS.
- Create a tar file of the CVS repository and make available as an http/ftp download
- 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.