[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Monotone-devel] CVS sync works (for me)
From: |
Christof Petig |
Subject: |
[Monotone-devel] CVS sync works (for me) |
Date: |
Fri, 18 Feb 2005 18:22:21 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux ppc; en-US; rv:1.7.5) Gecko/20050105 Debian/1.7.5-1 |
Well I guess it's time to tell you that the bidirectional CVS
synchronization is now ready to fit my momentary needs.
revision 7989457bf12fbc59b7ba5d6a5387bab8e0d7c7c5 from the
net.venge.monotone.cvssync branch can do the following:
- import the full history of a project from a remote CVS server
(pserver, ssh or rsh), including changelog, checkin time, author - be
careful (see my SIGSEGV thread on what happens if you import a too large
project, this is not fixed yet), and it might easily take a lot of space
on your hard disk. It will also take some hours due to the sanity checks.
- pull any changes made to the CVS server since the last sync (with full
history)
- push any changes made in the local database back to the CVS server
(cvs commit). Unfortunately this looses atomicity, author and time of
checkin :-( [no way to work around that, that are CVS's restrictions]
Shortcomings:
- no tagging (tag im-/export is not finished yet)
- only HEAD, no side branches (yet)
- it stops once monotone has more than one successor for a node (TODO:
specifying which path to take)
- it makes heavy use of tags (it stores the corresponding CVS revisions
uncompressed into a cert)
- does not compile on Windows (see CreatePipe/CreateProcess thread)
- ugly indentation
- compared to 0.16: database format changed, command syntax changed
(these are due to the 0.16->0.17 transition and cvssync is 0.17 based)
- the sanity checks make it really slow
- no unit tests, no boost test, just some exercising bash scripts
- uses _cvs_ login for pserver authorization ;-)
- not robust to cross-module magic (merging a different (sub)module)
- always uses -z3
- checked in merges have no meaningful changelog (merge of ID with ID)
since they lack the history of the side branch
Syntax:
monotone --branch <dest> cvs_pull <repository> <module>
monotone cvs_push <repository> <module>
repository is like the -d argument to CVS
module is like the argument to cvs co
Enjoy
Christof
TODO:
--since (to limit history)
branches + tags
Windows port (barring inclusion into mainline)
signature.asc
Description: OpenPGP digital signature
- [Monotone-devel] CVS sync works (for me),
Christof Petig <=