git/git.git
9 years agoMerge branch 'jc/checkout-from-tree-keep-local-changes'
Junio C Hamano [Tue, 18 Oct 2011 04:37:09 +0000 (21:37 -0700)]
Merge branch 'jc/checkout-from-tree-keep-local-changes'

* jc/checkout-from-tree-keep-local-changes:
  checkout $tree $path: do not clobber local changes in $path not in $tree

9 years agoMerge branch 'js/bisect-no-checkout'
Junio C Hamano [Tue, 18 Oct 2011 04:37:09 +0000 (21:37 -0700)]
Merge branch 'js/bisect-no-checkout'

* js/bisect-no-checkout:
  bisect: fix exiting when checkout failed in bisect_start()

9 years agoresolve_gitlink_packed_ref(): fix mismerge
Junio C Hamano [Mon, 17 Oct 2011 18:43:30 +0000 (11:43 -0700)]
resolve_gitlink_packed_ref(): fix mismerge

2c5c66b (Merge branch 'jp/get-ref-dir-unsorted', 2011-10-10) merged a
topic that forked from the mainline before a new helper function
get_packed_refs() refactored code to read packed-refs file. The merge made
the call to the helper function with an incorrect argument. The parameter
to the function has to be a path to the submodule.

Fix the mismerge.

Helped-by: Mark Levedahl <mlevedahl@gmail.com>
Helped-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoUpdate draft release notes to 1.7.8
Junio C Hamano [Sun, 16 Oct 2011 17:58:35 +0000 (10:58 -0700)]
Update draft release notes to 1.7.8

Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoMerge git://repo.or.cz/git-gui
Junio C Hamano [Sun, 16 Oct 2011 10:01:44 +0000 (03:01 -0700)]
Merge git://repo.or.cz/git-gui

* git://repo.or.cz/git-gui:
  git-gui: incremental goto line in blame view
  git-gui: clear the goto line input when hiding
  git-gui: only accept numbers in the goto-line input
  git-gui: search and linenumber input are mutual exclusive in the blame view
  git-gui: deal with unknown files when pressing the "Stage Changed" button
  git-gui: drop the 'n' and 'Shift-n' bindings from the last patch.
  git-gui: Add keyboard shortcuts for search and goto commands in blame view.
  git-gui: Enable jumping to a specific line number in blame view.
  Fix tooltip display with multiple monitors on windows.
  Fix typo: existant->existent
  git-gui: updated translator README for current procedures.
  git-gui: warn when trying to commit on a detached head
  git-gui: Corrected a typo in the Swedish translation of 'Continue'

9 years agogit-svn: Allow certain refs to be ignored
Michael Olson [Mon, 10 Oct 2011 23:27:37 +0000 (16:27 -0700)]
git-svn: Allow certain refs to be ignored

Implement a new --ignore-refs option which specifies a regex of refs
to ignore while importing svn history.

This is a useful supplement to the --ignore-paths option, as that
option only operates on the contents of branches and tags, not the
branches and tags themselves.

Signed-off-by: Michael Olson <mwolson@gnu.org>
Acked-by: Eric Wong <normalperson@yhbt.net>
9 years agogit svn dcommit: new option --interactive.
Frédéric Heitzmann [Fri, 16 Sep 2011 21:02:01 +0000 (23:02 +0200)]
git svn dcommit: new option --interactive.

Allow the user to check the patch set before it is commited to SVN. It is
then possible to accept/discard one patch, accept all, or quit.

This interactive mode is similar with 'git send email' behaviour. However,
'git svn dcommit' returns as soon as one patch is discarded.
Part of the code was taken from git-send-email.perl (see 'ask' function)

Tests several combinations of potential answers to
'git svn dcommit --interactive'. For each of them, test whether patches
were commited to SVN or not.

Thanks-to Eric Wong <normalperson@yhbt.net> for the initial idea.

Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Frédéric Heitzmann <frederic.heitzmann@gmail.com>
9 years agoSync with maint
Junio C Hamano [Sun, 16 Oct 2011 03:56:50 +0000 (20:56 -0700)]
Sync with maint

Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoPrepare for 1.7.7.1
Junio C Hamano [Sun, 16 Oct 2011 03:55:12 +0000 (20:55 -0700)]
Prepare for 1.7.7.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoMerge branch 'ms/patch-id-with-overlong-line' into maint
Junio C Hamano [Sun, 16 Oct 2011 03:46:39 +0000 (20:46 -0700)]
Merge branch 'ms/patch-id-with-overlong-line' into maint

* ms/patch-id-with-overlong-line:
  patch-id.c: use strbuf instead of a fixed buffer

9 years agoMerge branch 'jc/maint-bundle-too-quiet' into maint
Junio C Hamano [Sun, 16 Oct 2011 03:46:39 +0000 (20:46 -0700)]
Merge branch 'jc/maint-bundle-too-quiet' into maint

* jc/maint-bundle-too-quiet:
  Teach progress eye-candy to fetch_refs_from_bundle()

9 years agoMerge branch 'jk/filter-branch-require-clean-work-tree' into maint
Junio C Hamano [Sun, 16 Oct 2011 03:46:38 +0000 (20:46 -0700)]
Merge branch 'jk/filter-branch-require-clean-work-tree' into maint

