Re: Another question about importing SVN with fast-import
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.