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

Re: Another question about importing SVN with fast-import

From
DFDavid Frech <david@nimblemachines.com>
Date
Jul 19, 2007, 07:09 UTC
Message-ID
<7154c5c60707190009r6d460debs71158d4db9a028d4@mail.gmail.com>
In-Reply-To
<Pine.LNX.4.64.0707162204480.14971@reaper.quantumfyre.co.uk>
On 7/16/07, Julian Phillips <julian@quantumfyre.co.uk> wrote:
Show 7 quoted lines
> Now the question.  Shawn recently added C and R operations - almost as
> soon as they were asked for too.  However, how do you copy a file from a
> particular revision?  I have just hit a point where someone deleted a
> directory, and then copied one of the files from that directory back from
> an old revision (as two separate commits).  Since I'm not tracking any
> branch contents in my front-end, and the copy operation only works from
> the current branch head I seem to be stuck ... or have I missed something?
I have to second Julian's question.

The only things I have left to implement (in my svn dump to fast-import translator) before I can call my code "complete" are branch copies (which will generate "from" lines in commits so fast-import can properly initialize the new branch) and a generic "copy <path> from <rev>" that Julian also needs.

I mark my commits and keep track of the mapping from svn revs to git commits, so when the svn dump asks for a <path> from a specific <svn rev> I can correlate that to a mark (ie, a git commit). But I can't tell fast-import to *do* anything with it.

This is kind of a request and a comment/question. The request is: there is no way to do *reasonably* in the front end what fast-import can do somewhat reasonably: namely, copy a <path> (file or directory!) from an arbitrary previously committed revision/mark to the current branch.

The comment/question is: how different is this, really, from being able to specify a "from" line in a commit? In both cases I'm asking fast-import to reach into its memory (or the repo) and pull out a tree, and to add (some or all of it) to my current branch. Isn't the kind of generic C command that Julian and I are asking for the same thing, only instead of taking the whole tree (from the specified commit) it takes a single file or directory?

I hope I haven't missed the point entirely.

Lastly, do we really need "R"? With this generic copy - and I think there should be *only* a generic version, not a "streamlined local copy" version and a "reach into history arbitrarily" version - we can, as an earlier poster pointed out, do R by doing a C and then a D. This is, in fact, how svn dump files represent file and directory renames.

It would be nice to keep the fast-import command set small and orthogonal.
My few cents.
Cheers,
- David
-- 
If I have not seen farther, it is because I have stood in the
footsteps of giants.
Previous: Shawn O. PearceNext: Shawn O. Pearce
Message 5 of 11 in “Another question about importing SVN with fast-import”
  1. Julian PhillipsJul 16, 2007
  2. Shawn O. PearceJul 17, 2007
  3. Julian PhillipsAug 6, 2007
  4. Shawn O. PearceAug 7, 2007
  5. David FrechJul 19, 2007
  6. Shawn O. PearceJul 20, 2007
  7. Julian PhillipsJul 20, 2007
  8. David FrechJul 20, 2007
  9. Julian PhillipsJul 20, 2007
  10. David FrechJul 20, 2007
  11. Jan HudecJul 23, 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.