Add ".git/config" file parser
authorLinus Torvalds <torvalds@osdl.org>
Mon, 10 Oct 2005 23:31:08 +0000 (16:31 -0700)
committerJunio C Hamano <junkio@cox.net>
Mon, 10 Oct 2005 23:31:08 +0000 (16:31 -0700)
commit17712991a59824a8d22d5115c0c154d3122fc17b
tree0c8b9e1023f9c5fbaaa7151bcc105783b98c9f10
parentb12bbd5986e1fae4120d7a415c1271c0273cad7e
Add ".git/config" file parser

This is a first cut at a very simple parser for a git config file.

The format of the file is a simple ini-file like thing, with simple
variable/value pairs. You can (and should) make the variables have a
simple single-level scope, ie a valid file looks something like this:

#
# This is the config file, and
# a '#' or ';' character indicates
# a comment
#

; core variables
[core]
; Don't trust file modes
filemode = false

; Our diff algorithm
[diff]
external = "/usr/local/bin/gnu-diff -u"
renames = true

which parses into three variables: "core.filemode" is associated with the
string "false", and "diff.external" gets the appropriate quoted value.

Right now we only react to one variable: "core.filemode" is a boolean that
decides if we should care about the 0100 (user-execute) bit of the stat
information. Even that is just a parsing demonstration - this doesn't
actually implement that st_mode compare logic itself.

Different programs can react to different config options, although they
should always fall back to calling "git_default_config()" on any config
option name that they don't recognize.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Makefile
cache.h
config.c [new file with mode: 0644]
diff-files.c
diff-tree.c
read-cache.c