From: David Frech Date: Mon, 02 Jul 2007 23:28:25 GMT Subject: Re: challenges using fast-import and svn Message-ID: <7154c5c60707021628t14735e94gc8958670a328be79@mail.gmail.com> In-Reply-To: <20070702222400.GB4495@spearce.org> On 7/2/07, Shawn O. Pearce wrote: > David Frech wrote: > > However, there are issues. I don't currently track branch copies > > correctly, so branches start out with no history, rather than the with > > the history of the branch they are copied from; and handling deletes > > is tricky. > > Branches are easy to create from the right branch in fast-import, > but its hard with the SVN dump file to know where it starts from. > > One trick folks have used in the past is to assign a mark in > fast-import for each SVN revision. Marks are very cheap and make > it easy to reference a commit in a from command when you need to > make a new branch. You can just use the SVN revision number you > get from the SVN dump file. I think I know how to do this. I'm already using marks for each commit. > > Here is the problem: if a file or directory is deleted in svn, the > > dumpfile shows simply this: > > > > Node-path: trunk/project/file-or-directory > > Node-action: delete > > > > In the case of a file, I can simply feed a "D" command to fast-import; > > but if I'm deleting a whole directory, my code knows nothing about > > what files exist in that directory. Is fast-import smart about this? > > Will it barf if given a directory argument rather than a file for "D" > > commands? > > I just read the code again. You can delete an entire subdirectory > just by sending a D command for that subdirectory, assuming you > don't end the name with a '/'. So you should be able to just do: > > D file-or-directory > > and whatever file-or-directory is, it goes away. If you were to > send a trailing '/': > > D file-or-directory/ > > its likely bad things will happen because fast-import will try to > remove the file or directory named "" (yes, empty string) in the > subdirectory called "file-or-directory" but leave the subdirectory. This is great! I'll update the code and see what happens... > So I guess this means a documentation update for the D command > would be a good idea? Sounds good to me. Right now it really implies "this only works on files". Thanks for the snappy reply, and thanks again for writing fast-import! It was a pleasure to use. > -- > Shawn. > - David -- If I have not seen farther, it is because I have stood in the footsteps of giants.