Support wholesale directory renames in fast-import
commitf39a946a1fb0fa4856cd0027b9da3603a1b06fdc
authorShawn O. Pearce <spearce@spearce.org>
Tue, 10 Jul 2007 02:58:23 +0000 (9 22:58 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Tue, 10 Jul 2007 03:06:16 +0000 (9 23:06 -0400)
tree0a2dd51b906ef674ac94b08cfe85506da9cb7c12
parent11a264050f61bb15c413cced058db2ac96fd96f9
Support wholesale directory renames in fast-import

Some source material (e.g. Subversion dump files) perform directory
renames without telling us exactly which files in that subdirectory
were moved.  This makes it hard for a frontend to convert such data
formats to a fast-import stream, as all the frontend has on hand
is "Rename a/ to b/" with no details about what files are in a/,
unless the frontend also kept track of all files.

The new 'R' subcommand within a commit allows the frontend to
rename either a file or an entire subdirectory, without needing to
know the object's SHA-1 or the specific files contained within it.
The rename is performed as efficiently as possible internally,
making it cheaper than a 'D'/'M' pair for a file rename.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Documentation/git-fast-import.txt
fast-import.c
t/t9300-fast-import.sh