Age | Commit message (Collapse) | Author | Files |
|
This is an example as it is using relative paths and needs some changes
to work for you.
It assumes that you have a git repository (git-init was ran) and then
will update it there. Before each update it will clone the git repository
and copy the old state files into the repository. So in case something
goes wrong you can do a post mortom. The state files are relatively small
and the git repository is working with hardlinks so it does not even take
too much space.
On first pull you need to run git-repack or git-gc
|
|
saved bogus data and it could be dangerous.
* Back-out this change and save the heads at the end of the script.
|
|
all right but
we have not diffed the two manifests at all. Now we are diffinf an empty manifest against
the initial one.
|
|
added,deleted dirs and added,deleted,modified files
-Fix bug with gathering the all_deleted (I got the union wrong)
-Diff everything and change what we store inside the sets. Storing the rev in the set
is superfluous.
|
|
|
|
|
|
will tell us what to do
|
|
_file_revision and file_revision of the manifest are equal
|
|
over again
I decided to use a FIFO for two reasons:
-Simplicity in the implementation
-Parent and Childs are normally close (<= 100 revisions) to each other. So having
the fifo should avoid parsing the parent manifest over and over again. Also with
"merge early and merge often" the 100 revs should be enough to catch merges as well.
|
|
Build a directory tree from a manifest with all the information we need. This
currently is a list of directory names and a list of files (with absolute paths)
and their revision and the executable attribute.
|
|
store them.
|
|
what changes happened
Make place for the new code that is diffing the manifest directly. This avoids
all the funky mess with recursive directory renames and undoing what mtn told us happened.
git is clever enough to figure out moves and copying of files on its own.
|
|
|
|
when saving the status
|
|
|
|
This is just a snapshot from my mtn tree on the request of some random
people sitting in this room...
This will use the automate interface of monotone to export the history
in a format readable by git-fast-import
../../mtn2git/mtn2git.py --db ../../../mtn2git/OE.mtn --marks=../mtn2git-marks --status=../mtn2git-status.v2 | git-fast-import --date-format=rfc2822 --import-marks=../git-import-marks --export-marks=../git-import-marks
|