[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Monotone-devel] New cvssync.attrs branch
From: |
William Uther |
Subject: |
[Monotone-devel] New cvssync.attrs branch |
Date: |
Mon, 19 Mar 2007 22:48:56 +1100 |
Hi all,
On the weekend I made a new branch: net.venge.monotone.cvssync.attrs
based on a previous cvssync branch:
net.venge.monotone.cvssync.refactor.
The parent .refactor branch had some fairly major bugs in its sync
data storage. They only show up after a little bit of use, but are
hard to recover from (the best sort of bugs :).
The new cvssync.attrs branch changes the way syncing data is stored.
As suggested by the name, it keeps them attributes attached to the
files (as encouraged by irc denizens). There is a simple cert
attached to revisions where the attrs are known to be correct. This
has one major effect in that mtn_cvs has to commit a new monotone
revision on a push to cvs (to update the sync information). (At the
moment I only commit one of these sync revisions for a single push,
no matter how many mtn revisions were transferred to cvs.) This
means a "push" is not longer a 'const' operation on your db, but
otherwise cleans up the sync-data handling a lot.
At the moment I'm using similar attributes to the .refactor branch to
store the sync information (<dom>:module, <dom>:root and <dom>:branch
on the root dir, then <dom>:revision, <dom>:sha1 and <dom>:keywords
on individual files. <dom> is the --domain argument and defaults to
"cvs"). And I'm using my own simple cert to mark valid sync: mtn-cvs-
sync=<dom>. Is there some other standard I should change to?
The new branch passes most of the cvssync unit tests (I haven't
updated any of the 'takeover' commands yet, and the two more complex
ones of those fail). The new branch passes more of the tests on
basic push/pull functionality than the .refactor branch.
Does anyone use the takeover functionality? I'm tempted to take it
out rather than fix it.
Anyway, the branch (apart from takeover functionality) is open for
testing.
This branch works with the mainline binary (as does the .refactor
branch I believe). You can simply check it out, make and make
install to compile against a slightly older codebase, or you can
compile it against mainline like this:
- check out a mainline workspace
- check out a n.v.m.cvssync.attrs workspace
- Apply the mtn_cvs/mainline.patch from the .attrs workspace to the
mainline workspace
- Copy or link the mtn_cvs directory across so it is in the
mainline workspace
- make and make install in the top mainline directory.
- make check doesn't seem to be recursive. You can run it in the
mtn_cvs directory to run those tests though.
Testing appreciated, but be careful with it at this stage. I'm
rather new to the code base and this is a pretty major change.
Cheers,
Will :-}
- [Monotone-devel] New cvssync.attrs branch,
William Uther <=