Code

git.git
14 years agoMerge branch 'ks/no-textconv-symlink' into next
Junio C Hamano [Fri, 5 Nov 2010 18:39:07 +0000 (11:39 -0700)]
Merge branch 'ks/no-textconv-symlink' into next

* ks/no-textconv-symlink:
  blame,cat-file --textconv: Don't assume mode is ``S_IFREF | 0664''
  blame,cat-file: Demonstrate --textconv is wrongly running converter on symlinks
  blame,cat-file: Prepare --textconv tests for correctly-failing conversion program

14 years agoMerge branch 'jk/no-textconv-symlink' into next
Junio C Hamano [Fri, 5 Nov 2010 18:39:07 +0000 (11:39 -0700)]
Merge branch 'jk/no-textconv-symlink' into next

* jk/no-textconv-symlink:
  diff: don't use pathname-based diff drivers for symlinks

14 years agoMerge branch 'kb/completion-checkout' into next
Junio C Hamano [Fri, 5 Nov 2010 18:39:07 +0000 (11:39 -0700)]
Merge branch 'kb/completion-checkout' into next

* kb/completion-checkout:
  completion: Support the DWIM mode for git checkout

14 years agoMerge branch 'sg/completion' into next
Junio C Hamano [Fri, 5 Nov 2010 18:39:07 +0000 (11:39 -0700)]
Merge branch 'sg/completion' into next

* sg/completion:
  bash: support pretty format aliases
  bash: support more 'git notes' subcommands and their options
  bash: not all 'git bisect' subcommands make sense when not bisecting
  bash: offer refs for 'git bisect start'

14 years agoMerge branch 'sg/bisect' into next
Junio C Hamano [Fri, 5 Nov 2010 18:39:07 +0000 (11:39 -0700)]
Merge branch 'sg/bisect' into next

* sg/bisect:
  bisect: check for mandatory argument of 'bisect replay'
  bisect: improve error msg of 'bisect reset' when original HEAD is deleted
  bisect: improve error message of 'bisect log' while not bisecting

14 years agoMerge branch 'jm/mailmap' into next
Junio C Hamano [Fri, 5 Nov 2010 18:39:07 +0000 (11:39 -0700)]
Merge branch 'jm/mailmap' into next

* jm/mailmap:
  t4203: do not let "git shortlog" DWIM based on tty
  t4203 (mailmap): stop hardcoding commit ids and dates
  mailmap: fix use of freed memory

14 years agoMerge branch 'jk/missing-config' into next
Junio C Hamano [Fri, 5 Nov 2010 18:39:06 +0000 (11:39 -0700)]
Merge branch 'jk/missing-config' into next

* jk/missing-config:
  config: treat non-existent config files as empty

14 years agoMerge branch 'jk/diff-CBM' into next
Junio C Hamano [Fri, 5 Nov 2010 18:39:06 +0000 (11:39 -0700)]
Merge branch 'jk/diff-CBM' into next

* jk/diff-CBM:
  diff: report bogus input to -C/-M/-B

14 years agoMerge branch 'jk/add-e-doc' into next
Junio C Hamano [Fri, 5 Nov 2010 18:39:06 +0000 (11:39 -0700)]
Merge branch 'jk/add-e-doc' into next

* jk/add-e-doc:
  docs: give more hints about how "add -e" works

14 years agoMerge branch 'jl/maint-pull-tags-doc' into next
Junio C Hamano [Fri, 5 Nov 2010 18:39:06 +0000 (11:39 -0700)]
Merge branch 'jl/maint-pull-tags-doc' into next

* jl/maint-pull-tags-doc:
  pull: Remove --tags option from manpage

14 years agoMerge branch 'kb/maint-submodule-savearg' into next
Junio C Hamano [Fri, 5 Nov 2010 18:39:06 +0000 (11:39 -0700)]
Merge branch 'kb/maint-submodule-savearg' into next

* kb/maint-submodule-savearg:
  submodule: only preserve flags across recursive status/update invocations
  submodule: preserve all arguments exactly when recursing

14 years agoMerge branch 'kb/maint-diff-ws-check' into next
Junio C Hamano [Fri, 5 Nov 2010 18:39:06 +0000 (11:39 -0700)]
Merge branch 'kb/maint-diff-ws-check' into next

* kb/maint-diff-ws-check:
  diff: handle lines containing only whitespace and tabs better
  test-lib: extend test_decode_color to handle more color codes

14 years agoMerge branch 'bg/maint-gitweb-test-lib' into next
Junio C Hamano [Fri, 5 Nov 2010 18:39:06 +0000 (11:39 -0700)]
Merge branch 'bg/maint-gitweb-test-lib' into next

* bg/maint-gitweb-test-lib:
  t/gitweb-lib: Don't pass constant to decode_utf8

Conflicts:
t/gitweb-lib.sh

14 years agoMerge branch 'tr/maint-merge-file-subdir' into next
Junio C Hamano [Fri, 5 Nov 2010 18:39:06 +0000 (11:39 -0700)]
Merge branch 'tr/maint-merge-file-subdir' into next

* tr/maint-merge-file-subdir:
  merge-file: correctly find files when called in subdir
  prefix_filename(): safely handle the case where pfx_len=0

14 years agoMerge branch 'tr/maint-git-repack-tmpfile' into next
Junio C Hamano [Fri, 5 Nov 2010 18:39:06 +0000 (11:39 -0700)]
Merge branch 'tr/maint-git-repack-tmpfile' into next

* tr/maint-git-repack-tmpfile:
  repack: place temporary packs under .git/objects/pack/

14 years agoMerge branch 'jk/maint-rev-list-nul' into next
Junio C Hamano [Fri, 5 Nov 2010 18:39:06 +0000 (11:39 -0700)]
Merge branch 'jk/maint-rev-list-nul' into next

* jk/maint-rev-list-nul:
  rev-list: handle %x00 NUL in user format

14 years agoMerge branch 'dk/maint-blame-el' into next
Junio C Hamano [Fri, 5 Nov 2010 18:39:05 +0000 (11:39 -0700)]
Merge branch 'dk/maint-blame-el' into next