* jk/filter-branch-require-clean-work-tree:
  filter-branch: use require_clean_work_tree

9 years agoMerge branch 'jc/maint-fsck-fwrite-size-check' into maint
Junio C Hamano [Sun, 16 Oct 2011 03:46:38 +0000 (20:46 -0700)]
Merge branch 'jc/maint-fsck-fwrite-size-check' into maint

* jc/maint-fsck-fwrite-size-check:
  fsck: do not abort upon finding an empty blob

9 years agoMerge branch 'bk/ancestry-path' into maint
Junio C Hamano [Sun, 16 Oct 2011 03:46:38 +0000 (20:46 -0700)]
Merge branch 'bk/ancestry-path' into maint

* bk/ancestry-path:
  t6019: avoid refname collision on case-insensitive systems
  revision: do not include sibling history in --ancestry-path output
  revision: keep track of the end-user input from the command line
  rev-list: Demonstrate breakage with --ancestry-path --all

9 years agoMerge branch 'jk/maint-fetch-submodule-check-fix' into maint
Junio C Hamano [Sun, 16 Oct 2011 03:46:38 +0000 (20:46 -0700)]
Merge branch 'jk/maint-fetch-submodule-check-fix' into maint

* jk/maint-fetch-submodule-check-fix:
  fetch: avoid quadratic loop checking for updated submodules

9 years agoMerge branch 'tr/mergetool-valgrind' into maint
Junio C Hamano [Sun, 16 Oct 2011 03:46:37 +0000 (20:46 -0700)]
Merge branch 'tr/mergetool-valgrind' into maint

* tr/mergetool-valgrind:
  Symlink mergetools scriptlets into valgrind wrappers

9 years agoMerge branch 'nm/grep-object-sha1-lock' into maint
Junio C Hamano [Sun, 16 Oct 2011 03:46:37 +0000 (20:46 -0700)]
Merge branch 'nm/grep-object-sha1-lock' into maint

* nm/grep-object-sha1-lock:
  grep: Fix race condition in delta_base_cache

Conflicts:
builtin/grep.c

9 years agoMerge branch 'jc/diff-index-unpack' into maint
Junio C Hamano [Sun, 16 Oct 2011 03:46:36 +0000 (20:46 -0700)]
Merge branch 'jc/diff-index-unpack' into maint

* jc/diff-index-unpack:
  diff-index: pass pathspec down to unpack-trees machinery
  unpack-trees: allow pruning with pathspec
  traverse_trees(): allow pruning with pathspec

9 years agoMerge branch 'mm/rebase-i-exec-edit' into maint
Junio C Hamano [Sun, 16 Oct 2011 03:46:36 +0000 (20:46 -0700)]
Merge branch 'mm/rebase-i-exec-edit' into maint

* mm/rebase-i-exec-edit:
  rebase -i: notice and warn if "exec $cmd" modifies the index or the working tree
  rebase -i: clean error message for --continue after failed exec

9 years agoMerge branch 'jc/grep-untracked-exclude'
Junio C Hamano [Sun, 16 Oct 2011 03:27:19 +0000 (20:27 -0700)]
Merge branch 'jc/grep-untracked-exclude'

* jc/grep-untracked-exclude:
  grep: fix the error message that mentions --exclude

9 years agoMerge branch 'jc/maint-grep-untracked-exclude' into jc/grep-untracked-exclude
Junio C Hamano [Sun, 16 Oct 2011 03:26:52 +0000 (20:26 -0700)]
Merge branch 'jc/maint-grep-untracked-exclude' into jc/grep-untracked-exclude

* jc/maint-grep-untracked-exclude:
  grep: fix the error message that mentions --exclude

Conflicts:
builtin/grep.c

9 years agogrep: fix the error message that mentions --exclude
Bert Wesarg [Sat, 15 Oct 2011 18:36:22 +0000 (20:36 +0200)]
grep: fix the error message that mentions --exclude

Missing rename from --exclude to --standard-exclude.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agogit-gui: incremental goto line in blame view
Bert Wesarg [Thu, 13 Oct 2011 13:48:15 +0000 (15:48 +0200)]
git-gui: incremental goto line in blame view

The view jumps now to the given line number after each key press.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
9 years agogit-gui: clear the goto line input when hiding
Bert Wesarg [Thu, 13 Oct 2011 13:48:13 +0000 (15:48 +0200)]
git-gui: clear the goto line input when hiding

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
9 years agogit-gui: only accept numbers in the goto-line input
Bert Wesarg [Thu, 13 Oct 2011 13:48:14 +0000 (15:48 +0200)]
git-gui: only accept numbers in the goto-line input

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
9 years agogit-gui: search and linenumber input are mutual exclusive in the blame view
Bert Wesarg [Thu, 13 Oct 2011 13:48:12 +0000 (15:48 +0200)]
git-gui: search and linenumber input are mutual exclusive in the blame view

It was possible to open the search input (Ctrl+S) and the goto-line input
(Ctrl+G) at the same time. Prevent this.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
9 years agosend-email: Fix %config_path_settings handling
Cord Seele [Fri, 14 Oct 2011 20:53:31 +0000 (22:53 +0200)]
send-email: Fix %config_path_settings handling

cec5dae (use new Git::config_path() for aliasesfile, 2011-09-30) broke
the expansion of aliases.

