From 75f5c7a89b6a6cf8ba3d2582614bff16c22d2807 Mon Sep 17 00:00:00 2001 From: Michael Meffie Date: Tue, 28 Oct 2008 23:29:31 +0000 Subject: [PATCH] none --- AFSLore/OpenAFSCVSToGitConversion.mdwn | 114 ++++++++++++++++++++++++++++++++- 1 file changed, 113 insertions(+), 1 deletion(-) diff --git a/AFSLore/OpenAFSCVSToGitConversion.mdwn b/AFSLore/OpenAFSCVSToGitConversion.mdwn index cb65a72..feec681 100644 --- a/AFSLore/OpenAFSCVSToGitConversion.mdwn +++ b/AFSLore/OpenAFSCVSToGitConversion.mdwn @@ -1,3 +1,115 @@ -[[OpenAFS]] CVS to git conversion procedure. +# Git Plan: + +## Set up base Repo + +### Prep: + +### Process: + +#### (commit 1) Start from IBM 1.0 + 3.6 docs + +[ + +- (in a tmp directory) cvs -d:pserver:anonymous@cvs.openafs.org:/cvs -z5 export -ropenafs-stable-1\_1\_0 openafs/doc +- Make and change to git\_base directory +- untar openafs-1.0-src.tar.gz +- move tmp ´doc´ folder into git\_base +- untar initial-commit-postapply.tar +- git init +- git add . +- git commit -m "Initial IBM source code import\\rDelta initial-20001103" --author="Transarc <afs@transarc.com>" + +] + +#### (commit 2) Apply license changes + +[ + +- Apply 2.patch +- Cleanup: rm .rej & .orig +- untar 2-postapply.tar +- git commit -m "" --author="Transarc <afs@transarc.com>" + +] + +### Patch Fixup + +- Original codebase had bit errors; tarball used for git base does not have them, remove (most of) these fixes from patchsets + +] + +### Repo Fixup + +[ + +- Resolve issues into commit 3 + - Part of the doc tree was not in the initial import + - README files were missing + - IBM tree has munged tags; cvsps output does not... + - Check in IBM tree to CVS, export -kk and use resulting diff -R to make all Revisions in the tree unmunged +- Store commit 3 diff +- Stash commit 2 +- Reset to commit 1 +- Apply commit 3 diff +- Amend commit 1 +- Reapply commit 2 + +] + +### Issues: + +license changes won´t apply cleanly as initial was from RCS and CVS munged rev vars on checkout + +## Automate patch -> branches + +### Prep: + +### Process: + +- Clone base repo (git clone git\_base git\_working) +- Starting with 3.patch +- Loop: + - Create branch with patch/delta name (git checkout -b) + - Apply patch (git apply --index) + - Commit (-m ´Apply patch X´) + +### Issues: + +## Handle binaries + +### Prep: + +- Find a list of binaries in cvs, search for '^expand\\w+@b|o@' + +### Process: + +- Loop: + - For patch X + - Parse file list from patch X + - If patch has binary files, git check out branch X + - For each binary file, CVS check out listed revision over existing file + - Commit (-m ´Adding binaries´) + +## Merge branches into master branch + +### Prep: + +- Parse patches to make X.msg & X.author + +### Process: + +- Loop: + - Merge branch X into master (git merge --squash) + - Commit with message & author for patch X (git commit) + - ! On failure... stop, and allow for reset +- Push master to origin/master + +## Validate and release + +- Check that checkout of master matches cvs HEAD + +## Handle tags + +- Determine tag->delta relationship -- [[MichaelMeffie]] - 28 Oct 2008 -- 1.9.4