gitweb.git
Update draft release notes to 1.7.8Junio 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>

Merge git://repo.or.cz/git-guiJunio 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'

git-svn: Allow certain refs to be ignoredMichael 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>

git 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>

Sync with maintJunio 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>

Prepare for 1.7.7.1Junio 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>

Merge branch 'ms/patch-id-with-overlong-line' into... 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

Merge branch 'jc/maint-bundle-too-quiet' into maintJunio 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()

Merge branch 'jk/filter-branch-require-clean-work-tree... 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

Merge branch 'jc/maint-fsck-fwrite-size-check' into... 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

Merge branch 'bk/ancestry-path' into maintJunio 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

Merge branch 'jk/maint-fetch-submodule-check-fix' into... 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

Merge branch 'tr/mergetool-valgrind' into maintJunio 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

Merge branch 'nm/grep-object-sha1-lock' into maintJunio 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

Merge branch 'jc/diff-index-unpack' into maintJunio 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

Merge branch 'mm/rebase-i-exec-edit' into maintJunio 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

Merge 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

Merge branch 'jc/maint-grep-untracked-exclude' into... 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

grep: fix the error message that mentions --excludeBert 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>

git-gui: incremental goto line in blame viewBert 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>

git-gui: clear the goto line input when hidingBert 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>

git-gui: only accept numbers in the goto-line inputBert 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>

git-gui: search and linenumber input are mutual exclusi... 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>

send-email: Fix %config_path_settings handlingCord 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>

Merge 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

t1304: fall back to $USER if $LOGNAME is not definedRené 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>

Update draft release notes to 1.7.8Junio 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>

Merge 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"

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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()

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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

Update draft release notes to 1.7.8Junio 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>

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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()

Merge 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

t5403: convert leading spaces to tabsNguyễ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>

Update draft release notes to 1.7.8Junio 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>

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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
...

Merge 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()

Merge 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

Merge 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

Merge 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'

Merge 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

Merge 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

Merge 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

Merge 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

refs.c: free duplicate entries in the ref array instead... 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>

refs.c: abort ref search if ref array is emptyBrandon 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>

refs.c: ensure struct whose member may be passed to... 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>

Fix some "variable might be used uninitialized" warningsRamsay 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>

Makefile: fix permissions of mergetools/ checked out... 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>

Makefile: fix permissions of mergetools/ checked out... 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>

git-gui: deal with unknown files when pressing the... 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>

merge-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>

ident: do not retrieve default ident when unnecessaryJonathan 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>

add_ref(): verify that the refname is formatted correctlyMichael 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>

resolve_ref(): expand documentationMichael 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>

resolve_ref(): also treat a too-long SHA1 as invalidMichael 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>

resolve_ref(): emit warnings for improperly-formatted... 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>

resolve_ref(): verify that the input refname has the... 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>

remote: 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>

remote: 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>

resolve_ref(): do not follow incorrectly-formatted... 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>

resolve_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>

resolve_ref(): turn buffer into a proper string as... 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>

resolve_ref(): only follow a symlink that contains... 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>

resolve_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>

resolve_ref(): explicitly fail if a symlink is not... 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>

Change check_refname_format() to reject unnormalized... 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>

Inline 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>

Make collapse_slashes() allocate memory for its resultMichael 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>

Do not allow ".lock" at the end of any refname componentMichael 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>

Refactor 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>

Change check_ref_format() to take a flags argumentMichael 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>

Change bad_ref_char() to return a boolean valueMichael 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>

git check-ref-format: add options --allow-onelevel... Michael Haggerty Thu, 15 Sep 2011 21:10:23 +0000 (23:10 +0200)

git check-ref-format: add options --allow-onelevel and --refspec-pattern

Also add tests of the new options. (Actually, one big reason to add
the new options is to make it easy to test check_ref_format(), though
the options should also be useful to other scripts.)

Interpret the result of check_ref_format() based on which types of
refnames are allowed. However, because check_ref_format() can only
return a single value, one test case is still broken. Specifically,
the case "git check-ref-format --onelevel '*'" incorrectly succeeds
because check_ref_format() returns CHECK_REF_FORMAT_ONELEVEL for this
refname even though the refname is also CHECK_REF_FORMAT_WILDCARD.
The type of check that leads to this failure is used elsewhere in
"real" code and could lead to bugs; it will be fixed over the next few
commits.

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

t1402: add some more testsMichael Haggerty Thu, 15 Sep 2011 21:10:22 +0000 (23:10 +0200)

t1402: add some more tests

The new tests reflect the status quo. Soon the rule for "*.lock" in
refname components will be tightened up.

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

get_sha1_hex(): do not read past a NUL characterMichael Haggerty Fri, 23 Sep 2011 13:38:36 +0000 (15:38 +0200)

get_sha1_hex(): do not read past a NUL character

Previously, get_sha1_hex() would read one character past the end of a
null-terminated string whose strlen was an even number less than 40.
Although the function correctly returned -1 in these cases, the extra
memory access might have been to uninitialized (or even, conceivably,
unallocated) memory.

Add a check to avoid reading past the end of a string.

This problem was discovered by Thomas Rast <trast@student.ethz.ch>
using valgrind.

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