Merge branch 'db/no-git-config'
authorJunio C Hamano <gitster@pobox.com>
Mon, 7 Jul 2008 09:17:14 +0000 (02:17 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 7 Jul 2008 09:17:14 +0000 (02:17 -0700)
* db/no-git-config:
Only use GIT_CONFIG in "git config", not other programs

Conflicts:

Documentation/RelNotes-1.6.0.txt

1  2 
Documentation/RelNotes-1.6.0.txt
Documentation/git-config.txt
cache.h
index e5c285f9c042c71cf6c67b0e2292d2876ec739b1,d37aa46a289f456f7618c156b41d17292178dc84..a8bda44961b9fcc0c0352bdd193c511edc3fa18f
@@@ -4,6 -4,9 +4,6 @@@ GIT v1.6.0 Release Note
  User visible changes
  --------------------
  
 -[[Note that none of these are not merged to 'master' as of this writing
 -but they will be before 1.6.0 happens]]
 -
  With the default Makefile settings, most of the programs are now
  installed outside your $PATH, except for "git", "gitk", "git-gui" and
  some server side programs that need to be accessible for technical
@@@ -18,11 -21,11 +18,16 @@@ scripts to use "git xyzzy" form, as we 
  Source changes needed for porting to MinGW environment are now all in the
  main git.git codebase.
  
 +By default, packfiles created with this version uses delta-base-offset
 +encoding introduced in v1.4.4.  Pack idx files are using version 2 that
 +allows larger packs and added robustness thanks to its CRC checking,
 +introduced in v1.5.2.
 +
+ GIT_CONFIG, which was only documented as affecting "git config", but
+ actually affected all git commands, now only affects "git config".
+ GIT_LOCAL_CONFIG, also only documented as affecting "git config" and
+ not different from GIT_CONFIG in a useful way, is removed.
  
  Updates since v1.5.6
  --------------------
  
  (usability, bells and whistles)
  
 +* git-apply can handle a patch that touches the same path more than once
 +  much better than before.
 +
 +* git-apply can be told not to trust the line counts recorded in the input
 +  patch but recount, with the new --recount option.
 +
  * git-archive can be told to omit certain paths from its output using
    export-ignore attributes.
  
 +* git-clone can clone from a remote whose URL would be rewritten by
 +  configuration stored in $HOME/.gitconfig now.
 +
 +* git-diff --check now checks leftover merge conflict markers.
 +
 +* When remote side used to have branch 'foo' and git-fetch finds that now
 +  it has branch 'foo/bar', it refuses to lose the existing remote tracking
 +  branch and its reflog.  The error message has been improved to suggest
 +  pruning the remote if the user wants to proceed and get the latest set
 +  of branches from the remote, including such 'foo/bar'.
 +
  * fast-export learned to export and import marks file; this can be used to
    interface with fast-import incrementally.
  
  * Original SHA-1 value for "update-ref -d" is optional now.
  
 +* git-send-mail can talk not just over SSL but over TLS now.
 +
  * You can tell "git status -u" to even more aggressively omit checking
    untracked files with --untracked-files=no.
  
@@@ -129,6 -113,6 +134,6 @@@ this release, unless otherwise noted
  
  ---
  exec >/var/tmp/1
 -O=v1.5.6.1-104-ga08b868
 +O=v1.5.6.1-155-gaa0c1f2
  echo O=$(git describe refs/heads/master)
  git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint
index df419e21fd469775d3b5e31446eb742956943729,30c84322672c4747d97f27296848c4478d65b7d4..697824cbabdd4bab487b8c943277d3a1d703e59a
@@@ -9,19 -9,19 +9,19 @@@ git-config - Get and set repository or 
  SYNOPSIS
  --------
  [verse]
 -'git-config' [<file-option>] [type] [-z|--null] name [value [value_regex]]
 -'git-config' [<file-option>] [type] --add name value
 -'git-config' [<file-option>] [type] --replace-all name [value [value_regex]]
 -'git-config' [<file-option>] [type] [-z|--null] --get name [value_regex]
 -'git-config' [<file-option>] [type] [-z|--null] --get-all name [value_regex]
 -'git-config' [<file-option>] [type] [-z|--null] --get-regexp name_regex [value_regex]
 -'git-config' [<file-option>] --unset name [value_regex]
 -'git-config' [<file-option>] --unset-all name [value_regex]
 -'git-config' [<file-option>] --rename-section old_name new_name
 -'git-config' [<file-option>] --remove-section name
 -'git-config' [<file-option>] [-z|--null] -l | --list
 -'git-config' [<file-option>] --get-color name [default]
 -'git-config' [<file-option>] --get-colorbool name [stdout-is-tty]
 +'git config' [<file-option>] [type] [-z|--null] name [value [value_regex]]
 +'git config' [<file-option>] [type] --add name value
 +'git config' [<file-option>] [type] --replace-all name [value [value_regex]]
 +'git config' [<file-option>] [type] [-z|--null] --get name [value_regex]
 +'git config' [<file-option>] [type] [-z|--null] --get-all name [value_regex]
 +'git config' [<file-option>] [type] [-z|--null] --get-regexp name_regex [value_regex]
 +'git config' [<file-option>] --unset name [value_regex]
 +'git config' [<file-option>] --unset-all name [value_regex]
 +'git config' [<file-option>] --rename-section old_name new_name
 +'git config' [<file-option>] --remove-section name
 +'git config' [<file-option>] [-z|--null] -l | --list
 +'git config' [<file-option>] --get-color name [default]
 +'git config' [<file-option>] --get-colorbool name [stdout-is-tty]
  
  DESCRIPTION
  -----------
@@@ -122,10 -122,10 +122,10 @@@ See also <<FILES>>
        List all variables set in config file.
  
  --bool::
 -      git-config will ensure that the output is "true" or "false"
 +      'git-config' will ensure that the output is "true" or "false"
  
  --int::
 -      git-config will ensure that the output is a simple
 +      'git-config' will ensure that the output is a simple
        decimal number.  An optional value suffix of 'k', 'm', or 'g'
        in the config file will cause the value to be multiplied
        by 1024, 1048576, or 1073741824 prior to output.
@@@ -162,7 -162,7 +162,7 @@@ FILE
  -----
  
  If not set explicitly with '--file', there are three files where
 -git-config will search for configuration options:
 +'git-config' will search for configuration options:
  
  $GIT_DIR/config::
        Repository specific configuration file. (The filename is
@@@ -179,23 -179,18 +179,18 @@@ $(prefix)/etc/gitconfig:
  If no further options are given, all reading options will read all of these
  files that are available. If the global or the system-wide configuration
  file are not available they will be ignored. If the repository configuration
 -file is not available or readable, git-config will exit with a non-zero
 +file is not available or readable, 'git-config' will exit with a non-zero
  error code. However, in neither case will an error message be issued.
  
  All writing options will per default write to the repository specific
  configuration file. Note that this also affects options like '--replace-all'
 -and '--unset'. *git-config will only ever change one file at a time*.
 +and '--unset'. *'git-config' will only ever change one file at a time*.
  
  You can override these rules either by command line options or by environment
  variables. The '--global' and the '--system' options will limit the file used
  to the global or system-wide file respectively. The GIT_CONFIG environment
  variable has a similar effect, but you can specify any filename you want.
  
- The GIT_CONFIG_LOCAL environment variable on the other hand only changes
- the name used instead of the repository configuration file. The global and
- the system-wide configuration files will still be read. (For writing options
- this will obviously result in the same behavior as using GIT_CONFIG.)
  
  ENVIRONMENT
  -----------
@@@ -205,10 -200,6 +200,6 @@@ GIT_CONFIG:
        Using the "--global" option forces this to ~/.gitconfig. Using the
        "--system" option forces this to $(prefix)/etc/gitconfig.
  
- GIT_CONFIG_LOCAL::
-       Take the configuration from the given file instead if .git/config.
-       Still read the global and the system-wide configuration files, though.
  See also <<FILES>>.
  
  
diff --combined cache.h
index 35a91320a50d3f0f720e4fc3672f7667934e04f9,bab0115b6f8f7e4faa2bd19ec6ff0f8c2c4f7354..96c43884cccd1c5703aedd88d48bb145c5d6c07d
+++ b/cache.h
@@@ -298,7 -298,6 +298,6 @@@ static inline enum object_type object_t
  #define GRAFT_ENVIRONMENT "GIT_GRAFT_FILE"
  #define TEMPLATE_DIR_ENVIRONMENT "GIT_TEMPLATE_DIR"
  #define CONFIG_ENVIRONMENT "GIT_CONFIG"
- #define CONFIG_LOCAL_ENVIRONMENT "GIT_CONFIG_LOCAL"
  #define EXEC_PATH_ENVIRONMENT "GIT_EXEC_PATH"
  #define GITATTRIBUTES_FILE ".gitattributes"
  #define INFOATTRIBUTES_FILE "info/attributes"
@@@ -522,7 -521,7 +521,7 @@@ int safe_create_leading_directories_con
  char *enter_repo(char *path, int strict);
  static inline int is_absolute_path(const char *path)
  {
 -      return path[0] == '/';
 +      return path[0] == '/' || has_dos_drive_prefix(path);
  }
  const char *make_absolute_path(const char *path);
  const char *make_nonrelative_path(const char *path);
@@@ -743,6 -742,7 +742,7 @@@ extern int check_repository_format_vers
  extern int git_config_system(void);
  extern int git_config_global(void);
  extern int config_error_nonbool(const char *);
+ extern const char *config_exclusive_filename;
  
  #define MAX_GITNAME (1000)
  extern char git_default_email[MAX_GITNAME];
@@@ -819,11 -819,11 +819,11 @@@ void shift_tree(const unsigned char *, 
  extern unsigned whitespace_rule_cfg;
  extern unsigned whitespace_rule(const char *);
  extern unsigned parse_whitespace_rule(const char *);
 -extern unsigned check_and_emit_line(const char *line, int len, unsigned ws_rule,
 -    FILE *stream, const char *set,
 -    const char *reset, const char *ws);
 +extern unsigned ws_check(const char *line, int len, unsigned ws_rule);
 +extern void ws_check_emit(const char *line, int len, unsigned ws_rule, FILE *stream, const char *set, const char *reset, const char *ws);
  extern char *whitespace_error_string(unsigned ws);
  extern int ws_fix_copy(char *, const char *, int, unsigned, int *);
 +extern int ws_blank_line(const char *line, int len, unsigned ws_rule);
  
  /* ls-files */
  int pathspec_match(const char **spec, char *matched, const char *filename, int skiplen);