As I discovered, Tailor will bomb if time goes backwards at some point
in your CVS history, and will probably bomb out part way through. The
quick fix for this is to directly edit the RCS ,v files to correct the
dates. Since you are working with a copy of the repository, there isn't
any danger of screwing things up.
I wrote a small program to check an RCS file for such discontinuities:
When editing the dates in the RCS files, make sure that you change the
dates in the different files in a consistent way. You want to make sure
that revisions in different files that are part of the same changeset
still have the same date after the edits.
4. Create a Tailor config file
Here is the Tailor config file I used to import jhbuild:
When the conversion is complete, you should be left with a bzr branch
containing the history of the HEAD branch from CVS. Now is a good time
to check that the converted bzr looks sane.
6. Use the new branch
Rather than using the converted branch directly, it is a good idea to
branch off it and do the development there:
$ bzr branch jhbuild.cvs jhbuild.dev
The advantage of doing this is that you have the option of rsyncing in
new changes to the CVS repository and running tailor again to
incrementally import them. You can then merge those changes to your
I have some vague memories that tailor wasn't able to deal with CVS
branches. Has that been fixed?
James Henstridge -
From what I can tell, it has no automatic support for branches. If you
wanted to convert a branch as well as the mainline, it would be
necessary to do something like:
1. convert mainline
2. figure out where the branchpoint is.
3. take a copy of the converted mainline, and uncommit up to the branch
4. create a new tailor config to convert the branch, telling it to
start at the first revision on that branch.
Pretty ugly, but should work. As I said in my previous post: I was only
interested in converting the mainline, so that's all I've described.