Go to file
Jeff King 4e10738a93 Allow per-command pager config
There is great debate over whether some commands should set
up a pager automatically. This patch allows individuals to
set their own pager preferences for each command, overriding
the default. For example, to disable the pager for git
status:

  git config pager.status false

If "--pager" or "--no-pager" is specified on the command
line, it takes precedence over the config option.

There are two caveats:

  - you can turn on the pager for plumbing commands.
    Combined with "core.pager = always", this will probably
    break a lot of things. Don't do it.

  - This only works for builtin commands. The reason is
    somewhat complex:

    Calling git_config before we do setup_git_directory
    has bad side effects, because it wants to know where
    the git_dir is to find ".git/config". Unfortunately,
    we cannot call setup_git_directory indiscriminately,
    because some builtins (like "init") break if we do.

    For builtins, this is OK, since we can just wait until
    after we call setup_git_directory. But for aliases, we
    don't know until we expand (recursively) which command
    we're doing. This should not be a huge problem for
    aliases, which can simply use "--pager" or "--no-pager"
    in the alias as appropriate.

    For external commands, however, we don't know we even
    have an external command until we exec it, and by then
    it is too late to check the config.

    An alternative approach would be to have a config mode
    where we don't bother looking at .git/config, but only
    at the user and system config files. This would make the
    behavior consistent across builtins, aliases, and
    external commands, at the cost of not allowing per-repo
    pager config for at all.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-07-06 02:20:24 -07:00
