Go to file
Junio C Hamano 7059cd99fc http_init(): Fix config file parsing
We honor the command line options, environment variables, variables in
repository configuration file, variables in user's global configuration
file, variables in the system configuration file, and then finally use
built-in default.  To implement this semantics, the code should:

 - start from built-in default values;

 - call git_config() with the configuration parser callback, which
   implements "later definition overrides earlier ones" logic
   (git_config() reads the system's, user's and then repository's
   configuration file in this order);

 - override the result from the above with environment variables if set;

 - override the result from the above with command line options.

The initialization code http_init() for http transfer got this wrong, and
implemented a "first one wins, ignoring the later ones" in http_options(),
to compensate this mistake, read environment variables before calling
git_config().  This is all wrong.

As a second class citizen, the http codepath hasn't been audited as
closely as other parts of the system, but we should try to bring sanity to
it, before inviting contributors to improve on it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-10 22:31:29 -07:00
Documentation parseopt: prevent KEEP_UNKNOWN and STOP_AT_NON_OPTION from being used together 2009-03-09 15:32:50 -07:00
arm
compat Brown paper bag fix for MinGW 64-bit stat 2009-03-07 12:22:13 -08:00
contrib git-p4: remove tabs from usermap file 2009-03-07 20:32:07 -08:00
git-gui
gitk-git Merge git://git.kernel.org/pub/scm/gitk/gitk 2009-03-01 22:20:52 -08:00
gitweb gitweb: Hyperlink multiple git hashes on the same commit message line 2009-02-19 22:49:55 -08:00
mozilla-sha1
perl
ppc
t Merge branch 'maint' 2009-03-07 22:34:13 -08:00
templates Modify description file to say what this file is 2009-03-04 00:56:52 -08:00
xdiff
.gitattributes
.gitignore
.mailmap
COPYING
GIT-VERSION-GEN GIT 1.6.2 2009-03-03 23:37:19 -08:00
INSTALL
Makefile Install builtins with the user and group of the installing personality 2009-02-24 21:46:31 -08:00
README README: fix path to "gitcvs-migration.txt" and be more consistent 2009-02-25 00:49:54 -08:00
RelNotes Beginning of 1.6.3 development track 2009-03-04 00:41:49 -08:00
abspath.c
alias.c
alloc.c
archive-tar.c
archive-zip.c
archive.c archive: use parseopt for local-only options 2009-03-08 13:37:21 -07:00
archive.h
attr.c
attr.h
base85.c
blob.c
blob.h
branch.c Teach the "@{-1} syntax to "git branch" 2009-02-13 23:46:28 -08:00
branch.h
builtin-add.c git add: trivial codestyle cleanup 2009-02-25 00:49:54 -08:00
builtin-annotate.c
builtin-apply.c
builtin-archive.c archive: use parseopt for local-only options 2009-03-08 13:37:21 -07:00
builtin-blame.c Merge branch 'jc/blame' 2009-03-05 15:41:43 -08:00
builtin-branch.c Merge branch 'js/branch-symref' 2009-03-05 15:41:35 -08:00
builtin-bundle.c
builtin-cat-file.c
builtin-check-attr.c
builtin-check-ref-format.c
builtin-checkout-index.c
builtin-checkout.c Fix neglect of diff_setup()/diff_setup_done() symmetry. 2009-03-04 00:56:51 -08:00
builtin-clean.c
builtin-clone.c Remove unused function scope local variables 2009-03-07 20:52:17 -08:00
builtin-commit-tree.c
builtin-commit.c
builtin-config.c git config: trivial cleanup for editor action 2009-02-21 20:35:48 -08:00
builtin-count-objects.c
builtin-describe.c
builtin-diff-files.c
builtin-diff-index.c
builtin-diff-tree.c
builtin-diff.c
builtin-fast-export.c Merge branch 'maint-1.6.0' into maint 2009-02-11 18:32:37 -08:00
builtin-fetch--tool.c
builtin-fetch-pack.c Remove unused function scope local variables 2009-03-07 20:52:17 -08:00
builtin-fetch.c
builtin-fmt-merge-msg.c Move local variables to narrower scopes 2009-03-07 20:52:23 -08:00
builtin-for-each-ref.c
builtin-fsck.c
builtin-gc.c gc: make --prune useful again by accepting an optional parameter 2009-02-14 21:14:07 -08:00
builtin-grep.c
builtin-help.c
builtin-http-fetch.c
builtin-init-db.c
builtin-log.c Enable setting attach as the default in .gitconfig for git-format-patch. 2009-02-12 14:48:43 -08:00
builtin-ls-files.c
builtin-ls-remote.c
builtin-ls-tree.c
builtin-mailinfo.c
builtin-mailsplit.c
builtin-merge-base.c
builtin-merge-file.c
builtin-merge-ours.c
builtin-merge-recursive.c
builtin-merge.c Teach @{-1} to git merge 2009-02-13 23:46:42 -08:00
builtin-mv.c
builtin-name-rev.c
builtin-pack-objects.c Merge branch 'jc/maint-1.6.0-pack-directory' 2009-02-25 14:50:05 -08:00
builtin-pack-refs.c
builtin-prune-packed.c
builtin-prune.c
builtin-push.c
builtin-read-tree.c
builtin-receive-pack.c improve missing repository error message 2009-03-04 20:37:21 -08:00
builtin-reflog.c
builtin-remote.c Remove unused function scope local variables 2009-03-07 20:52:17 -08:00
builtin-rerere.c rerere: remove duplicated functions 2009-02-14 21:27:35 -08:00
builtin-reset.c
builtin-rev-list.c rev-list: estimate number of bisection step left 2009-03-04 00:56:52 -08:00
builtin-rev-parse.c
builtin-revert.c Merge branch 'maint-1.6.1' into maint 2009-03-07 21:00:27 -08:00
builtin-rm.c
builtin-send-pack.c
builtin-shortlog.c
builtin-show-branch.c
builtin-show-ref.c
builtin-stripspace.c
builtin-symbolic-ref.c symbolic-ref: allow refs/<whatever> in HEAD 2009-02-13 18:20:44 -08:00
builtin-tag.c
builtin-tar-tree.c
builtin-unpack-objects.c
builtin-update-index.c Merge branch 'maint' 2009-02-19 23:44:07 -08:00
builtin-update-ref.c
builtin-upload-archive.c improve missing repository error message 2009-03-04 20:37:21 -08:00
builtin-verify-pack.c
builtin-verify-tag.c
builtin-write-tree.c
builtin.h
bundle.c
bundle.h
cache-tree.c
cache-tree.h
cache.h Support 'raw' date format 2009-02-20 21:45:42 -08:00
check-builtins.sh
check-racy.c
check_bindir
color.c Clean up use of ANSI color sequences 2009-02-13 17:27:58 -08:00
color.h Clean up use of ANSI color sequences 2009-02-13 17:27:58 -08:00
combine-diff.c Move local variables to narrower scopes 2009-03-07 20:52:23 -08:00
command-list.txt
commit.c
commit.h
config.c
config.mak.in
configure.ac
connect.c
convert.c
copy.c
csum-file.c
csum-file.h
ctype.c
daemon.c improve missing repository error message 2009-03-04 20:37:21 -08:00
date.c never fallback relative times to absolute 2009-02-25 00:44:43 -08:00
decorate.c
decorate.h
delta.h
diff-delta.c
diff-lib.c
diff-no-index.c MinGW: fix diff --no-index /dev/null ... 2009-03-07 20:36:16 -08:00
diff.c Remove unused function scope local variables 2009-03-07 20:52:17 -08:00
diff.h Use DIFF_XDL_SET/DIFF_OPT_SET instead of raw bit-masking 2009-03-04 00:56:51 -08:00
diffcore-break.c Remove unused function scope local variables 2009-03-07 20:52:17 -08:00
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c
diffcore-rename.c
diffcore.h
dir.c Merge branch 'fg/exclude-bq' 2009-03-05 15:41:39 -08:00
dir.h
editor.c
entry.c
environment.c
exec_cmd.c system_path(): simplify using strip_path_suffix(), and add suffix "git" 2009-02-19 22:47:39 -08:00
exec_cmd.h
fast-import.c Remove unused function scope local variables 2009-03-07 20:52:17 -08:00
fetch-pack.h
fixup-builtins
fsck.c Remove unused function scope local variables 2009-03-07 20:52:17 -08:00
fsck.h
generate-cmdlist.sh
git-add--interactive.perl Merge branch 'jc/add-p-unquote' 2009-03-05 15:41:41 -08:00
git-am.sh git-am: make --abort less dangerous 2009-02-26 23:06:38 -08:00
git-archimport.perl
git-bisect.sh rev-list: estimate number of bisection step left 2009-03-04 00:56:52 -08:00
git-compat-util.h cleanup: add isascii() 2009-03-07 11:22:42 -08:00
git-cvsexportcommit.perl
git-cvsimport.perl
git-cvsserver.perl
git-filter-branch.sh Improve error message for git-filter-branch 2009-03-04 00:56:52 -08:00
git-instaweb.sh
git-lost-found.sh
git-merge-octopus.sh
git-merge-one-file.sh
git-merge-resolve.sh
git-mergetool.sh
git-parse-remote.sh
git-pull.sh disallow providing multiple upstream branches to rebase, pull --rebase 2009-02-18 11:14:04 -08:00
git-quiltimport.sh git-quiltimport: preserve standard input to be able to read user input 2009-02-25 00:49:13 -08:00
git-rebase--interactive.sh
git-rebase.sh Merge branch 'sr/force-rebase' 2009-03-05 15:41:40 -08:00
git-relink.perl
git-repack.sh Make repack less likely to corrupt repository 2009-02-11 18:32:16 -08:00
git-request-pull.sh
git-send-email.perl send-email: add --confirm option and configuration setting 2009-03-02 23:46:53 -08:00
git-sh-setup.sh
git-stash.sh
git-submodule.sh Merge branch 'ff/submodule-no-fetch' 2009-02-15 01:44:20 -08:00
git-svn.perl git-svn: support intermediate paths when matching tags/branches 2009-03-09 14:52:12 -07:00
git-web--browse.sh
git.c
git.spec.in
graph.c
graph.h
grep.c
grep.h
hash-object.c Merge branch 'en/maint-hash-object' 2009-03-05 15:58:42 -08:00
hash.c
hash.h
help.c
help.h
http-push.c Merge branch 'rc/http-push' 2009-02-15 01:43:57 -08:00
http-walker.c
http.c http_init(): Fix config file parsing 2009-03-10 22:31:29 -07:00
http.h
ident.c
imap-send.c imap.preformattedHTML to tell Thunderbird to send non-flowed text 2009-02-15 00:32:57 -08:00
index-pack.c Merge branch 'jc/maint-1.6.0-pack-directory' 2009-02-25 14:50:05 -08:00
levenshtein.c
levenshtein.h
list-objects.c
list-objects.h
ll-merge.c
ll-merge.h
lockfile.c Make the 'lock file' exists error more informative 2009-03-04 20:35:19 -08:00
log-tree.c Move local variables to narrower scopes 2009-03-07 20:52:23 -08:00
log-tree.h
mailmap.c
mailmap.h
match-trees.c
merge-file.c
merge-index.c
merge-recursive.c
merge-recursive.h
merge-tree.c
mktag.c
mktree.c
name-hash.c
object.c
object.h
pack-check.c
pack-redundant.c
pack-refs.c
pack-refs.h
pack-revindex.c
pack-revindex.h
pack-write.c Merge branch 'jc/maint-1.6.0-pack-directory' 2009-02-25 14:50:05 -08:00
pack.h
pager.c
parse-options.c parseopt: prevent KEEP_UNKNOWN and STOP_AT_NON_OPTION from being used together 2009-03-09 15:32:50 -07:00
parse-options.h parseopt: add PARSE_OPT_NO_INTERNAL_HELP 2009-03-08 13:36:27 -07:00
patch-delta.c
patch-id.c
patch-ids.c
patch-ids.h
path.c Introduce the function strip_path_suffix() 2009-02-19 22:45:48 -08:00
pkt-line.c
pkt-line.h
preload-index.c
pretty.c Merge branch 'maint' 2009-03-07 22:34:13 -08:00
progress.c
progress.h
quote.c
quote.h
reachable.c
reachable.h
read-cache.c
reflog-walk.c
reflog-walk.h
refs.c
refs.h
remote.c
remote.h
rerere.c rerere: remove duplicated functions 2009-02-14 21:27:35 -08:00
rerere.h rerere: remove duplicated functions 2009-02-14 21:27:35 -08:00
revision.c Add --oneline that is a synonym to "--pretty=oneline --abbrev-commit" 2009-02-24 23:53:40 -08:00
revision.h
run-command.c
run-command.h
send-pack.h
server-info.c
setup.c
sha1-lookup.c
sha1-lookup.h
sha1_file.c sha1_file.c: fix typo 2009-02-25 00:49:54 -08:00
sha1_name.c Squelch overzealous "ignoring dangling symref" in an empty repository 2009-02-11 09:22:16 -08:00
shallow.c
shell.c
shortlog.h
show-index.c
sideband.c
sideband.h
sigchain.c
sigchain.h
strbuf.c
strbuf.h
string-list.c
string-list.h
symlinks.c
tag.c
tag.h
tar.h
test-chmtime.c
test-ctype.c
test-date.c
test-delta.c
test-dump-cache-tree.c
test-genrandom.c
test-match-trees.c
test-parse-options.c
test-path-utils.c Introduce the function strip_path_suffix() 2009-02-19 22:45:48 -08:00
test-sha1.c
test-sha1.sh
test-sigchain.c
thread-utils.c
thread-utils.h
trace.c trace: Fixed a minor typo in an error message. 2009-02-25 00:49:53 -08:00
transport.c
transport.h
tree-diff.c
tree-walk.c
tree-walk.h
tree.c
tree.h
unpack-file.c
unpack-trees.c
unpack-trees.h
update-server-info.c
upload-pack.c Move local variables to narrower scopes 2009-03-07 20:52:23 -08:00
usage.c
userdiff.c
userdiff.h
utf8.c
utf8.h
var.c
walker.c
walker.h
wrapper.c Merge branch 'jc/maint-1.6.0-pack-directory' 2009-02-28 16:31:02 -08:00
write_or_die.c
ws.c
wt-status.c Clean up use of ANSI color sequences 2009-02-13 17:27:58 -08:00
wt-status.h
xdiff-interface.c Remove unused function scope local variables 2009-03-07 20:52:17 -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/gittutorial.txt to get started, then see
Documentation/everyday.txt for a useful minimum set of commands, and
Documentation/git-commandname.txt for documentation of each command.
If git has been correctly installed, then the tutorial can also be
read with "man gittutorial" or "git help tutorial", and the
documentation of each command with "man git-commandname" or "git help
commandname".

CVS users may also want to read Documentation/gitcvs-migration.txt
("man gitcvs-migration" or "git help cvs-migration" if git is
installed).

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.