#64: cvs -> bzr conversion fails on adding files to non-existent directories
--------------------+-------------------------------------------------------
 Reporter:  luks    |       Owner:  lele      
     Type:  defect  |      Status:  new       
 Priority:  major   |   Milestone:  VersionOne
Component:  bzr     |     Version:  0.9       
 Keywords:          |  
--------------------+-------------------------------------------------------
 As CVS doesn't version directories, they never appear in the changesets.
 So if there is a CVS changeset that adds a file {{{foo/bar.c}}}, and the
 {{{foo/}}} directory doesn't exist, it will not explicitly add it. AFAIK,
 other target repositories can handle situations like these transparently,
 but in bzrlib this causes a problem:

 {{{
 00:28:27 [E] Couldn't replay changeset
 Revision: 2001-09-13 23:03:25 by wmaycisco
 Date: 2001-09-13 23:03:26
 Author: wmaycisco
 Modified:
 
Makefile.am,atom_ftyp.cpp,atom_mdat.cpp,atom_root.cpp,atom_stbl.cpp,atoms.h,mp4.cpp,mp4.h,mp4atom.cpp,mp4atom.h,mp4file.cpp,mp4file.h,mp4property.cpp,mp4property.h,mp4track.cpp,mp4track.h,mp4util.h
 Removed:
 
apitest.c,mp4broadcaster.cpp,mp4dump.cpp,mp4extract.cpp,nullcreate.cpp,nullvplayer.cpp
 Added:
 
TODO,test/Makefile.am,test/c_api.c,test/nullcreate.cpp,test/nullvplayer.cpp,util/Makefile.am,util/mp4broadcaster.cpp,util/mp4dump.cpp,util/mp4extract.cpp
 Log: Sync 9/13/2001 4:08PM PDT - forgot throw transfer.
 Traceback (most recent call last):
   File "/usr/lib/python2.4/site-packages/vcpx/source.py", line 133, in
 applyPendingChangesets
     replay(c)
   File "/usr/lib/python2.4/site-packages/vcpx/dualwd.py", line 107, in
 replayChangeset
     self.target.replayChangeset(changeset)
   File "/usr/lib/python2.4/site-packages/vcpx/target.py", line 112, in
 replayChangeset
     self._replayChangeset(changeset)
   File "/usr/lib/python2.4/site-packages/vcpx/target.py", line 314, in
 _replayChangeset
     action(group)
   File "/usr/lib/python2.4/site-packages/vcpx/target.py", line 331, in
 _addEntries
     self._addPathnames([e.name for e in entries])
   File "/usr/lib/python2.4/site-packages/vcpx/bzr.py", line 177, in
 _addPathnames
     self._working_tree.add(fnames)
   File "/usr/lib/python2.4/site-packages/bzrlib/decorators.py", line 51,
 in write_locked
     return unbound(self, *args, **kwargs)
   File "/usr/lib/python2.4/site-packages/bzrlib/workingtree.py", line 592,
 in add
     inv.add_path(f, kind=kind, file_id=file_id)
   File "/usr/lib/python2.4/site-packages/bzrlib/inventory.py", line 1017,
 in add_path
     raise NotVersionedError(path=parent_path)
 NotVersionedError: [u'test'] is not versioned
 }}}

 Attached a patch to fix this in the Bzr target, but I'm not sure at all if
 it's the right place. Perhaps it could be fixed in the CVS source?

-- 
Ticket URL: <http://progetti.arstecnica.it/tailor/ticket/64>
Tailor <http://progetti.arstecnica.it/tailor>
An inter-VCs changeset exchanger
_______________________________________________
Tailor mailing list
[email protected]
http://lists.zooko.com/mailman/listinfo/tailor

Reply via email to