Re: challenges using fast-import and svn
- From
- David Frech <david@nimblemachines.com>
- Date
- Jul 2, 2007, 23:28 UTC
- Message-ID
- <7154c5c60707021628t14735e94gc8958670a328be79@mail.gmail.com>
- In-Reply-To
- <20070702222400.GB4495@spearce.org>
On 7/2/07, Shawn O. Pearce <spearce@spearce.org> wrote:
Show 14 quoted lines
> David Frech <nimblemachines@gmail.com> 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.
Show 26 quoted lines
> > 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.