Revision b6f3481bb456acbbb990a1045344bb06e5a40283 authored by Shawn O. Pearce on 15 July 2007, 05:40:37 UTC, committed by Shawn O. Pearce on 15 July 2007, 05:41:23 UTC
Some source material (e.g. Subversion dump files) perform directory renames by telling us the directory was copied, then deleted in the same revision. This makes it difficult for a frontend to convert such data formats to a fast-import stream, as all the frontend has on hand is "Copy a/ to b/; Delete a/" with no details about what files are in a/, unless the frontend also kept track of all files. The new 'C' subcommand within a commit allows the frontend to make a recursive copy of one path to another path within the branch, without needing to keep track of the individual file paths. The metadata copy is performed in memory efficiently, but is implemented as a copy-immediately operation, rather than copy-on-write. With this new 'C' subcommand frontends could obviously implement an 'R' (rename) on their own as a combination of 'C' and 'D' (delete), but since we have already offered up 'R' in the past and it is a trivial thing to keep implemented I'm not going to deprecate it. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
1 parent 48b4c3d
File | Mode | Size |
---|---|---|
Documentation | ||
arm | ||
compat | ||
contrib | ||
git-gui | ||
gitweb | ||
mozilla-sha1 | ||
perl | ||
ppc | ||
t | ||
templates | ||
xdiff | ||
.gitignore | -rw-r--r-- | 2.3 KB |
.mailmap | -rw-r--r-- | 1.8 KB |
COPYING | -rw-r--r-- | 18.3 KB |
GIT-VERSION-GEN | -rwxr-xr-x | 757 bytes |
INSTALL | -rw-r--r-- | 4.4 KB |
Makefile | -rw-r--r-- | 31.6 KB |
README | -rw-r--r-- | 2.1 KB |
RelNotes | l--------- | 32 bytes |
alloc.c | -rw-r--r-- | 1.7 KB |
archive-tar.c | -rw-r--r-- | 8.2 KB |
archive-zip.c | -rw-r--r-- | 8.9 KB |
archive.h | -rw-r--r-- | 1.1 KB |
attr.c | -rw-r--r-- | 13.2 KB |
attr.h | -rw-r--r-- | 816 bytes |
base85.c | -rw-r--r-- | 2.9 KB |
blob.c | -rw-r--r-- | 1.1 KB |
blob.h | -rw-r--r-- | 311 bytes |
builtin-add.c | -rw-r--r-- | 5.4 KB |
builtin-annotate.c | -rw-r--r-- | 446 bytes |
builtin-apply.c | -rw-r--r-- | 69.5 KB |
builtin-archive.c | -rw-r--r-- | 5.7 KB |
builtin-blame.c | -rw-r--r-- | 60.9 KB |
builtin-branch.c | -rw-r--r-- | 16.8 KB |
builtin-bundle.c | -rw-r--r-- | 9.8 KB |
builtin-cat-file.c | -rw-r--r-- | 3.4 KB |
builtin-check-attr.c | -rw-r--r-- | 1.3 KB |
builtin-check-ref-format.c | -rw-r--r-- | 282 bytes |
builtin-checkout-index.c | -rw-r--r-- | 7.5 KB |
builtin-commit-tree.c | -rw-r--r-- | 3.9 KB |
builtin-config.c | -rw-r--r-- | 7.0 KB |
builtin-count-objects.c | -rw-r--r-- | 2.9 KB |
builtin-describe.c | -rw-r--r-- | 7.0 KB |
builtin-diff-files.c | -rw-r--r-- | 958 bytes |
builtin-diff-index.c | -rw-r--r-- | 1.2 KB |
builtin-diff-tree.c | -rw-r--r-- | 3.3 KB |
builtin-diff.c | -rw-r--r-- | 8.2 KB |
builtin-fetch--tool.c | -rw-r--r-- | 12.8 KB |
builtin-fmt-merge-msg.c | -rw-r--r-- | 7.8 KB |
builtin-for-each-ref.c | -rw-r--r-- | 20.6 KB |
builtin-fsck.c | -rw-r--r-- | 18.0 KB |
builtin-gc.c | -rw-r--r-- | 2.5 KB |
builtin-grep.c | -rw-r--r-- | 16.4 KB |
builtin-init-db.c | -rw-r--r-- | 10.0 KB |
builtin-log.c | -rw-r--r-- | 19.5 KB |
builtin-ls-files.c | -rw-r--r-- | 12.1 KB |
builtin-ls-tree.c | -rw-r--r-- | 4.4 KB |
builtin-mailinfo.c | -rw-r--r-- | 18.2 KB |
builtin-mailsplit.c | -rw-r--r-- | 5.8 KB |
builtin-merge-base.c | -rw-r--r-- | 1.2 KB |
builtin-merge-file.c | -rw-r--r-- | 1.6 KB |
builtin-mv.c | -rw-r--r-- | 7.4 KB |
builtin-name-rev.c | -rw-r--r-- | 6.4 KB |
builtin-pack-objects.c | -rw-r--r-- | 46.2 KB |
builtin-pack-refs.c | -rw-r--r-- | 3.3 KB |
builtin-prune-packed.c | -rw-r--r-- | 1.8 KB |
builtin-prune.c | -rw-r--r-- | 1.9 KB |
builtin-push.c | -rw-r--r-- | 3.9 KB |
builtin-read-tree.c | -rw-r--r-- | 6.6 KB |
builtin-reflog.c | -rw-r--r-- | 9.8 KB |
builtin-rerere.c | -rw-r--r-- | 11.0 KB |
builtin-rev-list.c | -rw-r--r-- | 12.8 KB |
builtin-rev-parse.c | -rw-r--r-- | 8.1 KB |
builtin-revert.c | -rw-r--r-- | 10.1 KB |
builtin-rm.c | -rw-r--r-- | 5.6 KB |
builtin-runstatus.c | -rw-r--r-- | 812 bytes |
builtin-shortlog.c | -rw-r--r-- | 7.4 KB |
builtin-show-branch.c | -rw-r--r-- | 21.1 KB |
builtin-show-ref.c | -rw-r--r-- | 5.7 KB |
builtin-stripspace.c | -rw-r--r-- | 1.5 KB |
builtin-symbolic-ref.c | -rw-r--r-- | 1.3 KB |
builtin-tar-tree.c | -rw-r--r-- | 2.1 KB |
builtin-unpack-objects.c | -rw-r--r-- | 8.6 KB |
builtin-update-index.c | -rw-r--r-- | 19.1 KB |
builtin-update-ref.c | -rw-r--r-- | 1.7 KB |
builtin-upload-archive.c | -rw-r--r-- | 4.1 KB |
builtin-verify-pack.c | -rw-r--r-- | 1.7 KB |
builtin-write-tree.c | -rw-r--r-- | 2.1 KB |
builtin.h | -rw-r--r-- | 5.5 KB |
cache-tree.c | -rw-r--r-- | 12.5 KB |
cache-tree.h | -rw-r--r-- | 921 bytes |
cache.h | -rw-r--r-- | 20.7 KB |
check-builtins.sh | -rwxr-xr-x | 588 bytes |
check-racy.c | -rw-r--r-- | 517 bytes |
color.c | -rw-r--r-- | 3.2 KB |
color.h | -rw-r--r-- | 376 bytes |
combine-diff.c | -rw-r--r-- | 26.4 KB |
commit.c | -rw-r--r-- | 36.3 KB |
commit.h | -rw-r--r-- | 3.8 KB |
config.c | -rw-r--r-- | 21.6 KB |
config.mak.in | -rw-r--r-- | 931 bytes |
configure.ac | -rw-r--r-- | 12.0 KB |
connect.c | -rw-r--r-- | 13.0 KB |
convert-objects.c | -rw-r--r-- | 7.3 KB |
convert.c | -rw-r--r-- | 14.9 KB |
copy.c | -rw-r--r-- | 688 bytes |
csum-file.c | -rw-r--r-- | 2.1 KB |
csum-file.h | -rw-r--r-- | 515 bytes |
ctype.c | -rw-r--r-- | 889 bytes |
daemon.c | -rw-r--r-- | 26.2 KB |
date.c | -rw-r--r-- | 17.8 KB |
decorate.c | -rw-r--r-- | 1.8 KB |
decorate.h | -rw-r--r-- | 382 bytes |
delta.h | -rw-r--r-- | 3.2 KB |
diff-delta.c | -rw-r--r-- | 13.5 KB |
diff-lib.c | -rw-r--r-- | 17.0 KB |
diff.c | -rw-r--r-- | 79.2 KB |
diff.h | -rw-r--r-- | 7.0 KB |
diffcore-break.c | -rw-r--r-- | 8.4 KB |
diffcore-delta.c | -rw-r--r-- | 5.2 KB |
diffcore-order.c | -rw-r--r-- | 2.2 KB |
diffcore-pickaxe.c | -rw-r--r-- | 3.3 KB |
diffcore-rename.c | -rw-r--r-- | 13.8 KB |
diffcore.h | -rw-r--r-- | 3.8 KB |
dir.c | -rw-r--r-- | 15.0 KB |
dir.h | -rw-r--r-- | 1.7 KB |
dump-cache-tree.c | -rw-r--r-- | 1.5 KB |
entry.c | -rw-r--r-- | 5.1 KB |
environment.c | -rw-r--r-- | 2.7 KB |
exec_cmd.c | -rw-r--r-- | 2.8 KB |
exec_cmd.h | -rw-r--r-- | 286 bytes |
fast-import.c | -rw-r--r-- | 54.3 KB |
fetch-pack.c | -rw-r--r-- | 17.6 KB |
fetch.c | -rw-r--r-- | 6.7 KB |
fetch.h | -rw-r--r-- | 1.6 KB |
fixup-builtins | -rwxr-xr-x | 326 bytes |
generate-cmdlist.sh | -rwxr-xr-x | 551 bytes |
git-add--interactive.perl | -rwxr-xr-x | 15.9 KB |
git-am.sh | -rwxr-xr-x | 11.0 KB |
git-archimport.perl | -rwxr-xr-x | 35.8 KB |
git-bisect.sh | -rwxr-xr-x | 8.3 KB |
git-checkout.sh | -rwxr-xr-x | 6.7 KB |
git-clean.sh | -rwxr-xr-x | 1.8 KB |
git-clone.sh | -rwxr-xr-x | 10.8 KB |
git-commit.sh | -rwxr-xr-x | 13.6 KB |
git-compat-util.h | -rw-r--r-- | 8.0 KB |
git-cvsexportcommit.perl | -rwxr-xr-x | 8.3 KB |
git-cvsimport.perl | -rwxr-xr-x | 26.1 KB |
git-cvsserver.perl | -rwxr-xr-x | 98.6 KB |
git-fetch.sh | -rwxr-xr-x | 8.9 KB |
git-filter-branch.sh | -rwxr-xr-x | 6.3 KB |
git-instaweb.sh | -rwxr-xr-x | 5.2 KB |
git-lost-found.sh | -rwxr-xr-x | 473 bytes |
git-ls-remote.sh | -rwxr-xr-x | 2.5 KB |
git-merge-octopus.sh | -rwxr-xr-x | 2.4 KB |
git-merge-one-file.sh | -rwxr-xr-x | 3.3 KB |
git-merge-ours.sh | -rwxr-xr-x | 335 bytes |
git-merge-resolve.sh | -rwxr-xr-x | 956 bytes |
git-merge-stupid.sh | -rwxr-xr-x | 1.4 KB |
git-merge.sh | -rwxr-xr-x | 11.1 KB |
git-mergetool.sh | -rwxr-xr-x | 8.4 KB |
git-p4import.py | -rw-r--r-- | 10.5 KB |
git-parse-remote.sh | -rwxr-xr-x | 5.8 KB |
git-pull.sh | -rwxr-xr-x | 3.2 KB |
git-quiltimport.sh | -rwxr-xr-x | 3.0 KB |
git-rebase--interactive.sh | -rwxr-xr-x | 10.1 KB |
git-rebase.sh | -rwxr-xr-x | 8.5 KB |
git-relink.perl | -rwxr-xr-x | 4.0 KB |
git-remote.perl | -rwxr-xr-x | 9.0 KB |
git-repack.sh | -rwxr-xr-x | 2.8 KB |
git-request-pull.sh | -rwxr-xr-x | 1.3 KB |
git-reset.sh | -rwxr-xr-x | 2.3 KB |
git-send-email.perl | -rwxr-xr-x | 17.4 KB |
git-sh-setup.sh | -rwxr-xr-x | 2.2 KB |
git-stash.sh | -rwxr-xr-x | 4.1 KB |
git-submodule.sh | -rwxr-xr-x | 6.2 KB |
git-svn.perl | -rwxr-xr-x | 113.5 KB |
git-svnimport.perl | -rwxr-xr-x | 24.2 KB |
git-tag.sh | -rwxr-xr-x | 4.0 KB |
git-verify-tag.sh | -rwxr-xr-x | 763 bytes |
git.c | -rw-r--r-- | 12.6 KB |
git.spec.in | -rw-r--r-- | 8.4 KB |
gitk | -rwxr-xr-x | 201.2 KB |
grep.c | -rw-r--r-- | 12.7 KB |
grep.h | -rw-r--r-- | 1.6 KB |
hash-object.c | -rw-r--r-- | 1.9 KB |
help.c | -rw-r--r-- | 4.6 KB |
http-fetch.c | -rw-r--r-- | 25.9 KB |
http-push.c | -rw-r--r-- | 66.5 KB |
http.c | -rw-r--r-- | 11.4 KB |
http.h | -rw-r--r-- | 2.5 KB |
ident.c | -rw-r--r-- | 5.7 KB |
imap-send.c | -rw-r--r-- | 28.5 KB |
index-pack.c | -rw-r--r-- | 21.8 KB |
interpolate.c | -rw-r--r-- | 2.0 KB |
interpolate.h | -rw-r--r-- | 601 bytes |
list-objects.c | -rw-r--r-- | 4.5 KB |
list-objects.h | -rw-r--r-- | 382 bytes |
local-fetch.c | -rw-r--r-- | 6.0 KB |
lockfile.c | -rw-r--r-- | 2.1 KB |
log-tree.c | -rw-r--r-- | 10.0 KB |
log-tree.h | -rw-r--r-- | 386 bytes |
mailmap.c | -rw-r--r-- | 2.2 KB |
mailmap.h | -rw-r--r-- | 213 bytes |
match-trees.c | -rw-r--r-- | 7.1 KB |
merge-file.c | -rw-r--r-- | 2.4 KB |
merge-index.c | -rw-r--r-- | 2.4 KB |
merge-recursive.c | -rw-r--r-- | 44.2 KB |
merge-tree.c | -rw-r--r-- | 7.9 KB |
mktag.c | -rw-r--r-- | 3.7 KB |
mktree.c | -rw-r--r-- | 3.1 KB |
object-refs.c | -rw-r--r-- | 2.0 KB |
object.c | -rw-r--r-- | 5.5 KB |
object.h | -rw-r--r-- | 2.3 KB |
pack-check.c | -rw-r--r-- | 5.1 KB |
pack-redundant.c | -rw-r--r-- | 14.9 KB |
pack-write.c | -rw-r--r-- | 4.7 KB |
pack.h | -rw-r--r-- | 2.0 KB |
pager.c | -rw-r--r-- | 1.2 KB |
patch-delta.c | -rw-r--r-- | 2.2 KB |
patch-id.c | -rw-r--r-- | 1.6 KB |
patch-ids.c | -rw-r--r-- | 4.7 KB |
patch-ids.h | -rw-r--r-- | 490 bytes |
path-list.c | -rw-r--r-- | 2.2 KB |
path-list.h | -rw-r--r-- | 597 bytes |
path.c | -rw-r--r-- | 6.1 KB |
peek-remote.c | -rw-r--r-- | 1.4 KB |
pkt-line.c | -rw-r--r-- | 2.5 KB |
pkt-line.h | -rw-r--r-- | 348 bytes |
progress.c | -rw-r--r-- | 2.6 KB |
progress.h | -rw-r--r-- | 605 bytes |
quote.c | -rw-r--r-- | 8.0 KB |
quote.h | -rw-r--r-- | 2.0 KB |
reachable.c | -rw-r--r-- | 5.5 KB |
reachable.h | -rw-r--r-- | 127 bytes |
read-cache.c | -rw-r--r-- | 28.0 KB |
receive-pack.c | -rw-r--r-- | 12.1 KB |
reflog-walk.c | -rw-r--r-- | 6.7 KB |
reflog-walk.h | -rw-r--r-- | 384 bytes |
refs.c | -rw-r--r-- | 34.3 KB |
refs.h | -rw-r--r-- | 2.4 KB |
remote.c | -rw-r--r-- | 13.8 KB |
remote.h | -rw-r--r-- | 908 bytes |
revision.c | -rw-r--r-- | 36.7 KB |
revision.h | -rw-r--r-- | 3.1 KB |
rsh.c | -rw-r--r-- | 1.7 KB |
rsh.h | -rw-r--r-- | 158 bytes |
run-command.c | -rw-r--r-- | 3.5 KB |
run-command.h | -rw-r--r-- | 1.2 KB |
send-pack.c | -rw-r--r-- | 10.2 KB |
server-info.c | -rw-r--r-- | 5.1 KB |
setup.c | -rw-r--r-- | 9.2 KB |
sha1_file.c | -rw-r--r-- | 60.0 KB |
sha1_name.c | -rw-r--r-- | 16.0 KB |
shallow.c | -rw-r--r-- | 2.3 KB |
shell.c | -rw-r--r-- | 1.1 KB |
show-index.c | -rw-r--r-- | 2.1 KB |
sideband.c | -rw-r--r-- | 1.9 KB |
sideband.h | -rw-r--r-- | 335 bytes |
ssh-fetch.c | -rw-r--r-- | 3.6 KB |
ssh-pull.c | -rw-r--r-- | 154 bytes |
ssh-push.c | -rw-r--r-- | 155 bytes |
ssh-upload.c | -rw-r--r-- | 2.8 KB |
strbuf.c | -rw-r--r-- | 767 bytes |
strbuf.h | -rw-r--r-- | 216 bytes |
symlinks.c | -rw-r--r-- | 862 bytes |
tag.c | -rw-r--r-- | 2.8 KB |
tag.h | -rw-r--r-- | 471 bytes |
tar.h | -rw-r--r-- | 644 bytes |
test-chmtime.c | -rw-r--r-- | 1.2 KB |
test-date.c | -rw-r--r-- | 378 bytes |
test-delta.c | -rw-r--r-- | 1.8 KB |
test-genrandom.c | -rw-r--r-- | 731 bytes |
test-match-trees.c | -rw-r--r-- | 588 bytes |
test-sha1.c | -rw-r--r-- | 815 bytes |
test-sha1.sh | -rwxr-xr-x | 1.9 KB |
trace.c | -rw-r--r-- | 3.9 KB |
tree-diff.c | -rw-r--r-- | 10.8 KB |
tree-walk.c | -rw-r--r-- | 4.3 KB |
tree-walk.h | -rw-r--r-- | 1.2 KB |
tree.c | -rw-r--r-- | 5.5 KB |
tree.h | -rw-r--r-- | 860 bytes |
unpack-file.c | -rw-r--r-- | 821 bytes |
unpack-trees.c | -rw-r--r-- | 20.4 KB |
unpack-trees.h | -rw-r--r-- | 900 bytes |
update-server-info.c | -rw-r--r-- | 457 bytes |
upload-pack.c | -rw-r--r-- | 16.3 KB |
usage.c | -rw-r--r-- | 1.9 KB |
utf8.c | -rw-r--r-- | 9.9 KB |
utf8.h | -rw-r--r-- | 388 bytes |
var.c | -rw-r--r-- | 1.3 KB |
write_or_die.c | -rw-r--r-- | 2.3 KB |
wt-status.c | -rw-r--r-- | 9.3 KB |
wt-status.h | -rw-r--r-- | 566 bytes |
xdiff-interface.c | -rw-r--r-- | 4.5 KB |
xdiff-interface.h | -rw-r--r-- | 632 bytes |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...