Go to file
Junio C Hamano 5e635e3960 lockfile: record the primary process.
The usual process flow is the main process opens and holds the lock to
the index, does its thing, perhaps spawning children during the course,
and then writes the resulting index out by releaseing the lock.

However, the lockfile interface uses atexit(3) to clean it up, without
regard to who actually created the lock.  This typically leads to a
confusing behaviour of lock being released too early when the child
exits, and then the parent process when it calls commit_lockfile()
finds that it cannot unlock it.

This fixes the problem by recording who created and holds the lock, and
upon atexit(3) handler, child simply ignores the lockfile the parent
created.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-21 11:55:23 -07:00
Documentation Document gitattributes(5) 2007-04-19 22:38:02 -07:00
arm
compat
contrib Merge branch 'maint' 2007-04-05 16:34:51 -07:00
git-gui Merge branch 'master' of git://repo.or.cz/git-gui 2007-03-12 23:14:07 -07:00
gitweb gitweb: Allow configuring the default projects order and add order 'none' 2007-04-10 17:24:35 -07:00
mozilla-sha1
perl Do not output "GEN " when generating perl.mak 2007-03-14 01:33:49 -07:00
ppc
t Update 'crlf' attribute semantics. 2007-04-19 22:37:44 -07:00
templates Reimplement emailing part of hooks--update in contrib/hooks/post-receive-email 2007-03-31 01:21:18 -07:00
xdiff xdiff/xutils.c(xdl_hash_record): factor out whitespace handling 2007-03-19 22:17:25 -07:00
.gitignore Add basic infrastructure to assign attributes to paths 2007-04-14 08:57:06 -07:00
.mailmap .mailmap maintenance after pulling from git-svn 2007-02-23 03:11:52 -08:00
COPYING
GIT-VERSION-GEN GIT 1.5.1.1 2007-04-11 17:19:36 -07:00
INSTALL
Makefile Documentation: support manual section (5) - file formats. 2007-04-19 20:47:04 -07:00
README Update README to point at a few key periodical messages to the list 2007-03-25 17:42:32 -07:00
RelNotes Start 1.5.2 cycle by prepareing RelNotes for it. 2007-04-07 23:59:32 -07:00
alloc.c
archive-tar.c convert object type handling from a string to a number 2007-02-27 01:34:21 -08:00
archive-zip.c convert object type handling from a string to a number 2007-02-27 01:34:21 -08:00
archive.h
attr.c Fix funny types used in attribute value representation 2007-04-18 16:17:13 -07:00
attr.h Fix funny types used in attribute value representation 2007-04-18 16:17:13 -07:00
base85.c (encode_85, decode_85): Mark source buffer pointer as "const". 2007-04-11 00:51:20 -07:00
blob.c convert object type handling from a string to a number 2007-02-27 01:34:21 -08:00
blob.h
builtin-add.c Merge branch 'jc/index-output' 2007-04-07 02:26:24 -07:00
builtin-annotate.c
builtin-apply.c Simplify calling of CR/LF conversion routines 2007-04-20 23:24:34 -07:00
builtin-archive.c git-archive: make tar the default format 2007-04-09 18:51:40 -07:00
builtin-blame.c blame: cmp_suspect is not "cmp" anymore. 2007-03-20 23:37:51 -07:00
builtin-branch.c Make builtin-branch.c handle the git config file 2007-04-06 16:54:39 -07:00
builtin-bundle.c Rename warn() to warning() to fix symbol conflicts on BSD and Mac OS 2007-03-31 01:11:11 -07:00
builtin-cat-file.c convert object type handling from a string to a number 2007-02-27 01:34:21 -08:00
builtin-check-attr.c Fix funny types used in attribute value representation 2007-04-18 16:17:13 -07:00
builtin-check-ref-format.c
builtin-checkout-index.c _GIT_INDEX_OUTPUT: allow plumbing to output to an alternative index file. 2007-04-03 23:44:32 -07:00
builtin-commit-tree.c Cleanup check_valid in commit-tree. 2007-02-27 21:40:18 -08:00
builtin-config.c git-config: document --rename-section, provide --remove-section 2007-03-03 19:59:37 -08:00
builtin-count-objects.c Cast 64 bit off_t to 32 bit size_t 2007-03-07 11:15:26 -08:00
builtin-describe.c Mechanical conversion to use prefixcmp() 2007-02-20 22:03:15 -08:00
builtin-diff-files.c Allow git-diff exit with codes similar to diff(1) 2007-03-14 16:21:19 -07:00
builtin-diff-index.c Allow git-diff exit with codes similar to diff(1) 2007-03-14 16:21:19 -07:00
builtin-diff-tree.c Allow git-diff exit with codes similar to diff(1) 2007-03-14 16:21:19 -07:00
builtin-diff.c Allow git-diff exit with codes similar to diff(1) 2007-03-14 16:21:19 -07:00
builtin-fetch--tool.c builtin-fetch--tool: fix reflog notes. 2007-02-28 17:02:18 -08:00
builtin-fmt-merge-msg.c Merge branch 'maint' 2007-02-27 22:15:42 -08:00
builtin-for-each-ref.c General const correctness fixes 2007-03-07 10:47:10 -08:00
builtin-fsck.c Merge branch 'maint' 2007-04-11 18:43:01 -07:00
builtin-gc.c Make gc a builtin. 2007-03-17 00:34:19 -07:00
builtin-grep.c sscanf/strtoul: parse integers robustly 2007-04-11 19:13:55 -07:00
builtin-init-db.c Mechanical conversion to use prefixcmp() 2007-02-20 22:03:15 -08:00
builtin-log.c Merge branch 'jc/cherry' 2007-04-12 21:04:27 -07:00
builtin-ls-files.c Optimize directory listing with pathspec limiter. 2007-03-31 17:41:32 -07:00
builtin-ls-tree.c prefixcmp(): fix-up leftover strncmp(). 2007-02-20 22:03:15 -08:00
builtin-mailinfo.c git-mailinfo fixes for patch munging 2007-03-31 00:59:19 -07:00
builtin-mailsplit.c
builtin-merge-base.c
builtin-merge-file.c
builtin-mv.c Merge branch 'jc/index-output' 2007-04-07 02:26:24 -07:00
builtin-name-rev.c Merge branch 'js/name-rev-fix' 2007-02-20 22:24:03 -08:00
builtin-pack-objects.c clean up and optimize nth_packed_object_sha1() usage 2007-04-05 14:59:47 -07:00
builtin-pack-refs.c Mechanical conversion to use prefixcmp() 2007-02-20 22:03:15 -08:00
builtin-prune-packed.c
builtin-prune.c minor git-prune optimization 2007-03-20 22:17:47 -07:00
builtin-push.c git-push to multiple locations does not stop at the first failure 2007-04-07 02:27:31 -07:00
builtin-read-tree.c Merge branch 'jc/read-tree-df' (early part) 2007-04-07 23:52:40 -07:00
builtin-reflog.c Initialize tree descriptors with a helper function rather than by hand. 2007-03-21 10:21:57 -07:00
builtin-rerere.c rerere: make sorting really stable. 2007-04-04 14:12:03 -07:00
builtin-rev-list.c Merge branch 'maint' 2007-04-05 16:34:51 -07:00
builtin-rev-parse.c prefixcmp(): fix-up leftover strncmp(). 2007-02-20 22:03:15 -08:00
builtin-revert.c git-revert: Revert revert message to old behaviour 2007-03-24 02:50:22 -07:00
builtin-rm.c _GIT_INDEX_OUTPUT: allow plumbing to output to an alternative index file. 2007-04-03 23:44:32 -07:00
builtin-runstatus.c
builtin-shortlog.c shortlog: prompt when reading from terminal by mistake 2007-03-14 01:33:41 -07:00
builtin-show-branch.c General const correctness fixes 2007-03-07 10:47:10 -08:00
builtin-show-ref.c Merge branch 'maint' 2007-02-24 01:42:06 -08:00
builtin-stripspace.c
builtin-symbolic-ref.c
builtin-tar-tree.c prefixcmp(): fix-up mechanical conversion. 2007-02-20 22:03:15 -08:00
builtin-unpack-objects.c convert object type handling from a string to a number 2007-02-27 01:34:21 -08:00
builtin-update-index.c sscanf/strtoul: parse integers robustly 2007-04-11 19:13:55 -07:00
builtin-update-ref.c
builtin-upload-archive.c
builtin-verify-pack.c
builtin-write-tree.c _GIT_INDEX_OUTPUT: allow plumbing to output to an alternative index file. 2007-04-03 23:44:32 -07:00
builtin.h Add basic infrastructure to assign attributes to paths 2007-04-14 08:57:06 -07:00
cache-tree.c
cache-tree.h
cache.h lockfile: record the primary process. 2007-04-21 11:55:23 -07:00
check-builtins.sh
check-racy.c
color.c
color.h
combine-diff.c Cast 64 bit off_t to 32 bit size_t 2007-03-07 11:15:26 -08:00
commit.c Add %m to '--pretty=format:' 2007-04-11 20:02:03 -07:00
commit.h Merge branch 'js/commit-format' 2007-03-02 00:37:12 -08:00
config.c Fix renaming branch without config file 2007-04-05 14:53:22 -07:00
config.mak.in Add --with-tcltk and --without-tcltk to configure. 2007-03-31 23:59:47 -07:00
configure.ac Eliminate checks of user-specified Tcl/Tk interpreter. 2007-03-31 23:59:47 -07:00
connect.c Fix "getaddrinfo()" buglet 2007-03-27 13:00:13 -07:00
convert-objects.c sscanf/strtoul: parse integers robustly 2007-04-11 19:13:55 -07:00
convert.c convert.c: restructure the attribute checking part. 2007-04-21 11:55:23 -07:00
copy.c
csum-file.c
csum-file.h
ctype.c
daemon.c prefixcmp(): fix-up mechanical conversion. 2007-02-20 22:03:15 -08:00
date.c show_date(): rename the "relative" parameter to "mode" 2007-02-27 17:29:37 -08:00
delta.h
diff-delta.c
diff-lib.c Do not default to --no-index when given two directories. 2007-04-13 19:34:35 -07:00
diff.c Simplify calling of CR/LF conversion routines 2007-04-20 23:24:34 -07:00
diff.h diff --quiet 2007-03-14 16:21:19 -07:00
diffcore-break.c Cast 64 bit off_t to 32 bit size_t 2007-03-07 11:15:26 -08:00
diffcore-delta.c
diffcore-order.c Cast 64 bit off_t to 32 bit size_t 2007-03-07 11:15:26 -08:00
diffcore-pickaxe.c
diffcore-rename.c Cast 64 bit off_t to 32 bit size_t 2007-03-07 11:15:26 -08:00
diffcore.h
dir.c Optimize directory listing with pathspec limiter. 2007-03-31 17:41:32 -07:00
dir.h Optimize directory listing with pathspec limiter. 2007-03-31 17:41:32 -07:00
dump-cache-tree.c
entry.c Simplify calling of CR/LF conversion routines 2007-04-20 23:24:34 -07:00
environment.c Limit the size of the new delta_base_cache 2007-03-18 22:43:37 -07:00
exec_cmd.c Mechanical conversion to use prefixcmp() 2007-02-20 22:03:15 -08:00
exec_cmd.h
fast-import.c Rename warn() to warning() to fix symbol conflicts on BSD and Mac OS 2007-03-31 01:11:11 -07:00
fetch-pack.c Merge branch 'js/fetch-progress' (early part) 2007-03-04 17:31:21 -08:00
fetch.c Initialize tree descriptors with a helper function rather than by hand. 2007-03-21 10:21:57 -07:00
fetch.h
generate-cmdlist.sh
git-add--interactive.perl
git-am.sh Use diff* with --exit-code in git-am, git-rebase and git-merge-ours 2007-03-24 23:01:36 -07:00
git-applymbox.sh applymbox: brown paper bag fix. 2007-03-16 21:22:05 -07:00
git-applypatch.sh
git-archimport.perl git-archimport: allow remapping branch names 2007-03-07 10:30:22 -08:00
git-bisect.sh git-bisect: allow bisecting with only one bad commit. 2007-04-06 17:55:57 -07:00
git-checkout.sh checkout: allow detaching to HEAD even when switching to the tip of a branch 2007-04-03 23:43:59 -07:00
git-clean.sh
git-clone.sh http-fetch: don't use double-slash as directory separator in URLs 2007-03-28 04:44:16 -07:00
git-commit.sh git-read-tree --index-output=<file> 2007-04-03 23:44:32 -07:00
git-compat-util.h sscanf/strtoul: parse integers robustly 2007-04-11 19:13:55 -07:00
git-cvsexportcommit.perl cvsexportcommit -p : fix the usage of git-apply -C. 2007-04-09 18:52:41 -07:00
git-cvsimport.perl cvsimport: Improve usage error reporting 2007-04-06 16:46:11 -07:00
git-cvsserver.perl cvsserver: Fix handling of diappeared files on update 2007-04-11 16:55:33 -07:00
git-fetch.sh Merge branch 'js/fetch-progress' 2007-04-08 23:27:22 -07:00
git-instaweb.sh
git-lost-found.sh Fix lost-found to show commits only referenced by reflogs 2007-04-05 15:00:03 -07:00
git-ls-remote.sh Add git-bundle: move objects and references by archive 2007-02-22 22:30:33 -08:00
git-merge-octopus.sh
git-merge-one-file.sh
git-merge-ours.sh Use diff* with --exit-code in git-am, git-rebase and git-merge-ours 2007-03-24 23:01:36 -07:00
git-merge-resolve.sh
git-merge-stupid.sh
git-merge.sh A new merge stragety 'subtree'. 2007-04-07 02:29:40 -07:00
git-mergetool.sh mergetool: Clean up description of files and prompts for merge resolutions 2007-03-29 22:46:16 -04:00
git-p4import.py
git-parse-remote.sh git-fetch, git-branch: Support local --track via a special remote '.' 2007-03-16 02:10:12 -07:00
git-pull.sh
git-quiltimport.sh git-quiltimport complaining yet still working 2007-04-14 03:39:36 -07:00
git-rebase.sh Use rev-list --reverse in git-rebase.sh 2007-04-13 19:06:40 -07:00
git-relink.perl
git-remote.perl Teach git-remote to list pushed branches. 2007-03-20 01:54:49 -07:00
git-repack.sh
git-request-pull.sh
git-reset.sh
git-send-email.perl Avoid composing too long "References" header. 2007-04-06 16:49:44 -07:00
git-sh-setup.sh
git-svn.perl git-svn: fix log command to avoid infinite loop on long commit messages 2007-04-08 19:54:07 -07:00
git-svnimport.perl
git-tag.sh
git-verify-tag.sh
git.c Add basic infrastructure to assign attributes to paths 2007-04-14 08:57:06 -07:00
git.spec.in RPM spec: include git-p4 in the list of all packages. 2007-04-04 16:01:49 -07:00
gitk [PATCH] prefer "git COMMAND" over "git-COMMAND" in gitk 2007-03-21 22:02:19 +11:00
grep.c
grep.h
hash-object.c index_fd(): pass optional path parameter as hint for blob conversion 2007-02-28 12:00:00 -08:00
help.c use xrealloc in help.c 2007-03-27 16:57:57 -07:00
http-fetch.c Fix lseek(2) calls with args 2 and 3 swapped 2007-04-05 15:39:12 -07:00
http-push.c Fix lseek(2) calls with args 2 and 3 swapped 2007-04-05 15:39:12 -07:00
http.c
http.h
ident.c
imap-send.c prefixcmp(): fix-up leftover strncmp(). 2007-02-20 22:03:15 -08:00
index-pack.c Plug memory leak in index-pack collision checking codepath. 2007-04-03 19:04:56 -07:00
interpolate.c General const correctness fixes 2007-03-07 10:47:10 -08:00
interpolate.h General const correctness fixes 2007-03-07 10:47:10 -08:00
list-objects.c Initialize tree descriptors with a helper function rather than by hand. 2007-03-21 10:21:57 -07:00
list-objects.h
local-fetch.c [PATCH] local-fetch.c: some error printing cleanup 2007-03-16 21:27:35 -07:00
lockfile.c lockfile: record the primary process. 2007-04-21 11:55:23 -07:00
log-tree.c Add custom subject prefix support to format-patch (take 3) 2007-04-11 18:48:30 -07:00
log-tree.h
match-trees.c A new merge stragety 'subtree'. 2007-04-07 02:29:40 -07:00
merge-file.c convert object type handling from a string to a number 2007-02-27 01:34:21 -08:00
merge-index.c Fix merge-index 2007-03-19 02:48:37 -07:00
merge-recursive.c Fix bogus linked-list management for user defined merge drivers. 2007-04-21 00:05:31 -07:00
merge-tree.c Remove "pathlen" from "struct name_entry" 2007-03-21 10:21:56 -07:00
mktag.c convert object type handling from a string to a number 2007-02-27 01:34:21 -08:00
mktree.c convert object type handling from a string to a number 2007-02-27 01:34:21 -08:00
object-refs.c
object.c Don't ever return corrupt objects from "parse_object()" 2007-03-20 22:17:17 -07:00
object.h get rid of lookup_object_type() 2007-02-27 01:34:21 -08:00
pack-check.c clean up and optimize nth_packed_object_sha1() usage 2007-04-05 14:59:47 -07:00
pack-redundant.c [PATCH] clean up pack index handling a bit 2007-03-16 21:27:36 -07:00
pack.h [PATCH] clean up pack index handling a bit 2007-03-16 21:27:36 -07:00
pager.c
patch-delta.c
patch-id.c
patch-ids.c Refactor patch-id filtering out of git-cherry and git-format-patch. 2007-04-11 20:02:03 -07:00
patch-ids.h Refactor patch-id filtering out of git-cherry and git-format-patch. 2007-04-11 20:02:03 -07:00
path-list.c
path-list.h
path.c General const correctness fixes 2007-03-07 10:47:10 -08:00
peek-remote.c prefixcmp(): fix-up mechanical conversion. 2007-02-20 22:03:15 -08:00
pkt-line.c
pkt-line.h
quote.c
quote.h
reachable.c Initialize tree descriptors with a helper function rather than by hand. 2007-03-21 10:21:57 -07:00
reachable.h
read-cache.c Merge branch 'jc/read-tree-df' (early part) 2007-04-07 23:52:40 -07:00
receive-pack.c Use run_command within receive-pack to invoke index-pack 2007-03-12 23:40:18 -07:00
reflog-walk.c
reflog-walk.h
refs.c Make builtin-branch.c handle the git config file 2007-04-06 16:54:39 -07:00
refs.h
revision.c Merge branch 'jc/cherry' 2007-04-12 21:04:27 -07:00
revision.h git-log --cherry-pick A...B 2007-04-11 20:02:03 -07:00
rsh.c
rsh.h
run-command.c Teach run-command to redirect stdout to /dev/null 2007-03-12 23:40:17 -07:00
run-command.h Teach run-command to redirect stdout to /dev/null 2007-03-12 23:40:17 -07:00
send-pack.c Use run_command within send-pack 2007-03-12 23:40:18 -07:00
server-info.c
setup.c Merge branch 'maint' 2007-03-10 22:07:26 -08:00
sha1_file.c Simplify calling of CR/LF conversion routines 2007-04-20 23:24:34 -07:00
sha1_name.c clean up and optimize nth_packed_object_sha1() usage 2007-04-05 14:59:47 -07:00
shallow.c
shell.c Mechanical conversion to use prefixcmp() 2007-02-20 22:03:15 -08:00
show-index.c
sideband.c
sideband.h
ssh-fetch.c
ssh-pull.c
ssh-push.c
ssh-upload.c
strbuf.c
strbuf.h
tag.c get rid of lookup_object_type() 2007-02-27 01:34:21 -08:00
tag.h
tar.h
test-chmtime.c Add test-chmtime: a utility to change mtime on files 2007-02-25 11:09:56 -08:00
test-date.c
test-delta.c
test-match-trees.c A new merge stragety 'subtree'. 2007-04-07 02:29:40 -07:00
test-sha1.c
test-sha1.sh
trace.c git-branch, git-checkout: autosetup for remote branch tracking 2007-03-10 23:41:58 -08:00
tree-diff.c tree_entry_interesting(): allow it to say "everything is interesting" 2007-03-22 00:36:00 -07:00
tree-walk.c Switch over tree descriptors to contain a pre-parsed entry 2007-03-21 11:15:26 -07:00
tree-walk.h Switch over tree descriptors to contain a pre-parsed entry 2007-03-21 11:15:26 -07:00
tree.c Initialize tree descriptors with a helper function rather than by hand. 2007-03-21 10:21:57 -07:00
tree.h
unpack-file.c convert object type handling from a string to a number 2007-02-27 01:34:21 -08:00
unpack-trees.c Fix switching to a branch with D/F when current branch has file D. 2007-04-04 00:25:10 -07:00
unpack-trees.h unpack-trees: get rid of *indpos parameter. 2007-04-04 00:19:28 -07:00
update-server-info.c
upload-pack.c git-upload-pack: make sure we close unused pipe ends 2007-03-29 01:41:23 -07:00
usage.c Rename warn() to warning() to fix symbol conflicts on BSD and Mac OS 2007-03-31 01:11:11 -07:00
utf8.c Merge branch 'maint' 2007-03-03 19:47:46 -08:00
utf8.h Actually make print_wrapped_text() useful 2007-02-27 17:29:02 -08:00
var.c
write_or_die.c
wt-status.c Optimize directory listing with pathspec limiter. 2007-03-31 17:41:32 -07:00
wt-status.h
xdiff-interface.c Cast 64 bit off_t to 32 bit size_t 2007-03-07 11:15:26 -08:00
xdiff-interface.h

README

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

	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.