* dk/maint-blame-el:
  git-blame.el: Add (require 'format-spec)

14 years agoMerge branch 'jk/maint-apply-no-binary' into next
Junio C Hamano [Fri, 5 Nov 2010 18:39:05 +0000 (11:39 -0700)]
Merge branch 'jk/maint-apply-no-binary' into next

* jk/maint-apply-no-binary:
  apply: don't segfault on binary files with missing data

14 years agoMerge branch 'master' into next
Junio C Hamano [Fri, 5 Nov 2010 17:42:56 +0000 (10:42 -0700)]
Merge branch 'master' into next

* master:
  t0003: properly quote $HOME
  contrib/ciabot: git-describe commit instead of HEAD
  Fix a formatting error in git-merge.txt
  git-gui: apply color information from git diff output
  git-gui: use wordprocessor tab style to ensure tabs work as expected
  git-gui: correct assignment of work-tree
  git-gui: use full dialog width for old name when renaming branch
  git-gui: generic version trimming
  git-gui: enable the Tk console when tracing/debugging on Windows
  git-gui: show command-line errors in a messagebox on Windows
  On Windows, avoid git-gui to call Cygwin's nice utility

14 years agoMerge branch 'aw/git-p4-deletion'
Junio C Hamano [Fri, 5 Nov 2010 17:42:46 +0000 (10:42 -0700)]
Merge branch 'aw/git-p4-deletion'

* aw/git-p4-deletion:
  Fix handling of git-p4 on deleted files

14 years agoMerge branch 'master' of git://repo.or.cz/git-gui
Junio C Hamano [Fri, 5 Nov 2010 17:41:09 +0000 (10:41 -0700)]
Merge branch 'master' of git://repo.or.cz/git-gui

* 'master' of git://repo.or.cz/git-gui:
  git-gui: apply color information from git diff output
  git-gui: use wordprocessor tab style to ensure tabs work as expected
  git-gui: correct assignment of work-tree
  git-gui: use full dialog width for old name when renaming branch
  git-gui: generic version trimming
  git-gui: enable the Tk console when tracing/debugging on Windows
  git-gui: show command-line errors in a messagebox on Windows
  On Windows, avoid git-gui to call Cygwin's nice utility

14 years agoMerge branch 'maint'
Junio C Hamano [Fri, 5 Nov 2010 17:36:49 +0000 (10:36 -0700)]
Merge branch 'maint'

* maint:
  Fix a formatting error in git-merge.txt

14 years agopull: Remove --tags option from manpage
Jens Lehmann [Wed, 3 Nov 2010 20:55:48 +0000 (21:55 +0100)]
pull: Remove --tags option from manpage

"Fetch all tags and merge them" does not make any sense as a request at
the logical level, even though it might be more convenient to type.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agosubmodule: only preserve flags across recursive status/update invocations
Kevin Ballard [Wed, 3 Nov 2010 06:26:25 +0000 (23:26 -0700)]
submodule: only preserve flags across recursive status/update invocations

Recursive invocations of submodule update/status preserve all arguments,
so executing

        git submodule update --recursive -- foo

attempts to recursively update a submodule named "foo".

Naturally, this fails as one cannot have an infinitely-deep stack of
submodules each containing a submodule named "foo". The desired behavior
is instead to update foo and then recursively update all submodules
inside of foo.

This commit accomplishes that by only saving the flags for use in the
recursive invocation.

Signed-off-by: Kevin Ballard <kevin@sb.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agosubmodule: preserve all arguments exactly when recursing
Kevin Ballard [Wed, 3 Nov 2010 06:26:24 +0000 (23:26 -0700)]
submodule: preserve all arguments exactly when recursing

Shell variables only hold strings, not lists of parameters,
so $orig_args after

        orig_args="$@"

fails to remember where each parameter starts and ends, if
some include whitespace.  So

        git submodule update \
                --reference='/var/lib/common objects.git' \
                --recursive --init

becomes

        git submodule update --reference=/var/lib/common \
                objects.git --recursive --init

in the inner repositories.  Use "git rev-parse --sq-quote" to
save parameters in quoted form ready for evaluation by the
shell, avoiding this problem.

Helped-By: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Kevin Ballard <kevin@sb.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit-blame.el: Add (require 'format-spec)
David Kågedal [Tue, 25 May 2010 13:44:15 +0000 (15:44 +0200)]
git-blame.el: Add (require 'format-spec)

c5022f57 (git-blame.el: Change how blame information is shown,
2009-09-29) taught the "M-x git-blame" mode to format its output
in a more interesting way, making use of the format-spec function.

format-spec is included in Emacs 23 and is a useful function.
Older emacsen can get it from Gnus.  In all emacsen, we need
to 'require it before use to avoid warnings:

 git-blame.el:483:1:Warning: the function `format-spec' is not known to be
     defined.

Reported-by: Sergei Organov <osv@javad.com>
Reported-by: Kevin Ryde <user42@zip.com.au>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoapply: don't segfault on binary files with missing data
Jeff King [Mon, 18 Oct 2010 18:39:17 +0000 (14:39 -0400)]
apply: don't segfault on binary files with missing data

Usually when applying a binary diff generated without
--binary, it will be rejected early, as we don't even have
the full sha1 of the pre- and post-images.

However, if the diff is generated with --full-index (but not
--binary), then we will actually try to apply it. If we have
the postimage blob, then we can take a shortcut and never
even look at the binary diff at all (e.g., this can happen
when rebasing changes within a repository).

If we don't have the postimage blob, though, we try to look
at the actual fragments, of which there are none, and get a
segfault. This patch checks explicitly for that case and
complains to the user instead of segfaulting. We need to
keep the check at a low level so that the "shortcut" case
above continues to work.

We also add a test that demonstrates the segfault. While
we're at it, let's also explicitly test the shortcut case.

Reported-by: Rafaël Carré <rafael.carre@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot0003: properly quote $HOME
Thomas Rast [Mon, 18 Oct 2010 09:09:54 +0000 (11:09 +0200)]
t0003: properly quote $HOME

6df42ab (Add global and system-wide gitattributes, 2010-09-01) forgot
to quote one instance of $HOME in the tests.  This would be valid
according to POSIX, but bash 4 helpfully declines to execute the
command in question with an "ambiguous redirection" error.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agocontrib/ciabot: git-describe commit instead of HEAD
Sven Eckelmann [Mon, 20 Sep 2010 09:31:22 +0000 (11:31 +0200)]
contrib/ciabot: git-describe commit instead of HEAD

For each commit a shorter version of the name will be generated. This is
either the truncated hash or the output of git-describe. The
call to git-describe was only made with an empty shell variable instead
of an actual commit hash. Thus it only described the current HEAD and
not each commit we want to submit to cia.vc.

Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoFix a formatting error in git-merge.txt
Nathan W. Panike [Fri, 29 Oct 2010 15:33:54 +0000 (10:33 -0500)]
Fix a formatting error in git-merge.txt

Inside an element of an enumerated list, the second and subsequent
paragraphs need to lose their indent and have to be strung together with a
line with a single '+' on it instead.  Otherwise the lines below are shown
in typewriter face, which just looks wrong.

Signed-off-by: Nathan W. Panike <nathan.panike@gmail.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'master' into next
Junio C Hamano [Fri, 29 Oct 2010 00:14:03 +0000 (17:14 -0700)]
Merge branch 'master' into next

* master:
  completion: fix zsh check under bash with 'set -u'

14 years agocompletion: fix zsh check under bash with 'set -u'
Mark Lodato [Thu, 28 Oct 2010 01:08:21 +0000 (21:08 -0400)]
completion: fix zsh check under bash with 'set -u'

Commit 06f44c3 (completion: make compatible with zsh) broke bash
compatibility with 'set -u': a warning was generated when checking
$ZSH_VERSION.  The solution is to supply a default value, using
${ZSH_VERSION-}.  Thanks to SZEDER Gábor for the fix.

Signed-off-by: Mark Lodato <lodatom@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit-gui: apply color information from git diff output
Pat Thoyts [Fri, 22 Oct 2010 15:14:38 +0000 (16:14 +0100)]
git-gui: apply color information from git diff output

This patch extracts the ANSI color sequences from git diff output and
applies these to the diff view window. This ensures that the gui view
makes use of the current git configuration for whitespace display.

ANSI codes may include attributes, foreground and background in a single
sequence. Handle this and support bold and reverse attributes. Ignore
all other attributes.

Suggested-by: Tor Arvid Lund <torarvid@gmail.com>
Suggested-by: Junio C Hamano <gitster@pobox.com>
Tested-by: Tor Arvid Lund <torarvid@gmail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
14 years agogit-gui: use wordprocessor tab style to ensure tabs work as expected
Pat Thoyts [Wed, 27 Oct 2010 22:37:31 +0000 (23:37 +0100)]
git-gui: use wordprocessor tab style to ensure tabs work as expected

The Tk text widget tab style is tabular where the first tab will align to
the first tabstop and if that position is left of the current location
then just a single character space is used. With the wordprocessor style
a tab moves the next character position to the next rightmost tabstop
as expected for viewing code.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
14 years agoMerge branch 'master' into next
Junio C Hamano [Wed, 27 Oct 2010 05:03:44 +0000 (22:03 -0700)]
Merge branch 'master' into next

* master:

14 years agoMerge branch 'ab/send-email-perl'
Junio C Hamano [Wed, 27 Oct 2010 05:02:52 +0000 (22:02 -0700)]
Merge branch 'ab/send-email-perl'

* ab/send-email-perl:
  send-email: extract_valid_address use qr// regexes
  send-email: is_rfc2047_quoted use qr// regexes
  send-email: use Perl idioms in while loop
  send-email: make_message_id use "require" instead of "use"
  send-email: send_message die on $!, not $?
  send-email: use (?:) instead of () if no match variables are needed
  send-email: sanitize_address use qq["foo"], not "\"foo\""
  send-email: sanitize_address use $foo, not "$foo"
  send-email: use \E***\Q instead of \*\*\*
  send-email: cleanup_compose_files doesn't need a prototype
  send-email: unique_email_list doesn't need a prototype
  send-email: file_declares_8bit_cte doesn't need a prototype
  send-email: get_patch_subject doesn't need a prototype
  send-email: use lexical filehandles during sending
  send-email: use lexical filehandles for $compose
  send-email: use lexical filehandle for opendir

Conflicts:
git-send-email.perl

14 years agoMerge branch 'sb/send-email-use-to-from-input'
Junio C Hamano [Wed, 27 Oct 2010 05:02:03 +0000 (22:02 -0700)]
Merge branch 'sb/send-email-use-to-from-input'

* sb/send-email-use-to-from-input:
  send-email: Don't leak To: headers between patches
  send-email: Use To: headers in patch files

Conflicts:
git-send-email.perl

14 years agoMerge branch 'ab/require-perl-5.8'
Junio C Hamano [Wed, 27 Oct 2010 04:57:31 +0000 (21:57 -0700)]
Merge branch 'ab/require-perl-5.8'

* ab/require-perl-5.8:
  perl: use "use warnings" instead of -w
  perl: bump the required Perl version to 5.8 from 5.6.[21]

14 years agoMerge branch 'kb/merge-recursive-rename-threshold'
Junio C Hamano [Wed, 27 Oct 2010 04:54:04 +0000 (21:54 -0700)]
Merge branch 'kb/merge-recursive-rename-threshold'

* kb/merge-recursive-rename-threshold:
  diff: add synonyms for -M, -C, -B
  merge-recursive: option to specify rename threshold

Conflicts:
Documentation/diff-options.txt
Documentation/merge-strategies.txt

14 years agoMerge branch 'jp/send-email-to-cmd'
Junio C Hamano [Wed, 27 Oct 2010 04:52:26 +0000 (21:52 -0700)]
Merge branch 'jp/send-email-to-cmd'

* jp/send-email-to-cmd:
  git-send-email.perl: Add --to-cmd

Conflicts:
git-send-email.perl

14 years agoMerge branch 'as/daemon-multi-listen'
Junio C Hamano [Wed, 27 Oct 2010 04:50:03 +0000 (21:50 -0700)]
Merge branch 'as/daemon-multi-listen'

* as/daemon-multi-listen:
  daemon: allow more than one host address given via --listen
  daemon: add helper function named_sock_setup

14 years agoMerge branch 'dm/mergetool-vimdiff'
Junio C Hamano [Wed, 27 Oct 2010 04:47:11 +0000 (21:47 -0700)]
Merge branch 'dm/mergetool-vimdiff'

* dm/mergetool-vimdiff:
  mergetool-lib: make the three-way diff the default for vim/gvim
  mergetool-lib: add a three-way diff view for vim/gvim
  mergetool-lib: combine vimdiff and gvimdiff run blocks

14 years agoMerge branch 'kf/post-receive-sample-hook'
Junio C Hamano [Wed, 27 Oct 2010 04:41:18 +0000 (21:41 -0700)]
Merge branch 'kf/post-receive-sample-hook'

* kf/post-receive-sample-hook:
  post-receive-email: ensure sent messages are not empty

14 years agoMerge branch 'jf/merge-ignore-ws'
Junio C Hamano [Wed, 27 Oct 2010 04:40:54 +0000 (21:40 -0700)]
Merge branch 'jf/merge-ignore-ws'

* jf/merge-ignore-ws:
  merge-recursive: options to ignore whitespace changes
  merge-recursive --patience
  ll-merge: replace flag argument with options struct
  merge-recursive: expose merge options for builtin merge

14 years agoMerge branch 'ml/completion-zsh'
Junio C Hamano [Wed, 27 Oct 2010 04:39:03 +0000 (21:39 -0700)]
Merge branch 'ml/completion-zsh'

* ml/completion-zsh:
  completion: make compatible with zsh

14 years agoMerge branch 'po/sendemail'
Junio C Hamano [Wed, 27 Oct 2010 04:37:54 +0000 (21:37 -0700)]
Merge branch 'po/sendemail'

* po/sendemail:
  New send-email option smtpserveroption.
  Remove @smtp_host_parts variable as not used.
  Minor indentation fix.

14 years agoMerge branch 'en/tree-walk-optim'
Junio C Hamano [Wed, 27 Oct 2010 04:37:49 +0000 (21:37 -0700)]
Merge branch 'en/tree-walk-optim'

* en/tree-walk-optim:
  diff_tree(): Skip skip_uninteresting() when all remaining paths interesting
  tree_entry_interesting(): Make return value more specific
  tree-walk: Correct bitrotted comment about tree_entry()
  Document pre-condition for tree_entry_interesting

14 years agoMerge branch 'aw/git-p4-deletion' into next
Junio C Hamano [Tue, 26 Oct 2010 22:09:00 +0000 (15:09 -0700)]
Merge branch 'aw/git-p4-deletion' into next

* aw/git-p4-deletion:
  Fix handling of git-p4 on deleted files

14 years agoMerge branch 'master' into next
Junio C Hamano [Tue, 26 Oct 2010 22:06:21 +0000 (15:06 -0700)]
Merge branch 'master' into next

* master:
  Fix copy-pasted comments related to tree diff handling.

14 years agoMerge branch 'maint'
Junio C Hamano [Tue, 26 Oct 2010 22:04:05 +0000 (15:04 -0700)]
Merge branch 'maint'

* maint:
  Fix copy-pasted comments related to tree diff handling.

14 years agoFix copy-pasted comments related to tree diff handling.
Yann Dirson [Sun, 24 Oct 2010 21:03:10 +0000 (23:03 +0200)]
Fix copy-pasted comments related to tree diff handling.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoFix handling of git-p4 on deleted files
Andrew Waters [Fri, 22 Oct 2010 12:26:02 +0000 (13:26 +0100)]
Fix handling of git-p4 on deleted files

Signed-off-by: Andrew Waters <apwaters@googlemail.com>
Tested-by: Thomas Berg <merlin66b@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'master' into next
Junio C Hamano [Fri, 22 Oct 2010 00:16:27 +0000 (17:16 -0700)]
Merge branch 'master' into next

* master:
  Git 1.7.3.2

14 years agoSync with 1.7.3.2
Junio C Hamano [Fri, 22 Oct 2010 00:16:04 +0000 (17:16 -0700)]
Sync with 1.7.3.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoGit 1.7.3.2 v1.7.3.2
Junio C Hamano [Fri, 22 Oct 2010 00:14:32 +0000 (17:14 -0700)]
Git 1.7.3.2

14 years agoMerge branch 'sn/doc-opt-notation' into maint
Junio C Hamano [Thu, 21 Oct 2010 23:26:42 +0000 (16:26 -0700)]
Merge branch 'sn/doc-opt-notation' into maint

* sn/doc-opt-notation:
  Fix {update,checkout}-index usage strings
  Put a space between `<' and argument in pack-objects usage string
  Remove stray quotes in --pretty and --format documentation
  Use parentheses and `...' where appropriate
  Fix odd markup in --diff-filter documentation
  Use angles for placeholders consistently

14 years agoMerge branch 'mg/fix-build-remote-helpers' into maint
Junio C Hamano [Thu, 21 Oct 2010 23:26:38 +0000 (16:26 -0700)]
Merge branch 'mg/fix-build-remote-helpers' into maint

* mg/fix-build-remote-helpers:
  remote-helpers: build in platform independent directory

14 years agodiff: report bogus input to -C/-M/-B
Jeff King [Thu, 21 Oct 2010 14:49:47 +0000 (10:49 -0400)]
diff: report bogus input to -C/-M/-B

We already detect invalid input to these functions, but we
simply exit with an error code, never saying anything as
simple as "your input was wrong". Let's fix that.

Before:

  $ git diff -CM
  $ echo $?
  128

After:

  $ git diff -CM
  error: invalid argument to -C: M
  $ echo $?
  128

There should be no problems with having diff_opt_parse print
to stderr, as there is already precedent in complaining
about bogus --color and --output arguments.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoconfig: treat non-existent config files as empty
Jeff King [Thu, 21 Oct 2010 14:45:44 +0000 (10:45 -0400)]
config: treat non-existent config files as empty

The git_config() function signals error by returning -1 in
two instances:

  1. An actual error occurs in opening a config file (parse
     errors cause an immediate die).

  2. Of the three possible config files, none was found.

However, this second case is often not an error at all; it
simply means that the user has no configuration (they are
outside a repo, and they have no ~/.gitconfig file). This
can lead to confusing errors, such as when the bash
completion calls "git config --list" outside of a repo. If
the user has a ~/.gitconfig, the command completes
succesfully; if they do not, it complains to stderr.

This patch allows callers of git_config to distinguish
between the two cases. Error is signaled by -1, and
otherwise the return value is the number of files parsed.
This means that the traditional "git_config(...) < 0" check
for error should work, but callers who want to know whether
we parsed any files or not can still do so.

[jc: with tests from Jonathan]

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agodocs: give more hints about how "add -e" works
Jeff King [Thu, 21 Oct 2010 14:30:35 +0000 (10:30 -0400)]
docs: give more hints about how "add -e" works

The previous text was not exactly accurate; it is OK to
change space and minus lines, but only in certain ways. This
patch attempts to cover explicitly what can be done at the
individual line level, and cautions the user that
conceptually larger changes (like modifying a line) require
some understanding of the patch format.

Signed-off-by: Jeff King <peff@peff.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agodiff: handle lines containing only whitespace and tabs better
Kevin Ballard [Wed, 20 Oct 2010 22:17:26 +0000 (15:17 -0700)]
diff: handle lines containing only whitespace and tabs better

When a line contains nothing but whitespace with at least one tab
and the core.whitespace config option contains blank-at-eol, the
whitespace on the line is being printed twice, once unhighlighted
(unless otherwise matched by one of the other core.whitespace values),
and a second time highlighted for blank-at-eol.

Update the leading indentation check to stop checking when it reaches
the trailing whitespace.

Signed-off-by: Kevin Ballard <kevin@sb.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotest-lib: extend test_decode_color to handle more color codes
Kevin Ballard [Wed, 20 Oct 2010 22:17:25 +0000 (15:17 -0700)]
test-lib: extend test_decode_color to handle more color codes

Enhance the test_decode_color function to handle all common color codes,
including background colors and escapes that contain multiple codes.
This change necessitates changing <WHITE> to <BOLD>, so update t4034
as well.

This change is necessary for the next commit in order to test
background colors properly.

Signed-off-by: Kevin Ballard <kevin@sb.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/gitweb-lib: Don't pass constant to decode_utf8
Brian Gernhardt [Wed, 20 Oct 2010 05:57:11 +0000 (01:57 -0400)]
t/gitweb-lib: Don't pass constant to decode_utf8

Encode.pm started updating the string to decode in-place when a second
argument is passed in version 2.40.

This causes 'decode_utf8("", Encode::FB_CROAK)' to die with a message
like:

  Modification of a read-only value attempted at .../Encode.pm line 216.

Work around this by passing an empty variable instead of a constant
string.

Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit-gui: correct assignment of work-tree
Pat Thoyts [Wed, 20 Oct 2010 13:29:56 +0000 (14:29 +0100)]
git-gui: correct assignment of work-tree

git-gui currently uses its own logic to determine the work-tree setting
but 'git rev-parse --toplevel' directly returns git's work-tree value
by calling get_git_work_tree() and is therefore always correct.

This fixes an inability to handle some repository configurations. In
particular where .git is a file containing a path to the real directory
(a cross-platform symbolic link).
To continue to support older versions than 1.7.0, setting the work-tree
by normalizing the --show-cdup value is more reliable as git-dir might be
outside the work-tree entirely.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
14 years agot4203: do not let "git shortlog" DWIM based on tty
Junio C Hamano [Wed, 20 Oct 2010 06:32:06 +0000 (23:32 -0700)]
t4203: do not let "git shortlog" DWIM based on tty

The "shortlog" command defaults to HEAD only when its standard input is
connected to a terminal; otherwise it acts in the traditional "filter"
mode to read and summarize the "git log" output.

Two new tests added to t4203 assumed that the command always default to
HEAD, but when the standard input is closed (or connected to /dev/null),
it output empty, which is a summary of its empty input, causing the test
to break.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'master' into next
Junio C Hamano [Tue, 19 Oct 2010 21:16:28 +0000 (14:16 -0700)]
Merge branch 'master' into next

* master:
  {cvs,svn}import: use the new 'git read-tree --empty'
  t/t9001-send-email.sh: fix stderr redirection in 'Invalid In-Reply-To'
  Clarify and extend the "git diff" format documentation
  git-show-ref.txt: clarify the pattern matching
  documentation: git-config minor cleanups
  Update test script annotate-tests.sh to handle missing/extra authors

14 years ago{cvs,svn}import: use the new 'git read-tree --empty'
Thomas Rast [Mon, 18 Oct 2010 13:11:25 +0000 (15:11 +0200)]
{cvs,svn}import: use the new 'git read-tree --empty'

Since fb1bb96 (read-tree: deprecate syntax without tree-ish args,
2010-09-10) not passing --empty caused a spurious warning that was
shown to the user.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Tue, 19 Oct 2010 21:15:51 +0000 (14:15 -0700)]
Merge branch 'maint'

* maint:
  t/t9001-send-email.sh: fix stderr redirection in 'Invalid In-Reply-To'
  Clarify and extend the "git diff" format documentation
  git-show-ref.txt: clarify the pattern matching
  documentation: git-config minor cleanups
  Update test script annotate-tests.sh to handle missing/extra authors

14 years agot/t9001-send-email.sh: fix stderr redirection in 'Invalid In-Reply-To'
Antonio Ospite [Tue, 19 Oct 2010 09:50:39 +0000 (11:50 +0200)]
t/t9001-send-email.sh: fix stderr redirection in 'Invalid In-Reply-To'

Signed-off-by: Antonio Ospite <ospite@studenti.unina.it>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoClarify and extend the "git diff" format documentation
Andreas Gruenbacher [Thu, 14 Oct 2010 10:53:11 +0000 (12:53 +0200)]
Clarify and extend the "git diff" format documentation

Move the similarity and dissimilarity index header description closer to
where those extended headers are described.

Describe and/or clarify the format used for file modes, pathnames, and
the index header.

Document that all "old" files refer to the state before applying the
*entire* output, and all "new" files refer to the state thereafter.

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit-show-ref.txt: clarify the pattern matching
Michael J Gruber [Mon, 18 Oct 2010 11:33:32 +0000 (13:33 +0200)]
git-show-ref.txt: clarify the pattern matching

git-show-ref really does not do what one would expect under the name
pattern matching, so describe it.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agodocumentation: git-config minor cleanups
Cliff Frey [Mon, 18 Oct 2010 03:10:45 +0000 (20:10 -0700)]
documentation: git-config minor cleanups

Change push.default's description to add hyphens between values and
descriptions to make the manpage easier to read.  The html version is
readable either way.

Change status.showUntrackedFiles to make item descriptions be
sentences and to use the same asciidoc format as push.default.  The
only visual change is the additions of "."

Signed-off-by: Cliff Frey <cliff@meraki.com>
Acked-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoUpdate test script annotate-tests.sh to handle missing/extra authors
Kevin Ballard [Sat, 16 Oct 2010 11:09:20 +0000 (04:09 -0700)]
Update test script annotate-tests.sh to handle missing/extra authors

The current script used by annotate-tests.sh (used by t8001 and t8002) fails
to emit a warning if any of the expected authors never show up in the output
or if authors that show up in the output were never specified as expected.
Update the script to fail in both of these scenarios.

Helped-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Kevin Ballard <kevin@sb.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorepack: place temporary packs under .git/objects/pack/
Thomas Rast [Tue, 19 Oct 2010 09:50:43 +0000 (11:50 +0200)]
repack: place temporary packs under .git/objects/pack/

git-pack-objects is already careful to start out its temporary packs
under .git/objects/pack/ (cf. 8b4eb6b, Do not perform cross-directory
renames when creating packs, 2008-09-22), but git-repack did not
respond in kind so the effort was lost when the filesystem boundary is
exactly at that directory.

Let git-repack pass a path under .git/objects/pack/ as the base for
its temporary packs.

This means we might need the $PACKDIR sooner (before the pack-objects
invocation), so move the mkdir up just to be safe.

Also note that the only use of *.pack is in the find invocation way
before the pack-objects call, so the temporary packs will not suddenly
show up in any wildcards because of the directory change.

Reported-by: Marat Radchenko <marat@slonopotamus.org>
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agomerge-file: correctly find files when called in subdir
Thomas Rast [Sun, 17 Oct 2010 19:23:22 +0000 (21:23 +0200)]
merge-file: correctly find files when called in subdir

Since b541248 (merge.conflictstyle: choose between "merge" and "diff3
-m" styles, 2008-08-29), git-merge-file uses setup_directory_gently(),
thus cd'ing around to find any possible config files to use.

This broke merge-file when it is called from within a subdirectory of
a repository, and the arguments are all relative paths.

Fix by prepending the prefix, as passed down from the main git
setup code, if there is any.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoprefix_filename(): safely handle the case where pfx_len=0
Thomas Rast [Sun, 17 Oct 2010 19:23:21 +0000 (21:23 +0200)]
prefix_filename(): safely handle the case where pfx_len=0

Current prefix_filename() is proofed against the case where the prefix
'pfx' is NULL or a 0-length string, _except on Windows_.

Change the behaviour to work the same on both platforms, and only
check pfx_len so that callers passing a NULL prefix with a nonzero
pfx_len segfault early on both.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot4203 (mailmap): stop hardcoding commit ids and dates
Jonathan Nieder [Fri, 15 Oct 2010 17:12:19 +0000 (12:12 -0500)]
t4203 (mailmap): stop hardcoding commit ids and dates

A seemingly innocuous change like adding test_tick somewhere can
completely upset the final mailmap test, since it checks commit
hashes and dates.  Make the test less fragile by fuzzing away the
unpredictable parts and leaving in the authors (which is what the
test is about, anyway).

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'sn/doc-opt-notation' into next
Junio C Hamano [Thu, 14 Oct 2010 03:23:08 +0000 (20:23 -0700)]
Merge branch 'sn/doc-opt-notation' into next

* sn/doc-opt-notation:
  Fix {update,checkout}-index usage strings
  Put a space between `<' and argument in pack-objects usage string
  Remove stray quotes in --pretty and --format documentation
  Use parentheses and `...' where appropriate
  Fix odd markup in --diff-filter documentation
  Use angles for placeholders consistently

Conflicts:
Documentation/git-repack.txt
Documentation/merge-strategies.txt

14 years agoMerge branch 'master' into next
Junio C Hamano [Thu, 14 Oct 2010 03:21:24 +0000 (20:21 -0700)]
Merge branch 'master' into next

* master:
  Better advice on using topic branches for kernel development
  Documentation: update implicit "--no-index" behavior in "git diff"
  Documentation: expand 'git diff' SEE ALSO section
  Documentation: diff can compare blobs
  Documentation: gitrevisions is in section 7
  fast-import: Allow filemodify to set the root
  shell portability: no "export VAR=VAL"
  CodingGuidelines: reword parameter expansion section
  Documentation: update-index: -z applies also to --index-info
  gitweb: Improve behavior for actionless path_info gitweb URLs
  gitweb: Fix bug in evaluate_path_info
  gitweb: Fix test of highlighting support in t9500
  t5503: fix typo
  Documentation: No argument of ALLOC_GROW should have side-effects
  commit-tree: free commit message before exiting

14 years agoMerge branch 'maint'
Junio C Hamano [Thu, 14 Oct 2010 03:20:09 +0000 (20:20 -0700)]
Merge branch 'maint'

* maint:
  Better advice on using topic branches for kernel development
  Documentation: update implicit "--no-index" behavior in "git diff"
  Documentation: expand 'git diff' SEE ALSO section
  Documentation: diff can compare blobs
  Documentation: gitrevisions is in section 7
  shell portability: no "export VAR=VAL"
  CodingGuidelines: reword parameter expansion section
  Documentation: update-index: -z applies also to --index-info
  Documentation: No argument of ALLOC_GROW should have side-effects

14 years agomailmap: fix use of freed memory
Jim Meyering [Mon, 11 Oct 2010 15:41:16 +0000 (17:41 +0200)]
mailmap: fix use of freed memory

On an x86_64 system (F13-based), I ran these commands in an empty directory:

    git init
    printf '%s\n' \
      '<jdoe@example.com> <jdoe@example.COM>' \
      'John <jdoe@example.com>' > .mailmap
    git shortlog < /dev/null

Here's the result:

    (reading log message from standard input)
    *** glibc detected *** git: free(): invalid pointer: 0x0000000000f53730 ***
    ======= Backtrace: =========
    /lib64/libc.so.6[0x31ba875676]
    git[0x48c2a5]
    git[0x4b9858]
    ...
    zsh: abort (core dumped)  git shortlog

What happened?

Some .mailmap entry is of the <email1> <email2> form,
while a subsequent one looks like "User Name <Email2>,
and the two email addresses on the right are not identical
but are "equal" when using a case-insensitive comparator.

Then, when add_mapping is processing the latter line, new_email is NULL
and we free me->email, yet do not replace it with a new strdup'd string.
Thus, when later we attempt to use the buffer behind that ->email pointer,
we reference freed memory.

The solution is to free ->email and ->name only if we're about to replace them.

[jc: squashed in the tests from Jonathan]

Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoBetter advice on using topic branches for kernel development
Luck, Tony [Fri, 1 Oct 2010 18:57:52 +0000 (11:57 -0700)]
Better advice on using topic branches for kernel development

Linus Torvalds wrote:
> The real problem is that maintainers often pick random - and not at
> all stable - points for their development to begin with. They just
> pick some random "this is where Linus -git tree is today", and do
> their development on top of that. THAT is the problem - they are
> unaware that there's some nasty bug in that version.

Maybe they do this because they read it in the Git user-manual.

Fix the manual to give them better guidance.

Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation: update implicit "--no-index" behavior in "git diff"
Jonathan Nieder [Mon, 11 Oct 2010 16:06:18 +0000 (11:06 -0500)]
Documentation: update implicit "--no-index" behavior in "git diff"

Originally "--no-index" mode triggered for untracked files within the
tracked tree, but with v1.5.6-rc1~41 (Merge branch 'jc/diff-no-no-index,
2008-05-26) the command was fixed to only implicitly trigger when paths
outside the tracked tree are mentioned.

Reported-by: Yann Dirson <dirson@bertin.fr>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation: expand 'git diff' SEE ALSO section
Jonathan Nieder [Mon, 11 Oct 2010 16:05:32 +0000 (11:05 -0500)]
Documentation: expand 'git diff' SEE ALSO section

Point in many directions in the hope of helping the reader find what
is needed more quickly.

This commit also removes the summary attached to the SEE ALSO entry
for difftool, to avoid making the SEE ALSO list too verbose.  If the
reader wants a summary of the commands referred to, she can always
look to the top of the named pages or to the table of contents on the
main git(1) page.

Suggested-by: Goswin von Brederlow <goswin-v-b@web.de>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation: diff can compare blobs
Jonathan Nieder [Mon, 11 Oct 2010 16:04:08 +0000 (11:04 -0500)]
Documentation: diff can compare blobs

Meanwhile, there is no plumbing command to compare two blobs.
Strange.

Reported-by: Yann Dirson <dirson@bertin.fr>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation: gitrevisions is in section 7
Jonathan Nieder [Mon, 11 Oct 2010 16:03:32 +0000 (11:03 -0500)]
Documentation: gitrevisions is in section 7

Fix references to gitrevisions(1) in the manual pages and HTML
documentation.

In practice, this will not matter much unless someone tries to use a
hard copy of the git reference manual.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorev-list: handle %x00 NUL in user format
Jeff King [Thu, 7 Oct 2010 18:25:43 +0000 (14:25 -0400)]
rev-list: handle %x00 NUL in user format

The code paths for showing commits in "git log" and "git
rev-list --graph" correctly handle embedded NULs by looking
only at the resulting strbuf's length, and never treating it
as a C string. The code path for regular rev-list, however,
used printf("%s"), which resulted in truncated output. This
patch uses fwrite instead, like the --graph code path.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agocompletion: Support the DWIM mode for git checkout
Kevin Ballard [Tue, 12 Oct 2010 21:38:12 +0000 (14:38 -0700)]
completion: Support the DWIM mode for git checkout

Ever since commit 70c9ac2 (DWIM: "git checkout frotz" to "git checkout
-b frotz origin/frotz"), git checkout has supported a DWIM mode where
it creates a local tracking branch for a remote branch if just the name
of the remote branch is specified on the command-line and only one remote
has a branch with that name. Teach the bash completion script to understand
this DWIM mode and provide such remote-tracking branch names as possible
completions.

Signed-off-by: Kevin Ballard <kevin@sb.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agofast-import: Allow filemodify to set the root
David Barr [Sun, 10 Oct 2010 03:30:15 +0000 (14:30 +1100)]
fast-import: Allow filemodify to set the root

v1.7.3-rc0~75^2 (Teach fast-import to import subtrees named by tree id,
2010-06-30) has a shortcoming - it doesn't allow the root to be set.
Extend this behaviour by allowing the root to be referenced as the
empty path, "".

For a command (like filter-branch --subdirectory-filter) that wants
to commit a lot of trees that already exist in the object db, writing
undeltified objects as loose files only to repack them later can
involve a significant amount of overhead.
(23% slow-down observed on Linux 2.6.35, worse on Mac OS X 10.6)

Fortunately we have fast-import (which is one of the only git commands
that will write to a pack directly) but there is not an advertised way
to tell fast-import to commit a given tree without unpacking it.

This patch changes that, by allowing

M 040000 <tree id> ""

as a filemodify line in a commit to reset to a particular tree without
any need to parse it.  For example,

M 040000 4b825dc642cb6eb9a060e54bf8d69288fbee4904 ""

is a synonym for the deleteall command and the fast-import equivalent of

git read-tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904

Signed-off-by: David Barr <david.barr@cordelta.com>
Commit-message-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Tested-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agobash: support pretty format aliases
SZEDER Gábor [Sun, 10 Oct 2010 22:06:22 +0000 (00:06 +0200)]
bash: support pretty format aliases

Users can have their own pretty format aliases since 8028184 (pretty:
add aliases for pretty formats, 2010-05-02), so let's offer those
after '--pretty=' and '--format=' for 'log' and 'show', too.

Similar to the completion of aliases, this will invoke 'git config'
each time pretty aliases needs to be completed, so changes in pretty.*
configuration will be reflected immediately.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agobash: support more 'git notes' subcommands and their options
SZEDER Gábor [Sun, 10 Oct 2010 21:43:33 +0000 (23:43 +0200)]
bash: support more 'git notes' subcommands and their options

The current completion function for 'git notes' only supported the
'edit' and 'show' subcommands and none of their options.  This patch
adds support for all missing subcommands, options, and their arguments
(files or refs), if any.

The code responsible for completing subcommand looks different
compared to the completion functions of other git commands with
subcommands.  This is because of the '--ref <notes-ref>' option which
comes before the subcommand (i.e. git notes --ref <notes-ref> add).

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agobash: not all 'git bisect' subcommands make sense when not bisecting
SZEDER Gábor [Sun, 10 Oct 2010 21:39:34 +0000 (23:39 +0200)]
bash: not all 'git bisect' subcommands make sense when not bisecting

... but only 'start' and 'replay'.  The other commands will either
error out or offer to start bisecting for the user.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agobash: offer refs for 'git bisect start'
SZEDER Gábor [Sun, 10 Oct 2010 21:39:33 +0000 (23:39 +0200)]
bash: offer refs for 'git bisect start'

The completion script only offered path completion after 'git bisect
start', although bad and good refs could also be specified before the
doubledash.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agobisect: check for mandatory argument of 'bisect replay'
SZEDER Gábor [Sun, 10 Oct 2010 21:48:58 +0000 (23:48 +0200)]
bisect: check for mandatory argument of 'bisect replay'

'git bisect replay' has a mandatory logfile argument, but the current
implementation doesn't check whether the user has specified one.  When
the user omits the logfile argument, this leads to the following
unhelpful error message:

  cannot read  for replaying

So, check for the mandatory argument first, and provide a more
meaningful error message when it is omitted.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agobisect: improve error msg of 'bisect reset' when original HEAD is deleted
SZEDER Gábor [Sun, 10 Oct 2010 21:48:57 +0000 (23:48 +0200)]
bisect: improve error msg of 'bisect reset' when original HEAD is deleted

'git bisect reset' (without the optional <commit> argument) returns to
the original HEAD from where the bisection was started.  However,
when, for whatever reason, the user deleted the original HEAD before
invoking 'git bisect reset', then all he gets is an error message from
'git checkout':

  fatal: invalid reference: somebranch

Let's try to be more helpful with an error message better describing
what went wrong and a suggestion about how to resolve the situation:

  Could not check out original HEAD 'somebranch'. Try 'git bisect reset <commit>'.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agobisect: improve error message of 'bisect log' while not bisecting
SZEDER Gábor [Sun, 10 Oct 2010 21:48:56 +0000 (23:48 +0200)]
bisect: improve error message of 'bisect log' while not bisecting

'git bisect log' is implemented by a direct invocation of 'cat
"$GIT_DIR/BISECT_LOG"', without any sanity checks.  Consequently,
running 'git bisect log' while not bisecting leads to an error,
because the bisect logfile doesn't exists.  The accompanying error
message

  cat: /path/to/repo/.git/BISECT_LOG: No such file or directory

is neither very helpful nor very friendly.

Instead of blindly trying to cat the log file, first check whether
there is a bisection going on (i.e. the bisect logfile exists), and
die with a more appropriate error message when not.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoshell portability: no "export VAR=VAL"
Junio C Hamano [Wed, 13 Oct 2010 18:36:36 +0000 (11:36 -0700)]
shell portability: no "export VAR=VAL"

It is more portable to say "VAR=VAL && export VAR" instead.

Noticed by Ævar.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoCodingGuidelines: reword parameter expansion section
Junio C Hamano [Wed, 13 Oct 2010 18:15:14 +0000 (11:15 -0700)]
CodingGuidelines: reword parameter expansion section

Group entries related to parameter substitutions together and avoid
using the word "regexp" to refer to the ${parameter/pattern/string}
substitution (banned), as the pattern there is a shell glob and not
a regular expression.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation: update-index: -z applies also to --index-info
Bert Wesarg [Fri, 8 Oct 2010 06:50:20 +0000 (08:50 +0200)]
Documentation: update-index: -z applies also to --index-info

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogitweb: Improve behavior for actionless path_info gitweb URLs
Jakub Narebski [Wed, 13 Oct 2010 11:35:20 +0000 (13:35 +0200)]
gitweb: Improve behavior for actionless path_info gitweb URLs

Eli Barzilay noticed that

  http://server/gitweb/project/<commit-sha1>

link goes to 'shortlog' view, while 'commit' view would be more
useful, but that 'shortlog' action is more apropriate for

  http://server/gitweb/project/<commit-sha1>..<other-commit-sha1>

links.

Therefore for the case when we don't have either action, or filename,
or parent hash [base] in path_info-based URL, i.e. for

  http://server/gitweb/project/<object-id>

link, instead of using 'shortlog' view we allow dispatch() subroutine
to detect type of object and use appropriate action (in most case it
would be either 'commit' action, or 'tag', or 'tree' for top
directory).

Requested-by: Eli Barzilay <eli@barzilay.org>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Tested-by: Eli Barzilay <eli@barzilay.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>