On 7/2/07, Shawn O. Pearce <spearce@xxxxxxxxxxx> wrote:
David Frech <nimblemachines@xxxxxxxxx> 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. - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html