Chase Phillips wrote: > I added "ignore-externals = False;" to vcpx/tests/tailor.py's DEFAULT > config section, updated the verbose line to True, and got all of the way > through to change "four," and I found that the test failed for me: > > ... > > At change "two," bar and bar/baz are added and committed. At change > "four," bar/again is added, the commit is attempted, and the failure > occurs -- bar is not added in change "four" before bar/again.
I discovered that Tailor doesn't have CVS create directories in a working installation by running 'cvs .. update -d foo/' nor delete empty directories by running 'cvs .. update -dP foo/'. Since Tailor does this by hand (I think Tailor should have CVS handle this), I reasoned that the problem was when the directory was supposed to be removed, rather than the second time it was added. I began searching for where it would delete the directory. I found that Tailor doesn't delete empty directories... at least in the test case as I ran it. Tailor just schedules a removal event to occur on the target tree. This leads to a situation where the source and target trees get out of sync. I've attached a patch which fixes that problem. With the patch applied, the CvsReappearedDirectory test completes successfully for me. Also, in my tests my repository gets past the problem that brought about my original email. Some comments: 1. Why the code at cvsps.py:336? It looks like it's trying to do what maybeDeleteDirectory() tries. With my patch applied, rmtree() appears in two cases when a directory is to be removed at a deleted event. If it makes sense to do so, maybe the code could be reorganized to only call rmtree() once. 2. It wasn't clear in the verbose or debug output how a new directory was added. For that I had to track the code. Maybe debugging output could be added which calls out when a new directory is being added in the CVS working directory? Chase
tailor-dir-revival.patch
Description: tailor-dir-revival.patch
_______________________________________________ Tailor mailing list [email protected] http://lists.zooko.com/mailman/listinfo/tailor
