1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-11-06 17:23:00 +01:00
Find a file
Shawn O. Pearce b6f3481bb4 Teach fast-import to recursively copy files/directories
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>
2007-07-15 01:41:23 -04:00
arm War on whitespace 2007-06-07 00:04:01 -07:00
compat Merge branch 'maint' to sync with GIT 1.5.2.2 2007-06-16 01:22:10 -07:00
contrib Fix git-p4 on Windows to not use the Posix sysconf function. 2007-07-14 22:47:14 -04:00
Documentation Teach fast-import to recursively copy files/directories 2007-07-15 01:41:23 -04:00
git-gui Merge branch 'master' of git://repo.or.cz/git-gui 2007-06-28 21:32:41 -07:00
gitweb gitweb: make "No commits" in project list gray, not bold green 2007-07-07 14:18:29 -07:00
mozilla-sha1 War on whitespace 2007-06-07 00:04:01 -07:00
perl War on whitespace 2007-06-07 00:04:01 -07:00
ppc War on whitespace 2007-06-07 00:04:01 -07:00
t Teach fast-import to recursively copy files/directories 2007-07-15 01:41:23 -04:00
templates Remove trailing slash from $(template_dir). 2007-06-12 00:23:31 -07:00
xdiff Per-path attribute based hunk header selection. 2007-07-06 01:20:47 -07:00
.gitignore Merge branch 'ns/stash' 2007-07-02 01:45:57 -07:00
.mailmap Update draft Release Notes for 1.5.3 2007-07-03 19:04:38 -07:00
alloc.c
archive-tar.c rename dirlink to gitlink. 2007-05-21 23:34:54 -07:00
archive-zip.c rename dirlink to gitlink. 2007-05-21 23:34:54 -07:00
archive.h
attr.c
attr.h
base85.c decode_85(): fix missing return. 2007-05-30 15:03:50 -07:00
blob.c
blob.h
builtin-add.c builtin-add: simplify (and increase accuracy of) exclude handling 2007-06-13 00:41:52 -07:00
builtin-annotate.c War on whitespace 2007-06-07 00:04:01 -07:00
builtin-apply.c Merge branch 'maint' 2007-07-07 12:29:09 -07:00
builtin-archive.c
builtin-blame.c Future-proof source for changes in xdemitconf_t 2007-07-06 00:22:12 -07:00
builtin-branch.c branch.autosetupmerge: allow boolean values, or "all" 2007-07-08 18:24:19 -07:00
builtin-bundle.c
builtin-cat-file.c
builtin-check-attr.c
builtin-check-ref-format.c
builtin-checkout-index.c
builtin-commit-tree.c
builtin-config.c getenv/setenv: use constants if available 2007-07-02 01:33:44 -07:00
builtin-count-objects.c Simplify index access condition in count-objects, pack-redundant 2007-05-29 23:30:11 -07:00
builtin-describe.c Teach git-describe how to run name-rev 2007-05-21 23:56:28 -07:00
builtin-diff-files.c
builtin-diff-index.c War on whitespace 2007-06-07 00:04:01 -07:00
builtin-diff-tree.c
builtin-diff.c
builtin-fetch--tool.c Merge branch 'sv/checkout' 2007-05-20 02:18:47 -07:00
builtin-fmt-merge-msg.c War on whitespace 2007-06-07 00:04:01 -07:00
builtin-for-each-ref.c
builtin-fsck.c git-fsck: add --lost-found option 2007-07-02 21:34:12 -07:00
builtin-gc.c Make "git gc" pack all refs by default 2007-05-24 19:05:39 -07:00
builtin-grep.c
builtin-init-db.c git-init: set core.worktree if GIT_WORK_TREE is specified 2007-07-04 12:53:30 -07:00
builtin-log.c Handle format.subjectprefix for every command which accepts --pretty 2007-07-04 12:39:58 -07:00
builtin-ls-files.c Merge branch 'ei/worktree+filter' 2007-07-01 13:10:42 -07:00
builtin-ls-tree.c Merge branch 'jn/lstree' 2007-05-23 00:17:47 -07:00
builtin-mailinfo.c More missing static 2007-06-08 02:37:19 -07:00
builtin-mailsplit.c More missing static 2007-06-08 02:37:19 -07:00
builtin-merge-base.c
builtin-merge-file.c git-merge-file: refuse to merge binary files 2007-06-04 23:10:29 -07:00
builtin-mv.c
builtin-name-rev.c War on whitespace 2007-06-07 00:04:01 -07:00
builtin-pack-objects.c pack-objects: Prefer shallower deltas if the size is equal 2007-07-08 23:48:17 -07:00
builtin-pack-refs.c Don't ignore a pack-refs write failure 2007-06-26 21:49:44 -07:00
builtin-prune-packed.c
builtin-prune.c
builtin-push.c Move refspec pattern matching to match_refs(). 2007-05-26 01:20:10 -07:00
builtin-read-tree.c Document git read-tree --trivial 2007-06-16 13:08:09 -07:00
builtin-reflog.c
builtin-rerere.c rerere: record resolution even if file is not in merge base 2007-07-09 23:39:59 -07:00
builtin-rev-list.c Revert 88494423 (removal of duplicate parents in the output codepath) 2007-07-08 23:18:22 -07:00
builtin-rev-parse.c introduce GIT_WORK_TREE to specify the work tree 2007-06-06 16:07:53 -07:00
builtin-revert.c More static 2007-06-13 02:02:10 -07:00
builtin-rm.c
builtin-runstatus.c
builtin-shortlog.c War on whitespace 2007-06-07 00:04:01 -07:00
builtin-show-branch.c Lift 16kB limit of log message output 2007-06-13 00:41:21 -07:00
builtin-show-ref.c
builtin-stripspace.c Fix git-stripspace to process correctly long lines and spaces. 2007-06-26 21:55:55 -07:00
builtin-symbolic-ref.c
builtin-tar-tree.c
builtin-unpack-objects.c
builtin-update-index.c rename dirlink to gitlink. 2007-05-21 23:34:54 -07:00
builtin-update-ref.c
builtin-upload-archive.c
builtin-verify-pack.c
builtin-write-tree.c
builtin.h Fix git-stripspace to process correctly long lines and spaces. 2007-06-26 21:55:55 -07:00
cache-tree.c Two trivial -Wcast-qual fixes 2007-06-22 23:19:43 -07:00
cache-tree.h
cache.h Add core.pager config variable. 2007-07-04 10:09:32 -07:00
check-builtins.sh
check-racy.c
color.c
color.h
combine-diff.c Future-proof source for changes in xdemitconf_t 2007-07-06 00:22:12 -07:00
commit.c Merge branch 'jc/oneline' 2007-06-22 23:33:08 -07:00
commit.h Lift 16kB limit of log message output 2007-06-13 00:41:21 -07:00
config.c Add core.pager config variable. 2007-07-04 10:09:32 -07:00
config.mak.in War on whitespace 2007-06-07 00:04:01 -07:00
configure.ac
connect.c Add allocation and freeing functions for struct refs 2007-07-09 23:39:59 -07:00
convert-objects.c War on whitespace 2007-06-07 00:04:01 -07:00
convert.c Fix mishandling of $Id$ expanded in the repository copy in convert.c 2007-05-26 01:12:43 -07:00
copy.c War on whitespace 2007-06-07 00:04:01 -07:00
COPYING
csum-file.c More static 2007-06-13 02:02:10 -07:00
csum-file.h More static 2007-06-13 02:02:10 -07:00
ctype.c War on whitespace 2007-06-07 00:04:01 -07:00
daemon.c Missing statics. 2007-06-08 02:37:19 -07:00
date.c War on whitespace 2007-06-07 00:04:01 -07:00
decorate.c
decorate.h
delta.h
diff-delta.c diff-delta: use realloc instead of xrealloc 2007-05-31 00:15:18 -07:00
diff-lib.c diff-lib.c: don't strdup twice 2007-07-07 11:53:49 -07:00
diff.c diff.c: make built-in hunk header pattern a separate table 2007-07-08 00:25:59 -07:00
diff.h Finally implement "git log --follow" 2007-06-22 23:37:11 -07:00
diffcore-break.c diffcore_count_changes: pass diffcore_filespec 2007-06-30 20:51:31 -07:00
diffcore-delta.c Introduce diff_filespec_is_binary() 2007-07-06 00:21:41 -07:00
diffcore-order.c
diffcore-pickaxe.c War on whitespace 2007-06-07 00:04:01 -07:00
diffcore-rename.c Merge branch 'jc/diffcore' 2007-07-02 01:45:12 -07:00
diffcore.h Fix configuration syntax to specify customized hunk header patterns. 2007-07-07 01:49:58 -07:00
dir.c Fix ALLOC_GROW calls with obsolete semantics 2007-06-16 18:00:07 -07:00
dir.h builtin-add: simplify (and increase accuracy of) exclude handling 2007-06-13 00:41:52 -07:00
dump-cache-tree.c
entry.c War on whitespace 2007-06-07 00:04:01 -07:00
environment.c Add core.pager config variable. 2007-07-04 10:09:32 -07:00
exec_cmd.c
exec_cmd.h
fast-import.c Teach fast-import to recursively copy files/directories 2007-07-15 01:41:23 -04:00
fetch-pack.c War on whitespace 2007-06-07 00:04:01 -07:00
fetch.c Merge branch 'maint' 2007-06-26 18:45:29 -07:00
fetch.h
fixup-builtins Start deprecating "git-command" in favor of "git command" 2007-07-02 22:39:10 -07:00
generate-cmdlist.sh More static 2007-06-13 02:02:10 -07:00
git-add--interactive.perl
git-am.sh Enable "git rerere" by the config variable rerere.enabled 2007-07-06 22:39:15 -07:00
git-archimport.perl War on whitespace 2007-06-07 00:04:01 -07:00
git-bisect.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-checkout.sh Alter git-checkout reflog message to include "from" branch 2007-07-04 12:56:02 -07:00
git-clean.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-clone.sh make git-clone GIT_WORK_TREE aware 2007-07-05 23:00:50 -07:00
git-commit.sh git-commit: don't add multiple Signed-off-by: from the same identity 2007-07-08 18:24:19 -07:00
git-compat-util.h git-log: detect dup and fdopen failure 2007-06-27 21:02:44 -07:00
git-cvsexportcommit.perl War on whitespace 2007-06-07 00:04:01 -07:00
git-cvsimport.perl git-cvsimport: force checkout of working tree after initial import 2007-06-28 21:16:53 -07:00
git-cvsserver.perl cvsserver: always initialize state in argsplit() 2007-07-06 23:13:34 -07:00
git-fetch.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-filter-branch.sh filter-branch: fail gracefully when a filter fails 2007-07-05 22:16:28 -07:00
git-instaweb.sh
git-lost-found.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-ls-remote.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-merge-octopus.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-merge-one-file.sh Fix merge-one-file for our-side-added/our-side-removed cases 2007-07-08 18:24:19 -07:00
git-merge-ours.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-merge-resolve.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-merge-stupid.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-merge.sh Enable "git rerere" by the config variable rerere.enabled 2007-07-06 22:39:15 -07:00
git-mergetool.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-p4import.py War on whitespace 2007-06-07 00:04:01 -07:00
git-parse-remote.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-pull.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-quiltimport.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-rebase--interactive.sh rebase -i: put a nice warning into the todo list 2007-07-08 18:24:19 -07:00
git-rebase.sh Enable "git rerere" by the config variable rerere.enabled 2007-07-06 22:39:15 -07:00
git-relink.perl
git-remote.perl Add -v|--verbose to git remote to show remote url 2007-07-05 22:12:59 -07:00
git-repack.sh repack: don't report "Nothing new to pack." if -q is given 2007-07-04 10:12:26 -07:00
git-request-pull.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-reset.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-send-email.perl git-send-email: allow an email alias for --from 2007-07-06 23:16:59 -07:00
git-sh-setup.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-stash.sh git-stash: try reusing cached stat info as much as possible 2007-07-08 18:24:18 -07:00
git-submodule.sh git-submodule: Fix two instances of the same typo 2007-07-04 10:00:38 -07:00
git-svn.perl git-svn: fix blocking with svn:// servers after do_switch 2007-07-04 21:06:07 -07:00
git-svnimport.perl Generate tags with correct timestamp (git-svnimport) 2007-06-22 22:13:49 -07:00
git-tag.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-verify-tag.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
GIT-VERSION-GEN GIT 1.5.2.3 2007-07-02 00:35:58 -07:00
git.c Remove USE_PAGER from git-pickaxe and git-annotate 2007-07-04 21:06:12 -07:00
git.spec.in git.spec: RPM failed, looking for wrong files. 2007-06-26 18:06:58 -07:00
gitk gitk: Update selection background colorbar in prefs dialog 2007-06-28 10:08:53 +10:00
grep.c Move buffer_is_binary() to xdiff-interface.h 2007-06-15 23:27:23 -07:00
grep.h
hash-object.c
help.c War on whitespace 2007-06-07 00:04:01 -07:00
http-fetch.c War on whitespace 2007-06-07 00:04:01 -07:00
http-push.c War on whitespace 2007-06-07 00:04:01 -07:00
http.c War on whitespace 2007-06-07 00:04:01 -07:00
http.h
ident.c Prefer EMAIL to username@hostname. 2007-07-05 23:22:12 -07:00
imap-send.c War on whitespace 2007-06-07 00:04:01 -07:00
index-pack.c detect close failure on just-written file handles 2007-06-26 21:48:53 -07:00
INSTALL INSTALL: explain how to build documentation 2007-06-20 16:22:09 -07:00
interpolate.c Lift 16kB limit of log message output 2007-06-13 00:41:21 -07:00
interpolate.h Lift 16kB limit of log message output 2007-06-13 00:41:21 -07:00
list-objects.c rename dirlink to gitlink. 2007-05-21 23:34:54 -07:00
list-objects.h
local-fetch.c War on whitespace 2007-06-07 00:04:01 -07:00
lockfile.c War on whitespace 2007-06-07 00:04:01 -07:00
log-tree.c Handle missing prefix for "Subject:" as if no prefix given 2007-07-04 12:39:43 -07:00
log-tree.h
mailmap.c War on whitespace 2007-06-07 00:04:01 -07:00
mailmap.h
Makefile Makefile: rebuild git.o on version change, clean up git$X flags 2007-07-09 23:39:59 -07:00
match-trees.c War on whitespace 2007-06-07 00:04:01 -07:00
merge-file.c Future-proof source for changes in xdemitconf_t 2007-07-06 00:22:12 -07:00
merge-index.c War on whitespace 2007-06-07 00:04:01 -07:00
merge-recursive.c merge-recursive: refuse to merge binary files 2007-06-15 23:28:10 -07:00
merge-tree.c Future-proof source for changes in xdemitconf_t 2007-07-06 00:22:12 -07:00
mktag.c Remove unnecessary code and comments on non-existing 8kB tag object restriction 2007-06-09 10:51:46 -07:00
mktree.c
object-refs.c War on whitespace 2007-06-07 00:04:01 -07:00
object.c Don't assume tree entries that are not dirs are blobs 2007-06-06 15:43:18 -07:00
object.h War on whitespace 2007-06-07 00:04:01 -07:00
pack-check.c pack-check: Sort entries by pack offset before unpacking them. 2007-06-06 16:04:02 -07:00
pack-redundant.c War on whitespace 2007-06-07 00:04:01 -07:00
pack-write.c Unify write_index_file functions 2007-06-02 13:14:18 -07:00
pack.h Unify write_index_file functions 2007-06-02 13:14:18 -07:00
pager.c Add core.pager config variable. 2007-07-04 10:09:32 -07:00
patch-delta.c
patch-id.c War on whitespace 2007-06-07 00:04:01 -07:00
patch-ids.c
patch-ids.h
path-list.c War on whitespace 2007-06-07 00:04:01 -07:00
path-list.h
path.c getenv/setenv: use constants if available 2007-07-02 01:33:44 -07:00
peek-remote.c
pkt-line.c War on whitespace 2007-06-07 00:04:01 -07:00
pkt-line.h
progress.c Fix the progress code to output LF only when it is really needed 2007-05-23 11:30:49 -07:00
progress.h Fix the progress code to output LF only when it is really needed 2007-05-23 11:30:49 -07:00
quote.c Add core.quotepath configuration variable. 2007-06-24 15:11:42 -07:00
quote.h Even more missing static 2007-06-08 02:54:57 -07:00
reachable.c Merge branch 'maint' 2007-07-02 17:12:48 -07:00
reachable.h
read-cache.c git add: respect core.filemode with unmerged entries 2007-07-01 13:26:05 -07:00
README
receive-pack.c
reflog-walk.c
reflog-walk.h
refs.c detect close failure on just-written file handles 2007-06-26 21:48:53 -07:00
refs.h
RelNotes GIT 1.5.2.3 2007-07-02 00:35:58 -07:00
remote.c Some cosmetic changes to remote library 2007-07-09 23:39:59 -07:00
remote.h Add allocation and freeing functions for struct refs 2007-07-09 23:39:59 -07:00
revision.c revision.c: remove duplicated parents after history simplification 2007-07-08 23:18:08 -07:00
revision.h More missing static 2007-06-08 02:37:19 -07:00
rsh.c
rsh.h War on whitespace 2007-06-07 00:04:01 -07:00
run-command.c Allow environment variables to be unset in the processes started by run_command 2007-05-23 22:38:44 -07:00
run-command.h Allow environment variables to be unset in the processes started by run_command 2007-05-23 22:38:44 -07:00
send-pack.c Move refspec pattern matching to match_refs(). 2007-05-26 01:20:10 -07:00
server-info.c
setup.c Do not check if getcwd() result begins with a slash. 2007-07-04 12:45:42 -07:00
sha1_file.c Merge branch 'maint' 2007-07-03 22:56:59 -07:00
sha1_name.c Active_nr is unsigned, hence can't be < 0 2007-06-08 02:37:18 -07:00
shallow.c War on whitespace 2007-06-07 00:04:01 -07:00
shell.c
show-index.c
sideband.c
sideband.h
ssh-fetch.c
ssh-pull.c
ssh-push.c
ssh-upload.c War on whitespace 2007-06-07 00:04:01 -07:00
strbuf.c War on whitespace 2007-06-07 00:04:01 -07:00
strbuf.h
symlinks.c
tag.c Merge branch 'maint-1.5.1' into maint 2007-05-28 23:54:26 -07:00
tag.h
tar.h
test-chmtime.c
test-date.c
test-delta.c
test-genrandom.c
test-match-trees.c
test-sha1.c
test-sha1.sh
trace.c
tree-diff.c Fix up "git log --follow" a bit.. 2007-06-22 23:37:21 -07:00
tree-walk.c War on whitespace 2007-06-07 00:04:01 -07:00
tree-walk.h Two trivial -Wcast-qual fixes 2007-06-22 23:19:43 -07:00
tree.c Merge branch 'sv/objfixes' 2007-06-06 15:43:24 -07:00
tree.h
unpack-file.c
unpack-trees.c Merge branch 'maint-1.5.1' into maint 2007-05-20 19:57:00 -07:00
unpack-trees.h
update-server-info.c
upload-pack.c Even more missing static 2007-06-08 02:54:57 -07:00
usage.c
utf8.c
utf8.h
var.c War on whitespace 2007-06-07 00:04:01 -07:00
write_or_die.c Don't fflush(stdout) when it's not helpful 2007-06-30 20:16:12 -07:00
wt-status.c Missing statics. 2007-06-08 02:37:19 -07:00
wt-status.h
xdiff-interface.c Per-path attribute based hunk header selection. 2007-07-06 01:20:47 -07:00
xdiff-interface.h Per-path attribute based hunk header selection. 2007-07-06 01:20:47 -07:00

