swh:1:snp:bb8853bfef8fcf2b1d37fd6404912c7606c98e48
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
History
Tip revision: 19981daefd7c147444462739375462b49412ce33 authored by Junio C Hamano on 05 April 2024, 17:49:37 UTC
The fifteenth batch
Tip revision: 19981da
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

README

back to top