This was caused by treating %config_path_settings, newly introduced in
said patch, like %config_bool_settings instead of like %config_settings.
Copy from %config_settings, making it more readable.

While at it add basic test for expansion of aliases, and for path
expansion, which would catch this error.

Nb. there were a few issues that were responsible for this error:

1. %config_bool_settings and %config_settings despite similar name have
   different semantic.

   %config_bool_settings values are arrays where the first element is
   (reference to) the variable to set, and second element is default
   value... which admittedly is a bit cryptic.  More readable if more
   verbose option would be to use hash reference, e.g.:

        my %config_bool_settings = (
            "thread" => { variable => \$thread, default => 1},
            [...]

   %config_settings values are either either reference to scalar variable
   or reference to array.  In second case it means that option (or config
   option) is multi-valued.  BTW. this is similar to what Getopt::Long does.

2. In cec5dae (use new Git::config_path() for aliasesfile, 2011-09-30)
   the setting "aliasesfile" was moved from %config_settings to newly
   introduced %config_path_settings.  But the loop that parses settings
   from %config_path_settings was copy'n'pasted *wrongly* from
   %config_bool_settings instead of from %config_settings.

   It looks like cec5dae author cargo-culted this change...

3. 994d6c6 (send-email: address expansion for common mailers, 2006-05-14)
   didn't add test for alias expansion to t9001-send-email.sh

Signed-off-by: Cord Seele <cowose@gmail.com>
Tested-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoMerge branch 'maint'
Junio C Hamano [Fri, 14 Oct 2011 19:51:24 +0000 (12:51 -0700)]
Merge branch 'maint'

* maint:
  t1304: fall back to $USER if $LOGNAME is not defined

9 years agot1304: fall back to $USER if $LOGNAME is not defined
René Scharfe [Fri, 14 Oct 2011 17:44:45 +0000 (19:44 +0200)]
t1304: fall back to $USER if $LOGNAME is not defined

For some reason $LOGNAME is not set anymore for me after an upgrade from
Ubuntu 11.04 to 11.10.  Use $USER in such a case.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoUpdate draft release notes to 1.7.8
Junio C Hamano [Fri, 14 Oct 2011 05:15:39 +0000 (22:15 -0700)]
Update draft release notes to 1.7.8

Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoMerge branch 'js/maint-merge-one-file-osx-expr'
Junio C Hamano [Fri, 14 Oct 2011 02:03:24 +0000 (19:03 -0700)]
Merge branch 'js/maint-merge-one-file-osx-expr'

* js/maint-merge-one-file-osx-expr:
  merge-one-file: fix "expr: non-numeric argument"

9 years agoMerge branch 'jn/ident-from-etc-mailname'
Junio C Hamano [Fri, 14 Oct 2011 02:03:24 +0000 (19:03 -0700)]
Merge branch 'jn/ident-from-etc-mailname'

* jn/ident-from-etc-mailname:
  ident: do not retrieve default ident when unnecessary
  ident: check /etc/mailname if email is unknown

9 years agoMerge branch 'il/archive-err-signal'
Junio C Hamano [Fri, 14 Oct 2011 02:03:23 +0000 (19:03 -0700)]
Merge branch 'il/archive-err-signal'

* il/archive-err-signal:
  Support ERR in remote archive like in fetch/push

9 years agoMerge branch 'jc/grep-untracked-exclude'
Junio C Hamano [Fri, 14 Oct 2011 02:03:23 +0000 (19:03 -0700)]
Merge branch 'jc/grep-untracked-exclude'

* jc/grep-untracked-exclude:
  grep: teach --untracked and --exclude-standard options

9 years agoMerge branch 'rs/diff-cleanup-records-fix'
Junio C Hamano [Fri, 14 Oct 2011 02:03:22 +0000 (19:03 -0700)]
Merge branch 'rs/diff-cleanup-records-fix'

* rs/diff-cleanup-records-fix:
  diff: resurrect XDF_NEED_MINIMAL with --minimal
  Revert removal of multi-match discard heuristic in 27af01

9 years agoMerge branch 'rs/pending'
Junio C Hamano [Fri, 14 Oct 2011 02:03:22 +0000 (19:03 -0700)]
Merge branch 'rs/pending'

* rs/pending:
  commit: factor out clear_commit_marks_for_object_array
  checkout: use leak_pending flag
  bundle: use leak_pending flag
  bisect: use leak_pending flag
  revision: add leak_pending flag
  checkout: use add_pending_{object,sha1} in orphan check
  revision: factor out add_pending_sha1
  checkout: check for "Previous HEAD" notice in t2020

Conflicts:
builtin/checkout.c
revision.c

9 years agoMerge branch 'jn/no-g-plus-s-on-bsd'
Junio C Hamano [Fri, 14 Oct 2011 02:03:21 +0000 (19:03 -0700)]
Merge branch 'jn/no-g-plus-s-on-bsd'

* jn/no-g-plus-s-on-bsd:
  Makefile: do not set setgid bit on directories on GNU/kFreeBSD

9 years agoMerge branch 'jc/is-url-simplify'
Junio C Hamano [Fri, 14 Oct 2011 02:03:21 +0000 (19:03 -0700)]
Merge branch 'jc/is-url-simplify'

* jc/is-url-simplify:
  url.c: simplify is_url()

9 years agoMerge branch 'nd/git-daemon-error-msgs'
Junio C Hamano [Fri, 14 Oct 2011 02:03:21 +0000 (19:03 -0700)]
Merge branch 'nd/git-daemon-error-msgs'

* nd/git-daemon-error-msgs:
  daemon: return "access denied" if a service is not allowed

9 years agoMerge branch 'nd/daemon-log-sock-errors'
Junio C Hamano [Fri, 14 Oct 2011 02:03:21 +0000 (19:03 -0700)]
Merge branch 'nd/daemon-log-sock-errors'

* nd/daemon-log-sock-errors:
  daemon: log errors if we could not use some sockets

9 years agoMerge branch 'cp/git-web-browse-browsers'
Junio C Hamano [Fri, 14 Oct 2011 02:03:20 +0000 (19:03 -0700)]
Merge branch 'cp/git-web-browse-browsers'

* cp/git-web-browse-browsers:
  git-web--browse: avoid the use of eval

9 years agoMerge branch 'jc/apply-blank-at-eof-fix'
Junio C Hamano [Fri, 14 Oct 2011 02:03:20 +0000 (19:03 -0700)]
Merge branch 'jc/apply-blank-at-eof-fix'

* jc/apply-blank-at-eof-fix:
  apply --whitespace=error: correctly report new blank lines at end

9 years agoMerge branch 'di/fast-import-empty-tag-note-fix'
Junio C Hamano [Fri, 14 Oct 2011 02:03:19 +0000 (19:03 -0700)]
Merge branch 'di/fast-import-empty-tag-note-fix'

* di/fast-import-empty-tag-note-fix:
  fast-import: don't allow to note on empty branch
  fast-import: don't allow to tag empty branch

9 years agoMerge branch 'nd/maint-autofix-tag-in-head'
Junio C Hamano [Fri, 14 Oct 2011 02:03:19 +0000 (19:03 -0700)]
Merge branch 'nd/maint-autofix-tag-in-head'

* nd/maint-autofix-tag-in-head:
  Accept tags in HEAD or MERGE_HEAD
  merge: remove global variable head[]
  merge: use return value of resolve_ref() to determine if HEAD is invalid
  merge: keep stash[] a local variable

Conflicts:
builtin/merge.c

9 years agoMerge branch 'bw/grep-no-index-no-exclude'
Junio C Hamano [Fri, 14 Oct 2011 02:03:18 +0000 (19:03 -0700)]
Merge branch 'bw/grep-no-index-no-exclude'

* bw/grep-no-index-no-exclude:
  grep --no-index: don't use git standard exclusions
  grep: do not use --index in the short usage output

9 years agoMerge branch 'nd/maint-sparse-errors'
Junio C Hamano [Fri, 14 Oct 2011 02:03:18 +0000 (19:03 -0700)]
Merge branch 'nd/maint-sparse-errors'

* nd/maint-sparse-errors:
  Add explanation why we do not allow to sparse checkout to empty working tree
  sparse checkout: show error messages when worktree shaping fails

9 years agoUpdate draft release notes to 1.7.8
Junio C Hamano [Wed, 12 Oct 2011 19:42:44 +0000 (12:42 -0700)]
Update draft release notes to 1.7.8

Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoMerge branch 'cb/do-not-pretend-to-hijack-long-help'
Junio C Hamano [Wed, 12 Oct 2011 19:34:30 +0000 (12:34 -0700)]
Merge branch 'cb/do-not-pretend-to-hijack-long-help'

* cb/do-not-pretend-to-hijack-long-help:
  use -h for synopsis and --help for manpage consistently

9 years agoMerge branch 'sp/smart-http-failure'
Junio C Hamano [Wed, 12 Oct 2011 19:34:27 +0000 (12:34 -0700)]
Merge branch 'sp/smart-http-failure'

* sp/smart-http-failure:
  remote-curl: Fix warning after HTTP failure

9 years agoMerge branch 'nd/document-err-packet'
Junio C Hamano [Wed, 12 Oct 2011 19:34:18 +0000 (12:34 -0700)]
Merge branch 'nd/document-err-packet'

* nd/document-err-packet:
  pack-protocol: document "ERR" line

9 years agoMerge branch 'jc/parse-options-boolean'
Junio C Hamano [Wed, 12 Oct 2011 19:34:15 +0000 (12:34 -0700)]
Merge branch 'jc/parse-options-boolean'

* jc/parse-options-boolean:
  apply: use OPT_NOOP_NOARG
  revert: use OPT_NOOP_NOARG
  parseopt: add OPT_NOOP_NOARG
  archive.c: use OPT_BOOL()
  parse-options: deprecate OPT_BOOLEAN

Conflicts:
builtin/revert.c

9 years agoMerge branch 'rs/test-ctype'
Junio C Hamano [Wed, 12 Oct 2011 19:34:11 +0000 (12:34 -0700)]
Merge branch 'rs/test-ctype'

* rs/test-ctype:
  test-ctype: add test for is_pathspec_magic
  test-ctype: macrofy

9 years agoMerge branch 'rs/name-rev-usage'
Junio C Hamano [Wed, 12 Oct 2011 19:34:08 +0000 (12:34 -0700)]
Merge branch 'rs/name-rev-usage'

* rs/name-rev-usage:
  name-rev: split usage string

9 years agoMerge branch 'cs/perl-config-path-send-email'
Junio C Hamano [Wed, 12 Oct 2011 19:34:05 +0000 (12:34 -0700)]
Merge branch 'cs/perl-config-path-send-email'

* cs/perl-config-path-send-email:
  use new Git::config_path() for aliasesfile
  Add Git::config_path()

9 years agoMerge branch 'zj/send-email-authen-sasl'
Junio C Hamano [Wed, 12 Oct 2011 19:34:03 +0000 (12:34 -0700)]
Merge branch 'zj/send-email-authen-sasl'

* zj/send-email-authen-sasl:
  send-email: auth plain/login fix

9 years agot5403: convert leading spaces to tabs
Nguyễn Thái Ngọc Duy [Wed, 12 Oct 2011 09:35:04 +0000 (20:35 +1100)]
t5403: convert leading spaces to tabs

The first and last tests use tabs. The rest uses spaces. Convert all
to tabs.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoUpdate draft release notes to 1.7.8
Junio C Hamano [Mon, 10 Oct 2011 23:14:59 +0000 (16:14 -0700)]
Update draft release notes to 1.7.8

Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoMerge branch 'dm/tree-walk'
Junio C Hamano [Mon, 10 Oct 2011 22:56:20 +0000 (15:56 -0700)]
Merge branch 'dm/tree-walk'

* dm/tree-walk:
  tree-walk: micro-optimization in tree_entry_interesting
  tree-walk: drop unused parameter from match_dir_prefix

9 years agoMerge branch 'ps/gitweb-js-with-lineno'
Junio C Hamano [Mon, 10 Oct 2011 22:56:20 +0000 (15:56 -0700)]
Merge branch 'ps/gitweb-js-with-lineno'

* ps/gitweb-js-with-lineno:
  gitweb: Fix links to lines in blobs when javascript-actions are enabled

9 years agoMerge branch 'mh/maint-notes-merge-pathbuf-fix'
Junio C Hamano [Mon, 10 Oct 2011 22:56:20 +0000 (15:56 -0700)]
Merge branch 'mh/maint-notes-merge-pathbuf-fix'

* mh/maint-notes-merge-pathbuf-fix:
  notes_merge_commit(): do not pass temporary buffer to other function

9 years agoMerge branch 'nd/sparse-doc'
Junio C Hamano [Mon, 10 Oct 2011 22:56:20 +0000 (15:56 -0700)]
Merge branch 'nd/sparse-doc'

* nd/sparse-doc:
  git-read-tree.txt: update sparse checkout examples

9 years agoMerge branch 'jp/get-ref-dir-unsorted'
Junio C Hamano [Mon, 10 Oct 2011 22:56:19 +0000 (15:56 -0700)]
Merge branch 'jp/get-ref-dir-unsorted'

* jp/get-ref-dir-unsorted:
  refs.c: free duplicate entries in the ref array instead of leaking them
  refs.c: abort ref search if ref array is empty
  refs.c: ensure struct whose member may be passed to realloc is initialized
  refs: Use binary search to lookup refs faster
  Don't sort ref_list too early

Conflicts:
refs.c

9 years agoMerge branch 'mh/check-ref-format-3'
Junio C Hamano [Mon, 10 Oct 2011 22:56:18 +0000 (15:56 -0700)]
Merge branch 'mh/check-ref-format-3'

* mh/check-ref-format-3: (23 commits)
  add_ref(): verify that the refname is formatted correctly
  resolve_ref(): expand documentation
  resolve_ref(): also treat a too-long SHA1 as invalid
  resolve_ref(): emit warnings for improperly-formatted references
  resolve_ref(): verify that the input refname has the right format
  remote: avoid passing NULL to read_ref()
  remote: use xstrdup() instead of strdup()
  resolve_ref(): do not follow incorrectly-formatted symbolic refs
  resolve_ref(): extract a function get_packed_ref()
  resolve_ref(): turn buffer into a proper string as soon as possible
  resolve_ref(): only follow a symlink that contains a valid, normalized refname
  resolve_ref(): use prefixcmp()
  resolve_ref(): explicitly fail if a symlink is not readable
  Change check_refname_format() to reject unnormalized refnames
  Inline function refname_format_print()
  Make collapse_slashes() allocate memory for its result
  Do not allow ".lock" at the end of any refname component
  Refactor check_refname_format()
  Change check_ref_format() to take a flags argument
  Change bad_ref_char() to return a boolean value
  ...

9 years agoMerge branch 'mh/iterate-refs'
Junio C Hamano [Mon, 10 Oct 2011 22:56:18 +0000 (15:56 -0700)]
Merge branch 'mh/iterate-refs'

* mh/iterate-refs:
  refs.c: make create_cached_refs() static
  Retain caches of submodule refs
  Store the submodule name in struct cached_refs
  Allocate cached_refs objects dynamically
  Change the signature of read_packed_refs()
  Access reference caches only through new function get_cached_refs()
  Extract a function clear_cached_refs()

9 years agoMerge branch 'jm/mergetool-pathspec'
Junio C Hamano [Mon, 10 Oct 2011 22:56:18 +0000 (15:56 -0700)]
Merge branch 'jm/mergetool-pathspec'

* jm/mergetool-pathspec:
  mergetool: no longer need to save standard input
  mergetool: Use args as pathspec to unmerged files

9 years agoMerge branch 'jc/maint-diffstat-numstat-context'
Junio C Hamano [Mon, 10 Oct 2011 22:56:18 +0000 (15:56 -0700)]
Merge branch 'jc/maint-diffstat-numstat-context'

* jc/maint-diffstat-numstat-context:
  diff: teach --stat/--numstat to honor -U$num

9 years agoMerge branch 'mz/remote-rename'
Junio C Hamano [Mon, 10 Oct 2011 22:56:17 +0000 (15:56 -0700)]
Merge branch 'mz/remote-rename'

* mz/remote-rename:
  remote: only update remote-tracking branch if updating refspec
  remote rename: warn when refspec was not updated
  remote: "rename o foo" should not rename ref "origin/bar"
  remote: write correct fetch spec when renaming remote 'remote'

9 years agoMerge branch 'cb/common-prefix-unification'
Junio C Hamano [Mon, 10 Oct 2011 22:56:17 +0000 (15:56 -0700)]
Merge branch 'cb/common-prefix-unification'

* cb/common-prefix-unification:
  rename pathspec_prefix() to common_prefix() and move to dir.[ch]
  consolidate pathspec_prefix and common_prefix
  remove prefix argument from pathspec_prefix

9 years agoMerge branch 'jn/maint-http-error-message'
Junio C Hamano [Mon, 10 Oct 2011 22:56:17 +0000 (15:56 -0700)]
Merge branch 'jn/maint-http-error-message'

* jn/maint-http-error-message:
  http: avoid empty error messages for some curl errors
  http: remove extra newline in error message

9 years agoMerge branch 'hv/submodule-update-none'
Junio C Hamano [Mon, 10 Oct 2011 22:56:17 +0000 (15:56 -0700)]
Merge branch 'hv/submodule-update-none'

* hv/submodule-update-none:
  add update 'none' flag to disable update of submodule by default
  submodule: move update configuration variable further up

9 years agoMerge branch 'fg/submodule-git-file-git-dir'
Junio C Hamano [Mon, 10 Oct 2011 22:56:16 +0000 (15:56 -0700)]
Merge branch 'fg/submodule-git-file-git-dir'

* fg/submodule-git-file-git-dir:
  Move git-dir for submodules
  rev-parse: add option --resolve-git-dir <path>

Conflicts:
cache.h
git-submodule.sh

9 years agorefs.c: free duplicate entries in the ref array instead of leaking them
Brandon Casey [Sat, 8 Oct 2011 03:20:22 +0000 (22:20 -0500)]
refs.c: free duplicate entries in the ref array instead of leaking them

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agorefs.c: abort ref search if ref array is empty
Brandon Casey [Sat, 8 Oct 2011 03:20:21 +0000 (22:20 -0500)]
refs.c: abort ref search if ref array is empty

The bsearch() implementation on IRIX 6.5 segfaults if it is passed NULL
for the base array argument even if number-of-elements is zero.  So, let's
work around it by detecting an empty array and aborting early.

This is a useful optimization in its own right anyway, since we avoid a
useless allocation and initialization of the ref_entry when the ref array
is empty.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agorefs.c: ensure struct whose member may be passed to realloc is initialized
Brandon Casey [Sat, 8 Oct 2011 03:20:20 +0000 (22:20 -0500)]
refs.c: ensure struct whose member may be passed to realloc is initialized

The variable "refs" is allocated on the stack but is not initialized.  It
is passed to read_packed_refs(), and its struct members may eventually be
passed to add_ref() and ALLOC_GROW().  Since the structure has not been
initialized, its members may contain random non-zero values.  So let's
initialize it.

The call sequence looks something like this:

   resolve_gitlink_packed_ref(...) {

       struct cached_refs refs;
       ...
       read_packed_refs(f, &refs);
       ...
   }

   read_packed_refs(FILE*, struct cached_refs *cached_refs) {
       ...
       add_ref(name, sha1, flag, &cached_refs->packed, &last);
       ...
   }

   add_ref(..., struct ref_array *refs, struct ref_entry **) {
       ...
       ALLOC_GROW(refs->refs, refs->nr + 1, refs->alloc);
   }

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoFix some "variable might be used uninitialized" warnings
Ramsay Jones [Sun, 11 Sep 2011 19:39:32 +0000 (20:39 +0100)]
Fix some "variable might be used uninitialized" warnings

In particular, gcc complains as follows:

        CC tree-walk.o
    tree-walk.c: In function `traverse_trees':
    tree-walk.c:347: warning: 'e' might be used uninitialized in this \
        function

        CC builtin/revert.o
    builtin/revert.c: In function `verify_opt_mutually_compatible':
    builtin/revert.c:113: warning: 'opt2' might be used uninitialized in \
        this function

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoMakefile: fix permissions of mergetools/ checked out with permissive umask
Junio C Hamano [Sun, 9 Oct 2011 19:59:44 +0000 (12:59 -0700)]
Makefile: fix permissions of mergetools/ checked out with permissive umask

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoMakefile: fix permissions of mergetools/ checked out with permissive umask
Jonathan Nieder [Sun, 9 Oct 2011 09:17:07 +0000 (04:17 -0500)]
Makefile: fix permissions of mergetools/ checked out with permissive umask

Ever since mergetool--lib was split into multiple files in
v1.7.7-rc0~3^2~1 (2011-08-18), the Makefile takes care to reset umask
and use tar --no-owner when installing merge tool definitions to
$(gitexecdir)/mergetools/.  Unfortunately it does not take into
account the possibility that the permission bits of the files being
copied might already be wrong.

Rather than fixing the "tar" incantation and making it even more
complicated, let's just use the "install" utility.  This only means
losing the ability to install executables and subdirectories of
mergetools/, which wasn't used.

Noticed by installing from a copy of git checked out with umask 002.
Compare v1.6.0.3~81^2 (Fix permission bits on sources checked out with
an overtight umask, 2008-08-21).

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agogit-gui: deal with unknown files when pressing the "Stage Changed" button
Heiko Voigt [Fri, 27 May 2011 15:40:24 +0000 (17:40 +0200)]
git-gui: deal with unknown files when pressing the "Stage Changed" button

As a shortcut the "Stage Changed" button can be used to stage all current
changes in the worktree which are not set to ignore. Previously unknown
files would be ignored. The user might want to say: "Just save everything
in my worktree". To support this workflow we now ask whether the user also
wants to stage the unknown files if there are some present.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
9 years agomerge-one-file: fix "expr: non-numeric argument"
Jay Soffian [Thu, 6 Oct 2011 18:25:55 +0000 (14:25 -0400)]
merge-one-file: fix "expr: non-numeric argument"

When invoking expr to compare two numbers, don't quote the
variables which are the output of 'wc -c'. On OS X, this output
includes spaces, which expr balks at:

  $ sz0=`wc -c </etc/passwd`
  $ sz1=`wc -c </etc/passwd`
  $ echo "'$sz0'"
  '    3667'

  $ expr "$sz0" \< "$sz1" \* 2
  expr: non-numeric argument

  $ expr $sz0 \< $sz1 \* 2
  1

Signed-off-by: Jay Soffian <jaysoffian@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoident: do not retrieve default ident when unnecessary
Jonathan Nieder [Thu, 6 Oct 2011 17:17:19 +0000 (12:17 -0500)]
ident: do not retrieve default ident when unnecessary

Avoid a getpwuid() call (which contacts the network if the password
database is not local), read of /etc/mailname, gethostname() call, and
reverse DNS lookup if the user has already chosen a name and email
through configuration, the environment, or the command line.

This should slightly speed up commands like "git commit".  More
importantly, it improves error reporting when computation of the
default ident string does not go smoothly.  For example, after
detecting a problem (e.g., "warning: cannot open /etc/mailname:
Permission denied") in retrieving the default committer identity:

touch /etc/mailname; # as root
chmod -r /etc/mailname; # as root
git commit -m 'test commit'

you can squelch the warning while waiting for your sysadmin to fix the
permissions problem.

echo '[user] email = me@example.com' >>~/.gitconfig

Inspired-by: Johannes Sixt <j6t@kdgb.org>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoadd_ref(): verify that the refname is formatted correctly
Michael Haggerty [Thu, 15 Sep 2011 21:10:43 +0000 (23:10 +0200)]
add_ref(): verify that the refname is formatted correctly

In add_ref(), verify that the refname is formatted correctly before
adding it to the ref_list.  Here we have to allow refname components
that start with ".", since (for example) the remote protocol uses
synthetic reference name ".have".  So add a new REFNAME_DOT_COMPONENT
flag that can be passed to check_refname_format() to allow leading
dots.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoresolve_ref(): expand documentation
Michael Haggerty [Thu, 15 Sep 2011 21:10:42 +0000 (23:10 +0200)]
resolve_ref(): expand documentation

Record information about resolve_ref(), hard-won via reverse
engineering, in a comment for future spelunkers.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoresolve_ref(): also treat a too-long SHA1 as invalid
Michael Haggerty [Thu, 15 Sep 2011 21:10:41 +0000 (23:10 +0200)]
resolve_ref(): also treat a too-long SHA1 as invalid

If the SHA1 in a reference file is not terminated by a space or
end-of-file, consider it malformed and emit a warning.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoresolve_ref(): emit warnings for improperly-formatted references
Michael Haggerty [Thu, 15 Sep 2011 21:10:40 +0000 (23:10 +0200)]
resolve_ref(): emit warnings for improperly-formatted references

While resolving references, if a reference is found that is in an
unrecognized format, emit a warning (and then fail, as before).
Wouldn't *you* want to know?

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoresolve_ref(): verify that the input refname has the right format
Michael Haggerty [Thu, 15 Sep 2011 21:10:39 +0000 (23:10 +0200)]
resolve_ref(): verify that the input refname has the right format

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoremote: avoid passing NULL to read_ref()
Michael Haggerty [Thu, 15 Sep 2011 21:10:38 +0000 (23:10 +0200)]
remote: avoid passing NULL to read_ref()

read_ref() can (and in test t5800, actually *does*) return NULL.
Don't pass the NULL along to read_ref().  Coincidentally, this mistake
didn't make resolve_ref() blow up, but upcoming changes to
resolve_ref() will make it less forgiving.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoremote: use xstrdup() instead of strdup()
Michael Haggerty [Thu, 15 Sep 2011 21:10:37 +0000 (23:10 +0200)]
remote: use xstrdup() instead of strdup()

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoresolve_ref(): do not follow incorrectly-formatted symbolic refs
Michael Haggerty [Thu, 15 Sep 2011 21:10:36 +0000 (23:10 +0200)]
resolve_ref(): do not follow incorrectly-formatted symbolic refs

Emit a warning and fail if a symbolic reference refers to an
incorrectly-formatted refname.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoresolve_ref(): extract a function get_packed_ref()
Michael Haggerty [Thu, 15 Sep 2011 21:10:35 +0000 (23:10 +0200)]
resolve_ref(): extract a function get_packed_ref()

Making it a function and giving it a name makes the code clearer.  I
also have a strong suspicion that the function will find other uses in
the future.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoresolve_ref(): turn buffer into a proper string as soon as possible
Michael Haggerty [Thu, 15 Sep 2011 21:10:34 +0000 (23:10 +0200)]
resolve_ref(): turn buffer into a proper string as soon as possible

Immediately strip off trailing spaces and null-terminate the string
holding the contents of the reference file; this allows the use of
string functions and avoids the need to keep separate track of the
string's length.  (get_sha1_hex() fails automatically if the string is
too short.)

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoresolve_ref(): only follow a symlink that contains a valid, normalized refname
Michael Haggerty [Thu, 15 Sep 2011 21:10:33 +0000 (23:10 +0200)]
resolve_ref(): only follow a symlink that contains a valid, normalized refname

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoresolve_ref(): use prefixcmp()
Michael Haggerty [Thu, 15 Sep 2011 21:10:32 +0000 (23:10 +0200)]
resolve_ref(): use prefixcmp()

Terminate the link content string one step earlier, allowing
prefixcmp() to be used instead of the less clear memcmp().

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoresolve_ref(): explicitly fail if a symlink is not readable
Michael Haggerty [Thu, 15 Sep 2011 21:10:31 +0000 (23:10 +0200)]
resolve_ref(): explicitly fail if a symlink is not readable

Previously the failure came later, after a few steps in which the
length was treated like the actual length of a string.  Even though
the old code gave the same answers, it was somewhat misleading.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoChange check_refname_format() to reject unnormalized refnames
Michael Haggerty [Thu, 15 Sep 2011 21:10:30 +0000 (23:10 +0200)]
Change check_refname_format() to reject unnormalized refnames

Since much of the infrastructure does not work correctly with
unnormalized refnames, change check_refname_format() to reject them.

Similarly, change "git check-ref-format" to reject unnormalized
refnames by default.  But add an option --normalize, which causes "git
check-ref-format" to normalize the refname before checking its format,
and print the normalized refname.  This is exactly the behavior of the
old --print option, which is retained but deprecated.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoInline function refname_format_print()
Michael Haggerty [Thu, 15 Sep 2011 21:10:29 +0000 (23:10 +0200)]
Inline function refname_format_print()

Soon we will make printing independent of collapsing.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoMake collapse_slashes() allocate memory for its result
Michael Haggerty [Thu, 15 Sep 2011 21:10:28 +0000 (23:10 +0200)]
Make collapse_slashes() allocate memory for its result

This will make upcoming changes a tiny bit easier.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoDo not allow ".lock" at the end of any refname component
Michael Haggerty [Thu, 15 Sep 2011 21:10:27 +0000 (23:10 +0200)]
Do not allow ".lock" at the end of any refname component

Allowing any refname component to end with ".lock" is looking for
trouble; for example,

    $ git br foo.lock/bar
    $ git br foo
    fatal: Unable to create '[...]/.git/refs/heads/foo.lock': File exists.

Therefore, do not allow any refname component to end with ".lock".

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoRefactor check_refname_format()
Michael Haggerty [Thu, 15 Sep 2011 21:10:26 +0000 (23:10 +0200)]
Refactor check_refname_format()

Among other things, extract a function check_refname_component().

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoChange check_ref_format() to take a flags argument
Michael Haggerty [Thu, 15 Sep 2011 21:10:25 +0000 (23:10 +0200)]
Change check_ref_format() to take a flags argument

Change check_ref_format() to take a flags argument that indicates what
is acceptable in the reference name (analogous to "git
check-ref-format"'s "--allow-onelevel" and "--refspec-pattern").  This
is more convenient for callers and also fixes a failure in the test
suite (and likely elsewhere in the code) by enabling "onelevel" and
"refspec-pattern" to be allowed independently of each other.

Also rename check_ref_format() to check_refname_format() to make it
obvious that it deals with refnames rather than references themselves.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoChange bad_ref_char() to return a boolean value
Michael Haggerty [Thu, 15 Sep 2011 21:10:24 +0000 (23:10 +0200)]
Change bad_ref_char() to return a boolean value

Previously most bad characters were indicated by returning 1, but "*"
was special-cased to return 2 instead of 1.  One caller examined the
return value to see whether the special case occurred.

But it is easier (to document and understand) for bad_ref_char()
simply to return a boolean value, treating "*" like any other bad
character.  Special-case the handling of "*" (which only occurs in
very specific circumstances) at the caller.  The resulting calling
code thereby also becomes more transparent.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>