Documentation Merge branch 'qq/maint' 2008-07-05 18:33:16 -07:00
arm
compat Windows: Fix ntohl() related warnings about printf formatting 2008-06-26 08:47:17 +02:00
contrib Documentation: remove {show,whatchanged}.difftree config options 2008-06-28 20:55:26 -07:00
git-gui
gitk-git Merge git://git.kernel.org/pub/scm/gitk/gitk 2008-06-11 16:22:53 -07:00
gitweb Merge branch 'lw/gitweb' 2008-06-25 13:19:53 -07:00
mozilla-sha1
perl
ppc
t Fix apply --recount handling of no-EOL line 2008-07-05 00:37:44 -07:00
templates Merge branch 'j6t/mingw' 2008-07-02 21:57:52 -07:00
xdiff
.gitattributes
.gitignore Retire 'stupid' merge strategy 2008-07-05 10:43:46 -07:00
.mailmap
COPYING
GIT-VERSION-GEN GIT-VERSION-GEN: do not fail if a 'HEAD' file exists in the working copy 2008-06-28 10:53:11 -07:00
INSTALL The "curl" executable is no longer required 2008-06-15 13:44:44 -07:00
Makefile Retire 'stupid' merge strategy 2008-07-05 10:43:46 -07:00
README
RelNotes Start draft release notes for 1.5.6.2 2008-07-01 17:09:21 -07:00
abspath.c shrink git-shell by avoiding redundant dependencies 2008-06-27 23:22:00 -07:00
alias.c
alloc.c
archive-tar.c Teach new attribute 'export-ignore' to git-archive 2008-06-09 14:53:46 -07:00
archive-zip.c Teach new attribute 'export-ignore' to git-archive 2008-06-09 14:53:46 -07:00
archive.c Teach new attribute 'export-ignore' to git-archive 2008-06-09 14:53:46 -07:00
archive.h Teach new attribute 'export-ignore' to git-archive 2008-06-09 14:53:46 -07:00
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
branch.h
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 Fix apply --recount handling of no-EOL line 2008-07-05 00:37:44 -07:00
builtin-archive.c
builtin-blame.c
builtin-branch.c
builtin-bundle.c
builtin-cat-file.c git cat-file: Fix memory leak in batch mode 2008-06-28 19:50:56 -07:00
builtin-check-attr.c
builtin-check-ref-format.c
builtin-checkout-index.c
builtin-checkout.c
builtin-clean.c
builtin-clone.c Merge branch 'js/maint-clone-insteadof' 2008-07-01 16:22:22 -07:00
builtin-commit-tree.c commit-tree: lift completely arbitrary limit of 16 parents 2008-06-27 23:36:59 -07:00
builtin-commit.c Merge branch 'qq/maint' 2008-07-05 18:33:16 -07:00
builtin-config.c
builtin-count-objects.c
builtin-describe.c Fix describe --tags --long so it does not segfault 2008-07-02 21:21:59 -07:00
builtin-diff-files.c
builtin-diff-index.c
builtin-diff-tree.c
builtin-diff.c
builtin-fast-export.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
builtin-fetch--tool.c
builtin-fetch-pack.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
builtin-fetch.c fetch: give a hint to the user when local refs fail to update 2008-06-29 23:47:41 -07:00
builtin-fmt-merge-msg.c
builtin-for-each-ref.c for-each-ref: implement missing tag values 2008-06-25 11:05:26 -07:00
builtin-fsck.c move show_pack_info() where it belongs 2008-06-24 23:58:57 -07:00
builtin-gc.c
builtin-grep.c
builtin-http-fetch.c
builtin-init-db.c
builtin-log.c builtin-log.c: Use 'git_config_string' to get 'format.subjectprefix' and 'format.suffix' 2008-07-05 17:42:24 -07: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 clone: create intermediate directories of destination repo 2008-06-25 11:44:15 -07:00
builtin-mv.c
builtin-name-rev.c Merge branch 'maint' 2008-06-06 09:21:48 -07:00
builtin-pack-objects.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
builtin-pack-refs.c Move pack_refs() and friends into libgit 2008-06-19 15:53:13 -07:00
builtin-prune-packed.c
builtin-prune.c
builtin-push.c
builtin-read-tree.c
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 Allow "git-reset path" when unambiguous 2008-06-25 18:16:36 -07:00
builtin-rev-list.c Move read_revisions_from_stdin from builtin-rev-list.c to revision.c 2008-07-05 17:30:58 -07:00
builtin-rev-parse.c
builtin-revert.c
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
builtin-tag.c
builtin-tar-tree.c
builtin-unpack-objects.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
builtin-update-index.c
builtin-update-ref.c Make old sha1 optional with git update-ref -d 2008-06-02 22:52:39 -07:00
builtin-upload-archive.c avoid off-by-one error in run_upload_archive 2008-06-28 13:43:21 -07:00
builtin-verify-pack.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
builtin-verify-tag.c
builtin-write-tree.c
builtin.h Print info about "git help COMMAND" on git's main usage pages 2008-06-06 09:22:18 -07:00
bundle.c
bundle.h
cache-tree.c
cache-tree.h
cache.h Merge branch 'j6t/mingw' 2008-07-02 21:57:52 -07:00
check-builtins.sh
check-racy.c
check_bindir Move all dashed-form commands to libexecdir 2008-06-19 16:00:38 -07:00
color.c
color.h
combine-diff.c Merge branch 'jc/maint-combine-diff-pre-context' into maint 2008-06-25 11:20:01 -07:00
command-list.txt
commit.c Remove unused code in parse_commit_buffer() 2008-06-08 13:46:37 -07:00
commit.h
config.c Merge branch 'lt/config-fsync' 2008-06-25 13:19:49 -07:00
config.mak.in Move all dashed-form commands to libexecdir 2008-06-19 16:00:38 -07:00
configure.ac Consistency: Use "libcurl" instead of "cURL library" and "curl" 2008-06-15 13:35:10 -07:00
connect.c Windows: Disambiguate DOS style paths from SSH URLs. 2008-06-26 08:45:08 +02:00
convert.c convert.c: Use 'git_config_string' to get 'smudge' and 'clean' 2008-07-05 17:42:30 -07:00
copy.c
csum-file.c
csum-file.h
ctype.c
daemon.c
date.c Make my_mktime() public and rename it to tm_to_time_t() 2008-06-23 13:40:29 +02:00
decorate.c fast-export --export-marks: fix off by one error 2008-07-03 00:34:59 -07:00
decorate.h
delta.h
diff-delta.c
diff-lib.c
diff-no-index.c
diff.c Merge branch 'qq/maint' 2008-07-05 18:33:16 -07:00
diff.h
diffcore-break.c
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c
diffcore-rename.c
diffcore.h
dir.c
dir.h
dump-cache-tree.c
entry.c
environment.c shrink git-shell by avoiding redundant dependencies 2008-06-27 23:22:00 -07:00
exec_cmd.c Merge branch 'j6t/mingw' 2008-07-02 21:57:52 -07:00
exec_cmd.h
fast-import.c
fetch-pack.h
fixup-builtins
fsck.c
fsck.h
generate-cmdlist.sh
git-add--interactive.perl
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
git-compat-util.h Merge branch 'j6t/mingw' 2008-07-02 21:57:52 -07:00
git-cvsexportcommit.perl
git-cvsimport.perl git-cvsimport: do not fail when CVSROOT is / 2008-06-10 22:24:01 -07:00
git-cvsserver.perl
git-filter-branch.sh
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-resolve.sh
git-merge.sh git-merge.sh: fix typo in usage message: sucesses --> succeeds 2008-06-19 14:13:02 -07:00
git-mergetool.sh Remove the use of '--' in merge program invocation 2008-06-19 14:13:55 -07:00
git-parse-remote.sh
git-pull.sh
git-quiltimport.sh
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 git-rebase.sh: Add check if rebase is in progress 2008-06-22 18:09:15 -07:00
git-relink.perl
git-repack.sh repack.usedeltabaseoffset config option now defaults to "true" 2008-06-25 10:56:40 -07:00
git-request-pull.sh
git-send-email.perl git-send-email: Do not attempt to STARTTLS more than once 2008-07-02 22:41:18 -07:00
git-sh-setup.sh Windows: Work around incompatible sort and find. 2008-06-26 08:45:09 +02:00
git-stash.sh
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 sanitize remote names in config 2008-06-28 20:55:45 -07:00
git-web--browse.sh
git.c Allow per-command pager config 2008-07-06 02:20:24 -07:00
git.spec.in Move all dashed-form commands to libexecdir 2008-06-19 16:00:38 -07:00
graph.c git log --graph: print '*' for all commits, including merges 2008-06-06 11:56:43 -07:00
graph.h
grep.c
grep.h
hash-object.c
hash.c
hash.h
help.c Merge branch 'j6t/mingw' 2008-07-02 21:57:52 -07:00
http-push.c move show_pack_info() where it belongs 2008-06-24 23:58:57 -07:00
http-walker.c move show_pack_info() where it belongs 2008-06-24 23:58:57 -07:00
http.c http.c: Use 'git_config_string' to clean up SSL config. 2008-07-05 17:42:46 -07:00
http.h Work around gcc warnings from curl headers 2008-07-04 00:37:40 -07:00
ident.c
imap-send.c
index-pack.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
interpolate.c
interpolate.h
list-objects.c
list-objects.h
ll-merge.c
ll-merge.h
lockfile.c
log-tree.c
log-tree.h
mailmap.c
mailmap.h
match-trees.c
merge-file.c
merge-index.c
merge-recursive.h
merge-tree.c
mktag.c
mktree.c
name-hash.c
object.c
object.h
pack-check.c verify-pack: check packed object CRC when using index version 2 2008-06-24 23:58:57 -07:00
pack-redundant.c
pack-refs.c Move pack_refs() and friends into libgit 2008-06-19 15:53:13 -07:00
pack-refs.h Move pack_refs() and friends into libgit 2008-06-19 15:53:13 -07:00
pack-revindex.c call init_pack_revindex() lazily 2008-06-23 21:25:20 -07:00
pack-revindex.h call init_pack_revindex() lazily 2008-06-23 21:25:20 -07:00
pack-write.c pack.indexversion config option now defaults to 2 2008-06-25 21:30:55 -07:00
pack.h verify-pack: check packed object CRC when using index version 2 2008-06-24 23:58:57 -07:00
pager.c Windows: Make the pager work. 2008-06-26 08:47:15 +02:00
parse-options.c Merge branch 'maint' 2008-06-22 18:39:37 -07:00
parse-options.h
patch-delta.c
patch-id.c
patch-ids.c
patch-ids.h
path-list.c
path-list.h
path.c shrink git-shell by avoiding redundant dependencies 2008-06-27 23:22:00 -07:00
pkt-line.c
pkt-line.h
pretty.c
progress.c progress.c: avoid use of dynamic-sized array 2008-06-08 13:56:32 -07:00
progress.h
quote.c shrink git-shell by avoiding redundant dependencies 2008-06-27 23:22:00 -07:00
quote.h
reachable.c
reachable.h
read-cache.c Merge branch 'lt/racy-empty' 2008-06-22 14:34:20 -07:00
receive-pack.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
reflog-walk.c
reflog-walk.h
refs.c
refs.h
remote.c clean up error conventions of remote.c:match_explicit 2008-06-18 12:39:13 -07:00
remote.h
revision.c Move read_revisions_from_stdin from builtin-rev-list.c to revision.c 2008-07-05 17:30:58 -07:00
revision.h Move read_revisions_from_stdin from builtin-rev-list.c to revision.c 2008-07-05 17:30:58 -07:00
run-command.c Windows: Implement a custom spawnve(). 2008-06-26 08:45:10 +02:00
run-command.h Windows: Implement asynchronous functions as threads. 2008-06-26 08:45:08 +02:00
send-pack.h
server-info.c
setup.c Merge branch 'j6t/mingw' 2008-07-02 21:57:52 -07:00
sha1-lookup.c
sha1-lookup.h
sha1_file.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
sha1_name.c
shallow.c
shell.c shrink git-shell by avoiding redundant dependencies 2008-06-27 23:22:00 -07:00
shortlog.h
show-index.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
sideband.c
sideband.h
strbuf.c
strbuf.h
symlinks.c
tag.c
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 Extend parse-options test suite 2008-06-22 18:15:18 -07:00
test-sha1.c
test-sha1.sh
thread-utils.c
thread-utils.h
trace.c
transport.c Merge branch 'qq/maint' 2008-07-05 18:33:16 -07:00
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 Windows: Implement asynchronous functions as threads. 2008-06-26 08:45:08 +02:00
usage.c
utf8.c
utf8.h
var.c
walker.c Fix "git clone http://$URL" to check out the worktree when asked 2008-06-04 13:33:25 -07:00
walker.h
wrapper.c Shrink the git binary a bit by avoiding unnecessary inline functions 2008-06-22 18:46:00 -07:00
write_or_die.c Windows: Work around an oddity when a pipe with no reader is written to. 2008-06-26 08:47:15 +02:00
ws.c Teach "diff --check" about new blank lines at end 2008-06-26 22:07:26 -07:00
wt-status.c Add configuration option for default untracked files mode 2008-06-09 15:48:20 -07:00
wt-status.h Add argument 'no' commit/status option -u|--untracked-files 2008-06-09 15:48:19 -07:00
xdiff-interface.c
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.