Hi, I've just started trying to use tailor. I've run into two issues,
one minor and one less so. I figure other people have solved these
problems, but I haven't found the solutions in the various man pages,
wiki pages, and mailing list archives I've searched.
I want to use tailor to synchronize two repositories, one development,
the other research. The developers don't want the researchers to get
their grubby fingers on the development code, so we researchers have to
have a separate repository. I figured we'd go with Subversion, since
it's a minimal step away from CVS but will be easier for me to maintain.
I want to create a subdirectory in the Subversion repository, devel,
say, and mirror the research repository there. Then, within the same
repository, we can create research branches and generally do everything
in Subversion. When the time comes to merge bits back into the
development side, we'll merge a Subversion branch with a Subversion
trunk and then tailor, which has been busily pulling changes from CVS
and pushing them into the mirror, will push the trunk changes in
Subversion back into CVS.
Here's the greater problem:
I've set up my play repositories like so:
cd /tmp
export CVSROOT=/tmp/cvs
cvs init
mkdir work play
echo hello > work/file
cp work/file play/
cd work
cvs im -m bogus work me rel1
cd ../play
...
Then I invoke tailor with the following configuration file:
[DEFAULT]
repository = /tmp/cvs/
root-directory = /tmp/hybrid
projects = cvs_work
[cvs_work]
target = svn:work
source = cvs:work
[svn_work]
target = cvs:work
source = svn:work
[cvs:work]
module = work
subdir = work
encoding = utf8
[svn:work]
repository = file:///tmp/svn
module = devel/work
subdir = work
...
This breaks with the message:
[EMAIL PROTECTED]:/tmp$ tailor -v --configfile tailor.cfg
Prepending '/' to module
Bootstrapping '/tmp/hybrid'
$ svn ls file:///tmp/svn [Status 1]
$ svnadmin create --fs-type fsfs /tmp/svn [Ok]
$ svn mkdir -m "This directory will host the upstream sources"
file:///tmp/svn/devel/work [Status 1]
Failure initializing the target VCS: Was not able to create the
module '/devel/work', maybe more than one level directory?
Ah, that makes sense (though it would be nice if Subversion could
recursively create subdirectories). So I try svn mkdir
file:///tmp/svn/devel; rm -rf hybrid/ and try again. Now I get the
message:
[EMAIL PROTECTED]:/tmp$ tailor -v --configfile tailor.cfg
Prepending '/' to module
Bootstrapping '/tmp/hybrid'
$ svn ls file:///tmp/svn [Ok]
$ svn co --quiet file:///tmp/svn/devel/work /tmp/hybrid/work
[Status 1]
$ cvs -f -d /tmp/cvs/ rlog -N -r:HEAD work [Ok]
/tmp/hybrid $ cvs -q -d /tmp/cvs/ checkout -d work -D
"2005-12-20 22:54:48 UTC" work [Ok]
working copy up to cvs revision 2005-12-20 22:54:48 by houghton
Error: Could not import checked out tree! -- Exception
vcpx.target.TargetInitializationFailure: '/tmp/hybrid/work'
needs to be an SVN working copy already under SVN
Failure initializing the target VCS: '/tmp/hybrid/work' needs to
be an SVN working copy already under SVN
At which point I write to this list.
I've gotten two-way syncing going in a simpler configuration -- where
there was no devel subdirectory -- but it would be great if I could
figure out something better.
My lesser problem is that tailor fails to recognize when all the changes
to a repository are in fact in the same state, the only recent changes
having been due to syncing. So I can sync from cvs to svn and back again
forever, each time getting a long list of changes. It seems like I must
be missing something. If you do a svn diff -rX:Y file:///repo you can
see that there have been no actual changes.
If anyone can help me out, I'd appreciate it greatly.
Thanks,
David Houghton
_______________________________________________
Tailor mailing list
[email protected]
http://lists.zooko.com/mailman/listinfo/tailor