////////////////////////////////////////////////////////////////

	GIT - the stupid content tracker

////////////////////////////////////////////////////////////////

"git" can mean anything, depending on your mood.

 - random three-letter combination that is pronounceable, and not
   actually used by any common UNIX command.  The fact that it is a
   mispronunciation of "get" may or may not be relevant.
 - stupid. contemptible and despicable. simple. Take your pick from the
   dictionary of slang.
 - "global information tracker": you're in a good mood, and it actually
   works for you. Angels sing, and a light suddenly fills the room.
 - "goddamn idiotic truckload of sh*t": when it breaks

Git is a fast, scalable, distributed revision control system with an
unusually rich command set that provides both high-level operations
and full access to internals.

Git is an Open Source project covered by the GNU General Public License.
It was originally written by Linus Torvalds with help of a group of
hackers around the net. It is currently maintained by Junio C Hamano.

Please read the file INSTALL for installation instructions.
See Documentation/tutorial.txt to get started, then see
Documentation/everyday.txt for a useful minimum set of commands,
and "man git-commandname" for documentation of each command.
CVS users may also want to read Documentation/cvs-migration.txt.

Many Git online resources are accessible from http://git.or.cz/
including full documentation and Git related tools.

The user discussion and development of Git take place on the Git
mailing list -- everyone is welcome to post bug reports, feature
requests, comments and patches to git@vger.kernel.org. To subscribe
to the list, send an email with just "subscribe git" in the body to
majordomo@vger.kernel.org. The mailing list archives are available at
http://marc.theaimsgroup.com/?l=git and other archival sites.

The messages titled "A note from the maintainer", "What's in
git.git (stable)" and "What's cooking in git.git (topics)" and
the discussion following them on the mailing list give a good
reference for project status, development direction and
remaining tasks.