1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-11-08 18:23:01 +01:00
Find a file
Johannes Sixt 897bb8cb2c Windows: A pipe() replacement whose ends are not inherited to children.
On Unix the idiom to use a pipe is as follows:

    pipe(fd);
    pid = fork();
    if (!pid) {
        dup2(fd[1], 1);
        close(fd[1]);
        close(fd[0]);
        ...
     }
     close(fd[1]);

i.e. the child process closes the both pipe ends after duplicating one
to the file descriptors where they are needed.

On Windows, which does not have fork(), we never have an opportunity to
(1) duplicate a pipe end in the child, (2) close unused pipe ends. Instead,
we must use this idiom:

    save1 = dup(1);
    pipe(fd);
    dup2(fd[1], 1);
    spawn(...);
    dup2(save1, 1);
    close(fd[1]);

i.e. save away the descriptor at the destination slot, replace by the pipe
end, spawn process, restore the saved file.

But there is a problem: Notice that the child did not only inherit the
dup2()ed descriptor, but also *both* original pipe ends. Although the one
end that was dup()ed could be closed before the spawn(), we cannot close
the other end - the child inherits it, no matter what.

The solution is to generate non-inheritable pipes. At the first glance,
this looks strange: The purpose of pipes is usually to be inherited to
child processes. But notice that in the course of actions as outlined
above, the pipe descriptor that we want to inherit to the child is
dup2()ed, and as it so happens, Windows's dup2() creates inheritable
duplicates.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
2008-06-23 13:40:31 +02:00
arm
compat Windows: A pipe() replacement whose ends are not inherited to children. 2008-06-23 13:40:31 +02:00
contrib completion: add more 'git add' options 2008-06-14 12:47:44 -07:00
Documentation Windows: Use the Windows style PATH separator ';'. 2008-06-22 11:32:45 +02:00
git-gui Merge git://repo.or.cz/git-gui 2008-05-26 19:10:43 -07:00
gitk-git Merge git://git.kernel.org/pub/scm/gitk/gitk 2008-06-11 16:22:53 -07:00
gitweb gitweb: remove unused parse_ref method 2008-06-17 16:39:18 -07:00
mozilla-sha1
perl Git.pm: fix return value of config method 2008-06-01 22:28:27 -07:00
ppc
t clean up error conventions of remote.c:match_explicit 2008-06-18 12:39:13 -07:00
templates Fix prepare-commit-msg hook and replace in-place sed 2008-05-21 09:45:53 -07:00
xdiff xdl_merge(): introduce XDL_MERGE_ZEALOUS_ALNUM 2008-02-18 00:10:37 -08:00
.gitattributes Define the project whitespace policy 2008-02-11 13:23:15 -08:00
.gitignore use build-time SHELL_PATH in test scripts 2008-02-29 00:00:29 -08:00
.mailmap Sync with 1.5.4.2 and start 1.5.5 Release Notes 2008-02-17 01:51:46 -08:00
alias.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
alloc.c
archive-tar.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
archive-zip.c git-archive: ignore prefix when checking file attribute 2008-04-10 00:20:38 -07:00
archive.c archive.c: format_subst - fixed bogus argument to memchr 2008-04-22 21:23:16 -07:00
archive.h
attr.c Ignore .gitattributes in bare repositories 2008-06-09 15:08:26 -07:00
attr.h
base85.c
blob.c
blob.h
branch.c Allow tracking branches to set up rebase by default. 2008-05-12 17:16:40 -07:00
branch.h branch: optionally setup branch.*.merge from upstream local branches 2008-02-19 21:17:45 -08:00
builtin-add.c git add: add long equivalents of '-u' and '-f' options 2008-06-14 12:47:31 -07:00
builtin-annotate.c
builtin-apply.c Merge branch 'js/config-cb' 2008-05-25 14:25:02 -07:00
builtin-archive.c Move sha1_file_to_archive into libgit 2008-01-18 12:33:50 -08:00
builtin-blame.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-branch.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-bundle.c Always set *nongit_ok in setup_git_directory_gently() 2008-03-26 15:41:35 -07:00
builtin-cat-file.c cat-file --batch / --batch-check: do not exit if hashes are missing 2008-06-09 13:46:08 -07:00
builtin-check-attr.c
builtin-check-ref-format.c
builtin-checkout-index.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-checkout.c checkout: "best effort" checkout 2008-05-29 17:35:22 -07:00
builtin-clean.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-clone.c Use nonrelative paths instead of absolute paths for cloned repositories 2008-06-06 11:23:10 -07:00
builtin-commit-tree.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-commit.c commit: drop duplicated parents 2008-06-02 23:55:57 -07:00
builtin-config.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-count-objects.c
builtin-describe.c describe: match pattern for lightweight tags too 2008-06-04 13:08:03 -07:00
builtin-diff-files.c Merge branch 'jc/diff-no-no-index' 2008-05-26 22:38:19 -07:00
builtin-diff-index.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-diff-tree.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-diff.c Merge branch 'jc/diff-no-no-index' 2008-05-26 22:38:19 -07:00
builtin-fast-export.c fast-export: Correctly generate initial commits with no parents 2008-06-12 22:42:20 -07:00
builtin-fetch--tool.c Error out when user doesn't have access permission to the repository 2007-11-30 13:10:11 -08:00
builtin-fetch-pack.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-fetch.c builtin-fetch.c (store_updated_refs): Honor update_local_ref() return value 2008-05-28 10:47:12 -07:00
builtin-fmt-merge-msg.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-for-each-ref.c builtin-for-each-ref.c: fix typo in error message 2008-02-24 18:34:34 -08:00
builtin-fsck.c Merge branch 'mk/maint-parse-careful' 2008-03-02 15:11:07 -08:00
builtin-gc.c Merge branch 'js/config-cb' 2008-05-25 14:25:02 -07:00
builtin-grep.c add NO_EXTERNAL_GREP build option 2008-03-13 00:57:53 -07:00
builtin-http-fetch.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-init-db.c git-init: accept --bare option 2008-05-28 18:31:19 -07:00
builtin-log.c Merge branch 'js/config-cb' 2008-05-25 14:25:02 -07:00
builtin-ls-files.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-ls-remote.c Always set *nongit_ok in setup_git_directory_gently() 2008-03-26 15:41:35 -07:00
builtin-ls-tree.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-mailinfo.c Merge branch 'js/config-cb' 2008-05-25 14:25:02 -07:00
builtin-mailsplit.c mailsplit: minor clean-up in read_line_with_nul() 2008-05-25 13:23:57 -07:00
builtin-merge-base.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-merge-file.c Merge branch 'maint' 2008-03-14 00:16:42 -07:00
builtin-merge-ours.c
builtin-merge-recursive.c Merge branch 'js/merge-recursive' 2008-06-09 16:13:10 -07:00
builtin-mv.c Merge branch 'js/config-cb' 2008-05-25 14:25:02 -07:00
builtin-name-rev.c Merge branch 'maint' 2008-06-06 09:21:48 -07:00
builtin-pack-objects.c Remove now unnecessary 'sync()' calls 2008-05-31 14:49:29 -07:00
builtin-pack-refs.c Improve use of lockfile API 2008-01-16 15:35:35 -08:00
builtin-prune-packed.c Remove now unnecessary 'sync()' calls 2008-05-31 14:49:29 -07:00
builtin-prune.c Remove now unnecessary 'sync()' calls 2008-05-31 14:49:29 -07:00
builtin-push.c Add a remote.*.mirror configuration option 2008-04-20 18:49:22 -07:00
builtin-read-tree.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-reflog.c Make git reflog expire honour core.sharedRepository. 2008-06-15 15:54:06 -07:00
builtin-remote.c "remote prune": be quiet when there is nothing to prune 2008-06-11 23:43:25 -07:00
builtin-rerere.c builtin-rerere: fix a small leak 2008-06-17 16:39:59 -07:00
builtin-reset.c git-reset: honor -q and do not show progress message 2008-05-31 18:10:58 -07:00
builtin-rev-list.c Merge branch 'js/config-cb' 2008-05-25 14:25:02 -07:00
builtin-rev-parse.c Merge branch 'js/config-cb' 2008-05-25 14:25:02 -07:00
builtin-revert.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-rm.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-send-pack.c add special "matching refs" refspec 2008-05-04 17:41:39 -07:00
builtin-shortlog.c Merge branch 'maint-1.5.4' into maint 2008-04-12 15:41:19 -07:00
builtin-show-branch.c Merge branch 'maint' 2008-05-26 19:49:01 -07:00
builtin-show-ref.c deref_tag: handle return value NULL 2008-02-17 23:46:55 -08:00
builtin-stripspace.c
builtin-symbolic-ref.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-tag.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-tar-tree.c
builtin-unpack-objects.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-update-index.c Merge branch 'js/config-cb' 2008-05-25 14:25:02 -07:00
builtin-update-ref.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-upload-archive.c
builtin-verify-pack.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-verify-tag.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-write-tree.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin.h Print info about "git help COMMAND" on git's main usage pages 2008-06-06 09:22:18 -07:00
bundle.c start_command(), if .in/.out > 0, closes file descriptors, not the callers 2008-02-23 11:59:44 -08:00
bundle.h
cache-tree.c Merge branch 'maint-1.5.4' into maint 2008-04-24 21:50:48 -07:00
cache-tree.h Make error messages from cherry-pick/revert more sensible 2008-02-05 00:39:19 -08:00
cache.h Windows: Treat Windows style path names. 2008-06-23 13:30:22 +02:00
check-builtins.sh
check-racy.c
color.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
color.h Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
combine-diff.c Cleanup xread() loops to use read_in_full() 2008-05-03 22:15:25 -07:00
command-list.txt Officially deprecate repo-config. 2008-01-17 22:52:40 -08:00
commit.c Remove unused code in parse_commit_buffer() 2008-06-08 13:46:37 -07:00
commit.h log: teach "terminator" vs "separator" mode to "--pretty=format" 2008-04-10 03:25:03 -07:00
config.c Merge branch 'js/config-cb' 2008-05-25 14:25:02 -07:00
config.mak.in autoconf: Test FREAD_READS_DIRECTORIES 2008-03-11 02:10:43 -07:00
configure.ac Consistency: Use "libcurl" instead of "cURL library" and "curl" 2008-06-15 13:35:10 -07:00
connect.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
convert.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
copy.c copy.c: copy_fd - correctly report write errors 2008-04-22 21:21:08 -07:00
COPYING
csum-file.c Make pack creation always fsync() the result 2008-05-31 14:46:57 -07:00
csum-file.h Make pack creation always fsync() the result 2008-05-31 14:46:57 -07:00
ctype.c
daemon.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
date.c Make my_mktime() public and rename it to tm_to_time_t() 2008-06-23 13:40:29 +02:00
decorate.c
decorate.h
delta.h
diff-delta.c fix style of a few comments in diff-delta.c 2007-12-18 15:22:28 -08:00
diff-lib.c "git diff": do not ignore index without --no-index 2008-05-24 00:16:39 -07:00
diff-no-index.c git diff --no-index: default to page like other diff frontends 2008-05-26 22:35:07 -07:00
diff.c Merge branch 'maint' 2008-06-16 17:39:50 -07:00
diff.h Merge branch 'jc/diff-no-no-index' 2008-05-26 22:38:19 -07:00
diffcore-break.c rename: Break filepairs with different types. 2007-12-02 02:24:46 -08:00
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c
diffcore-rename.c diff: make "too many files" rename warning optional 2008-05-03 13:40:43 -07:00
diffcore.h
dir.c Merge branch 'lt/case-insensitive' 2008-05-10 18:14:28 -07:00
dir.h gitignore: lazily find dtype 2008-02-05 00:46:49 -08:00
dump-cache-tree.c
entry.c Fix possible Solaris problem in 'checkout_entry()' 2008-03-18 22:18:57 -07:00
environment.c Merge branch 'db/clone-in-c' 2008-05-25 13:41:37 -07:00
exec_cmd.c Windows: Use the Windows style PATH separator ';'. 2008-06-22 11:32:45 +02:00
exec_cmd.h
fast-import.c Make pack creation always fsync() the result 2008-05-31 14:46:57 -07:00
fetch-pack.h Teach fetch-pack/upload-pack about --include-tag 2008-03-04 23:28:14 -08:00
fixup-builtins
fsck.c fsck.c: fix bogus "empty tree" check 2008-03-05 10:32:01 -08:00
fsck.h add common fsck error printing function 2008-02-25 23:57:35 -08:00
generate-cmdlist.sh Consolidate command list to one. 2007-12-01 23:48:28 -08:00
git-add--interactive.perl add--interactive: allow user to choose mode update 2008-03-27 13:54:57 -07:00
git-am.sh git-am: head -1 is obsolete and doesn't work on some new systems 2008-06-17 16:40:09 -07:00
git-archimport.perl
git-bisect.sh bisect: use "$GIT_DIR/BISECT_START" to check if we are bisecting 2008-05-28 11:47:58 -07:00
git-compat-util.h Make my_mktime() public and rename it to tm_to_time_t() 2008-06-23 13:40:29 +02:00
git-cvsexportcommit.perl Merge branch 'js/cvsexportcommit' 2008-05-25 13:37:20 -07:00
git-cvsimport.perl git-cvsimport: do not fail when CVSROOT is / 2008-06-10 22:24:01 -07:00
git-cvsserver.perl git-cvsserver: add ability to guess -kb from contents 2008-05-16 12:05:35 -07:00
git-filter-branch.sh Merge 1.5.5.3 in 2008-05-27 22:34:19 -07:00
git-instaweb.sh git-instaweb: improve auto-discovery of httpd and call conventions. 2008-06-13 22:08:30 -07:00
git-lost-found.sh
git-merge-octopus.sh
git-merge-one-file.sh git-merge-one-file: fix longstanding stupid thinko 2008-03-18 22:17:17 -07:00
git-merge-resolve.sh
git-merge-stupid.sh
git-merge.sh git-merge: exclude unnecessary options from OPTIONS_SPEC 2008-05-21 12:54:49 -07:00
git-mergetool.sh mergetool: Make ECMerge use the settings as specified by the user in the GUI 2008-05-11 10:12:19 -07:00
git-parse-remote.sh
git-pull.sh pull --rebase: exit early when the working directory is dirty 2008-05-22 23:05:11 -07:00
git-quiltimport.sh quiltimport: fix misquoting of parsed -p<num> parameter 2008-03-12 21:07:19 -07:00
git-rebase--interactive.sh git-rebase -i: mention the short command aliases in the todo list 2008-06-08 13:46:37 -07:00
git-rebase.sh Ignore dirty submodule states during rebase and stash 2008-05-15 16:12:43 -07:00
git-relink.perl git-relink: avoid hard linking in objects/info directory 2008-01-30 00:01:27 -08:00
git-repack.sh Remove now unnecessary 'sync()' calls 2008-05-31 14:49:29 -07:00
git-request-pull.sh
git-send-email.perl git-send-email: allow whitespace in addressee list 2008-06-08 13:46:38 -07:00
git-sh-setup.sh Simplify setup of $GIT_DIR in git-sh-setup.sh 2008-02-18 21:53:44 -08:00
git-stash.sh Ignore dirty submodule states during rebase and stash 2008-05-15 16:12:43 -07:00
git-submodule.sh git-submodule - Fix errors regarding resolve_relative_url 2008-06-14 11:34:00 -07:00
git-svn.perl git-svn: don't append extra newlines at the end of commit messages. 2008-06-14 11:47:55 -07:00
GIT-VERSION-GEN GIT 1.5.6 2008-06-18 13:09:43 -07:00
git-web--browse.sh web--browse: use custom commands defined at config time 2008-03-14 00:31:06 -07:00
git.c Windows: Strip ".exe" from the program name. 2008-06-23 13:34:55 +02:00
git.spec.in Update RPM spec to drop curl executable requirement 2008-06-15 13:47:14 -07:00
graph.c git log --graph: print '*' for all commits, including merges 2008-06-06 11:56:43 -07:00
graph.h log --graph --left-right: show left/right information in place of '*' 2008-05-25 12:06:52 -07:00
grep.c
grep.h
hash-object.c Merge branch 'js/config-cb' 2008-05-25 14:25:02 -07:00
hash.c Add 'const' where appropriate to index handling functions 2008-03-09 00:43:48 -08:00
hash.h Add 'const' where appropriate to index handling functions 2008-03-09 00:43:48 -08:00
help.c Print info about "git help COMMAND" on git's main usage pages 2008-06-06 09:22:18 -07:00
http-push.c http-push.c: remove duplicated code 2008-06-08 13:46:37 -07:00
http-walker.c Make walker.fetch_ref() take a struct ref. 2008-04-26 17:36:17 -07:00
http.c Don't allocate too much memory in quote_ref_url 2008-06-14 12:53:09 -07:00
http.h Make walker.fetch_ref() take a struct ref. 2008-04-26 17:36:17 -07:00
ident.c commit: Show committer if automatic 2008-05-06 16:50:17 -07:00
imap-send.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
index-pack.c Make pack creation always fsync() the result 2008-05-31 14:46:57 -07:00
INSTALL The "curl" executable is no longer required 2008-06-15 13:44:44 -07:00
interpolate.c Avoid unnecessary "if-before-free" tests. 2008-02-22 14:14:40 -08:00
interpolate.h
list-objects.c list-objects.c::process_tree/blob: check for NULL 2008-02-18 19:25:26 -08:00
list-objects.h
ll-merge.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
ll-merge.h merge-recursive: split low-level merge functions out. 2008-02-18 00:46:13 -08:00
lockfile.c rollback lock files on more signals than just SIGINT 2008-05-31 14:33:59 -07:00
log-tree.c log --graph --left-right: show left/right information in place of '*' 2008-05-25 12:06:52 -07:00
log-tree.h Remove dead code: show_log() sep argument and diff_options.msg_sep 2008-05-03 11:48:03 -07:00
mailmap.c mailmap: fix bogus for() loop that happened to be safe by accident 2007-12-08 03:40:12 -08:00
mailmap.h
Makefile Windows: Strip ".exe" from the program name. 2008-06-23 13:34:55 +02:00
match-trees.c
merge-file.c xdl_diff: identify call sites. 2007-12-13 23:04:26 -08:00
merge-index.c git-merge-index documentation: clarify synopsis 2008-02-22 07:02:40 -08:00
merge-recursive.h Build-in merge-recursive 2008-02-09 23:16:51 -08:00
merge-tree.c Make 'traverse_trees()' traverse conflicting DF entries in parallel 2008-03-09 00:43:47 -08:00
mktag.c mktag.c: tweak validation of tagger field and adjust test script 2008-03-31 22:43:34 -07:00
mktree.c
name-hash.c Make hash_name_lookup able to do case-independent lookups 2008-04-09 01:22:25 -07:00
object.c parse_object_buffer: don't ignore errors from the object specific parsing functions 2008-02-03 16:04:57 -08:00
object.h Remove unused object-ref code 2008-02-25 23:57:35 -08:00
pack-check.c make verify-pack a bit more useful with bad packs 2008-06-01 23:25:38 -07:00
pack-redundant.c
pack-revindex.c factorize revindex code out of builtin-pack-objects.c 2008-03-01 01:44:45 -08:00
pack-revindex.h factorize revindex code out of builtin-pack-objects.c 2008-03-01 01:44:45 -08:00
pack-write.c Make pack creation always fsync() the result 2008-05-31 14:46:57 -07:00
pack.h
pager.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
parse-options.c Merge branch 'maint-1.5.4' into maint 2008-04-10 00:29:33 -07:00
parse-options.h parse-options.c: introduce OPT_DATE 2008-03-27 13:55:15 -07:00
patch-delta.c
patch-id.c
patch-ids.c
patch-ids.h
path-list.c path-list: add functions to work with unsorted lists 2008-03-01 01:51:44 -08:00
path-list.h path-list: add functions to work with unsorted lists 2008-03-01 01:51:44 -08:00
path.c make_nonrelative_path: Use is_absolute_path() 2008-06-08 10:48:01 -07:00
pkt-line.c Cleanup xread() loops to use read_in_full() 2008-05-03 22:15:25 -07:00
pkt-line.h
pretty.c log --pretty: do not accept bogus "--prettyshort" 2008-05-25 20:29:07 -07:00
progress.c progress.c: avoid use of dynamic-sized array 2008-06-08 13:56:32 -07:00
progress.h
quote.c Merge branch 'dp/clean-fix' 2008-03-08 21:29:56 -08:00
quote.h Make private quote_path() in wt-status.c available as quote_path_relative() 2008-03-07 21:22:25 -08:00
reachable.c Merge branch 'mk/maint-parse-careful' 2008-02-18 20:56:01 -08:00
reachable.h
read-cache.c Add shortcut in refresh_cache_ent() for marked entries. 2008-05-31 14:18:20 -07:00
README
receive-pack.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
reflog-walk.c
reflog-walk.h
refs.c Merge branch 'db/clone-in-c' 2008-05-25 13:41:37 -07:00
refs.h Allow for having for_each_ref() list extra refs 2008-05-04 17:41:44 -07:00
RelNotes GIT 1.5.5.4 2008-06-07 11:45:48 -07:00
remote.c clean up error conventions of remote.c:match_explicit 2008-06-18 12:39:13 -07:00
remote.h Merge branch 'db/clone-in-c' 2008-05-25 13:41:37 -07:00
revision.c log --pretty: do not accept bogus "--prettyshort" 2008-05-25 20:29:07 -07:00
revision.h log and rev-list: add --graph option 2008-05-05 18:46:35 -07:00
run-command.c run-command: Redirect stderr to a pipe before redirecting stdout to stderr 2008-03-05 12:18:03 -08:00
run-command.h start_command(), if .in/.out > 0, closes file descriptors, not the callers 2008-02-23 11:59:44 -08:00
send-pack.h
server-info.c Don't access line[-1] for a zero-length "line" from fgets. 2008-01-04 12:28:58 -08:00
setup.c Windows: Treat Windows style path names. 2008-06-23 13:30:22 +02:00
sha1-lookup.c sha1-lookup: make selection of 'middle' less aggressive 2008-04-09 01:30:18 -07:00
sha1-lookup.h sha1-lookup: more memory efficient search in sorted list of SHA-1 2008-04-09 01:23:52 -07:00
sha1_file.c Windows: Handle absolute paths in safe_create_leading_directories(). 2008-06-23 13:30:27 +02:00
sha1_name.c Merge branch 'maint-1.5.4' into maint 2008-04-29 22:55:07 -07:00
shallow.c Merge branch 'mk/maint-parse-careful' 2008-02-18 20:56:01 -08:00
shell.c
shortlog.h Add API access to shortlog 2008-02-25 19:57:06 -08:00
show-index.c
sideband.c recv_sideband: Do not use ANSI escape sequence on dumb terminals. 2008-01-09 12:23:59 -08:00
sideband.h
strbuf.c Avoid a useless prefix lookup in strbuf_expand() 2008-02-09 23:57:08 -08:00
strbuf.h Avoid a useless prefix lookup in strbuf_expand() 2008-02-09 23:57:08 -08:00
symlinks.c Optimize symlink/directory detection 2008-05-10 18:16:31 -07:00
tag.c Merge branch 'mk/maint-parse-careful' 2008-03-02 15:11:07 -08:00
tag.h
tar.h
test-absolute-path.c
test-chmtime.c
test-date.c
test-delta.c
test-genrandom.c
test-match-trees.c
test-parse-options.c parse-options: new option type to treat an option-like parameter as an argument. 2008-03-02 14:07:47 -08:00
test-sha1.c
test-sha1.sh more tr portability test script fixes 2008-03-13 00:57:52 -07:00
thread-utils.c pack-objects: Add runtime detection of online CPU's 2008-02-23 12:00:32 -08:00
thread-utils.h pack-objects: Add runtime detection of online CPU's 2008-02-23 12:00:32 -08:00
trace.c Trace and quote with argv: get rid of unneeded count argument. 2007-12-03 22:11:53 -08:00
transport.c Merge branch 'db/clone-in-c' 2008-05-25 13:41:37 -07:00
transport.h Mark the list of refs to fetch as const 2008-05-04 17:41:44 -07:00
tree-diff.c Fix small memory leaks induced by diff_tree_setup_paths 2007-12-12 10:59:22 -08:00
tree-walk.c Fix tree-walking compare_entry() in the presense of --prefix 2008-03-09 00:43:47 -08:00
tree-walk.h Make 'traverse_trees()' traverse conflicting DF entries in parallel 2008-03-09 00:43:47 -08:00
tree.c Merge branch 'mk/maint-parse-careful' 2008-03-02 15:11:07 -08:00
tree.h
unpack-file.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
unpack-trees.c unpack_trees(): allow callers to differentiate worktree errors from merge errors 2008-05-29 17:35:21 -07:00
unpack-trees.h unpack-trees: allow Porcelain to give different error messages 2008-05-19 19:30:13 -07:00
update-server-info.c
upload-pack.c Teach fetch-pack/upload-pack about --include-tag 2008-03-04 23:28:14 -08:00
usage.c
utf8.c utf8_width(): allow non NUL-terminated input 2008-01-06 20:53:46 -08:00
utf8.h utf8_width(): allow non NUL-terminated input 2008-01-06 20:53:46 -08:00
var.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
walker.c Fix "git clone http://$URL" to check out the worktree when asked 2008-06-04 13:33:25 -07:00
walker.h Make walker.fetch_ref() take a struct ref. 2008-04-26 17:36:17 -07:00
write_or_die.c Make pack creation always fsync() the result 2008-05-31 14:46:57 -07:00
ws.c git-apply --whitespace=fix: fix off by one thinko 2008-02-26 12:24:40 -08:00
wt-status.c Merge branch 'js/config-cb' 2008-05-25 14:25:02 -07:00
wt-status.h Merge branch 'js/config-cb' 2008-05-25 14:25:02 -07:00
xdiff-interface.c Merge branch 'maint' 2008-03-14 00:16:42 -07:00
xdiff-interface.h xdl_diff: identify call sites. 2007-12-13 23:04:26 -08: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.