monotone-devel
[Top][All Lists]
Advanced

[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)

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]