git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: challenges using fast-import and svn

From
DFDavid 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.
Previous: Shawn O. Pearce
Message 3 of 3 in “challenges using fast-import and svn”
  1. David FrechJul 2, 2007
  2. Shawn O. PearceJul 2, 2007
  3. David FrechJul 2, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.