aboutsummaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authorBrian Harring <ferringb@google.com>2012-10-14 02:57:32 -0700
committerBrian Harring <ferringb@google.com>2012-10-16 13:28:49 -0700
commit09d374560a6dc0d364668264fe2640ffc6e193d6 (patch)
tree476cf2e7fc7a7aba3eade27b595a58ed1c89c134 /README
parentadd usable script (diff)
downloadgit-conversion-tools-09d374560a6dc0d364668264fe2640ffc6e193d6.tar.gz
git-conversion-tools-09d374560a6dc0d364668264fe2640ffc6e193d6.tar.bz2
git-conversion-tools-09d374560a6dc0d364668264fe2640ffc6e193d6.zip
Ongoing mangling
Diffstat (limited to 'README')
-rw-r--r--README43
1 files changed, 43 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..c56f068
--- /dev/null
+++ b/README
@@ -0,0 +1,43 @@
+Note; this is raw, and likes to dump things in cwd- logs namely.
+
+To run it, first get yourself a copy of gentoo-x86 CVS; place that in
+cvs-repo in this directory- this can be a partial copy of CVS, or full-
+that said, it needs to conform to thus:
+
+$(pwd)/cvs-repo/CVSROOT
+$(pwd)/cvs-repo/gentoo-x86/*
+
+From there, ./script.sh is your main point of entry; it'll process that,
+going parallel, using $(pwd)/output for temp space- it's suggested that
+be tmpfs (much like cvs-repo).
+
+As each category/directory/component is finished, a git repo is generated,
+some basic blob rewrites are done ($Header related). Two core directories
+will exist in each; cvs2svn-tmp (which holds the fast-import data w/in), and
+git; a recomposed bare git repository of that slice of gentoo-x86 history.
+
+Once that category/component is finished, it's moved into $(pwd)/final , and
+another component is started; script.sh currently will run at grep -c MHz /proc/cpuinfo parallelism.
+
+Upon finishing the cvs->git conversion, the content needs to be reintegrated.
+
+create-git.sh exists for this. It looks in $(pwd)/final, and creates the new
+repo in $(pwd)/git/work; this is a bare repo.
+
+Roughly, it does this via generating an empty repo, setting up alternates into slice of
+history, setting up refs/heads/source/* space for each slice of history,
+then forcing a date-ordered fast-export- manipulating the resultant stream
+(stripping resets, rewriting the commit field to point to refs/heads/master, rewriting
+commit messages to convert some basic structured information into git footers), and
+spitting that out.
+
+It creates two dumps of intermediate data as it's going; export-stream-raw , and
+export-stream-rewritten; the first is git fast-export raw output, the second is
+the rewritten stream. Each are ~490MB (they're small due to the fact that
+since we're exporting/importing w/in the same repo, we don't have to send blobs
+through the stream- they can be directly referenced in the command stream).
+
+Now that that is done, we have a recomposed history in refs/heads/master.
+From there, we do prun'ing/gc'ing, and force a git repack -Adf.
+
+That repo is ready to go at that point.