Code

git.git
13 years agoGit 1.7.4-rc0 v1.7.4-rc0
Junio C Hamano [Tue, 28 Dec 2010 21:52:52 +0000 (13:52 -0800)]
Git 1.7.4-rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'maint'
Junio C Hamano [Tue, 28 Dec 2010 21:50:11 +0000 (13:50 -0800)]
Merge branch 'maint'

* maint:
  Prepare for 1.7.3.5
  Fix false positives in t3404 due to SHELL=/bin/false
  close file on error in read_mmfile()

Conflicts:
RelNotes

13 years agoPrepare for 1.7.3.5
Junio C Hamano [Tue, 28 Dec 2010 21:48:54 +0000 (13:48 -0800)]
Prepare for 1.7.3.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'jk/commit-die-on-bogus-ident' into maint
Junio C Hamano [Tue, 28 Dec 2010 21:45:12 +0000 (13:45 -0800)]
Merge branch 'jk/commit-die-on-bogus-ident' into maint

* jk/commit-die-on-bogus-ident:
  commit: die before asking to edit the log message
  ident: die on bogus date format

13 years agoMerge branch 'ks/blame-worktree-textconv-cached' into maint
Junio C Hamano [Tue, 28 Dec 2010 21:44:58 +0000 (13:44 -0800)]
Merge branch 'ks/blame-worktree-textconv-cached' into maint

* ks/blame-worktree-textconv-cached:
  fill_textconv(): Don't get/put cache if sha1 is not valid
  t/t8006: Demonstrate blame is broken when cachetextconv is on

13 years agoMerge branch 'jc/maint-rebase-rewrite-last-skip' into maint
Junio C Hamano [Tue, 28 Dec 2010 21:43:10 +0000 (13:43 -0800)]
Merge branch 'jc/maint-rebase-rewrite-last-skip' into maint

* jc/maint-rebase-rewrite-last-skip:
  rebase --skip: correctly wrap-up when skipping the last patch

13 years agoMerge branch 'jc/maint-am-abort-safely' into maint
Junio C Hamano [Tue, 28 Dec 2010 21:42:55 +0000 (13:42 -0800)]
Merge branch 'jc/maint-am-abort-safely' into maint

* jc/maint-am-abort-safely:
  am --abort: keep unrelated commits since the last failure and warn

13 years agoMerge branch 'kb/maint-status-cquote' into maint
Junio C Hamano [Tue, 28 Dec 2010 21:23:20 +0000 (13:23 -0800)]
Merge branch 'kb/maint-status-cquote' into maint

* kb/maint-status-cquote:
  status: Quote paths with spaces in short format

13 years agot9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'
Brandon Casey [Wed, 22 Dec 2010 23:58:53 +0000 (15:58 -0800)]
t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'

The '--no-chain-reply-to' option is a Getopt::Long boolean option. The
'--no-' prefix (as in --no-chain-reply-to) for boolean options is not
supported in Getopt::Long version 2.32 which was released with Perl 5.8.0.
This version only supports '--no' as in '--nochain-reply-to'.  More recent
versions of Getopt::Long, such as version 2.34, support either prefix. So
use the older form in the tests.

See also:

907a0b1e04ea31cb368e9422df93d8ebb0187914
84eeb687de7a6c7c42af3fb51b176e0f412a979e
3fee1fe87144360a1913eab86af9ad136c810076

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'jc/maint-rebase-rewrite-last-skip'
Junio C Hamano [Tue, 28 Dec 2010 19:26:59 +0000 (11:26 -0800)]
Merge branch 'jc/maint-rebase-rewrite-last-skip'

* jc/maint-rebase-rewrite-last-skip:
  rebase --skip: correctly wrap-up when skipping the last patch

13 years agoMerge branch 'nd/setup'
Junio C Hamano [Tue, 28 Dec 2010 19:26:55 +0000 (11:26 -0800)]
Merge branch 'nd/setup'

* nd/setup: (47 commits)
  setup_work_tree: adjust relative $GIT_WORK_TREE after moving cwd
  git.txt: correct where --work-tree path is relative to
  Revert "Documentation: always respect core.worktree if set"
  t0001: test git init when run via an alias
  Remove all logic from get_git_work_tree()
  setup: rework setup_explicit_git_dir()
  setup: clean up setup_discovered_git_dir()
  t1020-subdirectory: test alias expansion in a subdirectory
  setup: clean up setup_bare_git_dir()
  setup: limit get_git_work_tree()'s to explicit setup case only
  Use git_config_early() instead of git_config() during repo setup
  Add git_config_early()
  git-rev-parse.txt: clarify --git-dir
  t1510: setup case #31
  t1510: setup case #30
  t1510: setup case #29
  t1510: setup case #28
  t1510: setup case #27
  t1510: setup case #26
  t1510: setup case #25
  ...

13 years agoFix false positives in t3404 due to SHELL=/bin/false
Robin H. Johnson [Mon, 27 Dec 2010 08:03:43 +0000 (08:03 +0000)]
Fix false positives in t3404 due to SHELL=/bin/false

If the user's shell in NSS passwd is /bin/false (eg as found during Gentoo's
package building), the git-rebase exec tests will fail, because they call
$SHELL around the command, and in the existing testcase, $SHELL was not being
cleared sufficently.

This lead to false positive failures of t3404 on systems where the package
build user was locked down as noted above.

Signed-off-by: "Robin H. Johnson" <robbat2@gentoo.org>
X-Gentoo-Bug: 349083
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=349083
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agosetup_work_tree: adjust relative $GIT_WORK_TREE after moving cwd
Nguyễn Thái Ngọc Duy [Mon, 27 Dec 2010 01:26:04 +0000 (08:26 +0700)]
setup_work_tree: adjust relative $GIT_WORK_TREE after moving cwd

When setup_work_tree() is called, it moves cwd to $GIT_WORK_TREE and
makes internal copy of $GIT_WORK_TREE absolute. The environt variable,
if set by user, remains unchanged. If the variable is relative, it is
no longer correct because its base dir has changed.

Instead of making $GIT_WORK_TREE absolute too, we just say "." and let
subsequent git processes handle it.

Reported-by: Michel Briand <michelbriand@free.fr>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'rs/maint-diff-fd-leak' into maint
Junio C Hamano [Sun, 26 Dec 2010 19:18:39 +0000 (11:18 -0800)]
Merge branch 'rs/maint-diff-fd-leak' into maint

* rs/maint-diff-fd-leak:
  close file on error in read_mmfile()

13 years agoclose file on error in read_mmfile()
René Scharfe [Sat, 25 Dec 2010 12:38:46 +0000 (13:38 +0100)]
close file on error in read_mmfile()

Reported in http://qa.debian.org/daca/cppcheck/sid/git_1.7.2.3-2.2.html
and in http://thread.gmane.org/gmane.comp.version-control.git/123042.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'rj/maint-difftool-cygwin-workaround'
Junio C Hamano [Thu, 23 Dec 2010 20:51:11 +0000 (12:51 -0800)]
Merge branch 'rj/maint-difftool-cygwin-workaround'

* rj/maint-difftool-cygwin-workaround:
  difftool: Fix failure on Cygwin

13 years agoMerge branch 'maint'
Junio C Hamano [Thu, 23 Dec 2010 04:33:12 +0000 (20:33 -0800)]
Merge branch 'maint'

* maint:
  test-lib.sh/test_decode_color(): use octal not hex in awk script

13 years agoMakefile: add NO_FNMATCH_CASEFOLD to IRIX sections
Brandon Casey [Wed, 22 Dec 2010 23:58:51 +0000 (15:58 -0800)]
Makefile: add NO_FNMATCH_CASEFOLD to IRIX sections

IRIX's fnmatch() does not support the GNU FNM_CASEFOLD extension, so set
NO_FNMATCH_CASEFOLD so that the internal fnmatch implementation will be
used.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agotest-lib.sh/test_decode_color(): use octal not hex in awk script
Brandon Casey [Wed, 22 Dec 2010 23:58:52 +0000 (15:58 -0800)]
test-lib.sh/test_decode_color(): use octal not hex in awk script

POSIX awk seems to explicitly not support hexadecimal escape sequences.

From http://pubs.opengroup.org/onlinepubs/009695399/:

   Regular expressions in awk have been extended somewhat...
   One sequence that is not supported is hexadecimal value escapes
   beginning with '\x'.

This affects the awk on IRIX 6.5, and causes t4015.56 to fail.
Use octal instead.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agorebase --skip: correctly wrap-up when skipping the last patch
Junio C Hamano [Thu, 23 Dec 2010 00:50:28 +0000 (16:50 -0800)]
rebase --skip: correctly wrap-up when skipping the last patch

When "rebase --skip" is used to skip the last patch in the series, the
code to wrap up the rewrite by copying the notes from old to new commits
and also by running the post-rewrite hook was bypassed.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'rj/maint-test-fixes'
Junio C Hamano [Wed, 22 Dec 2010 22:41:26 +0000 (14:41 -0800)]
Merge branch 'rj/maint-test-fixes'

* rj/maint-test-fixes:
  t9501-*.sh: Fix a test failure on Cygwin
  lib-git-svn.sh: Add check for mis-configured web server variables
  lib-git-svn.sh: Avoid setting web server variables unnecessarily
  t9142: Move call to start_httpd into the setup test
  t3600-rm.sh: Don't pass a non-existent prereq to test #15

13 years agoMerge branch 'jc/maint-am-abort-safely'
Junio C Hamano [Wed, 22 Dec 2010 22:41:19 +0000 (14:41 -0800)]
Merge branch 'jc/maint-am-abort-safely'

* jc/maint-am-abort-safely:
  am --abort: keep unrelated commits since the last failure and warn

13 years agoMerge branch 'jk/commit-die-on-bogus-ident'
Junio C Hamano [Wed, 22 Dec 2010 22:41:14 +0000 (14:41 -0800)]
Merge branch 'jk/commit-die-on-bogus-ident'

* jk/commit-die-on-bogus-ident:
  commit: die before asking to edit the log message
  ident: die on bogus date format

Conflicts:
builtin/commit.c

13 years agoMerge branch 'pd/bash-4-completion'
Junio C Hamano [Wed, 22 Dec 2010 22:40:55 +0000 (14:40 -0800)]
Merge branch 'pd/bash-4-completion'

* pd/bash-4-completion:
  bash: simple reimplementation of _get_comp_words_by_ref
  bash: get --pretty=m<tab> completion to work with bash v4

Conflicts:
contrib/completion/git-completion.bash

13 years agoMerge branch 'nd/maint-fix-add-typo-detection'
Junio C Hamano [Wed, 22 Dec 2010 22:40:26 +0000 (14:40 -0800)]
Merge branch 'nd/maint-fix-add-typo-detection'

* nd/maint-fix-add-typo-detection:
  Revert "excluded_1(): support exclude files in index"
  unpack-trees: fix sparse checkout's "unable to match directories"
  unpack-trees: move all skip-worktree checks back to unpack_trees()
  dir.c: add free_excludes()
  cache.h: realign and use (1 << x) form for CE_* constants

13 years agoMerge branch 'tf/commit-list-prefix'
Junio C Hamano [Wed, 22 Dec 2010 22:40:17 +0000 (14:40 -0800)]
Merge branch 'tf/commit-list-prefix'

* tf/commit-list-prefix:
  commit: Add commit_list prefix in two function names.

Conflicts:
sha1_name.c

13 years agogit.txt: correct where --work-tree path is relative to
Nguyễn Thái Ngọc Duy [Fri, 26 Nov 2010 15:32:43 +0000 (22:32 +0700)]
git.txt: correct where --work-tree path is relative to

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoRevert "Documentation: always respect core.worktree if set"
Nguyễn Thái Ngọc Duy [Fri, 26 Nov 2010 15:32:42 +0000 (22:32 +0700)]
Revert "Documentation: always respect core.worktree if set"

This reverts commit f5e025a9d5b35e24768475f6890b836ce0d5ed15.

The commit reflected what the code did. But the code did that because
it had bugs.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot0001: test git init when run via an alias
Jonathan Nieder [Fri, 26 Nov 2010 15:32:41 +0000 (22:32 +0700)]
t0001: test git init when run via an alias

Add some tests to document the correct behavior of (possibly aliased)
init when run within and outside a git directory.

If I set up a simple git alias “quietinit = init --quiet”, usually it
will work just like ‘git init --quiet’.

There are some differences, unfortunately, since in the process of
checking for aliases, git has to look for a .git/config file.  If ‘git
quietinit’ is run from a subdirectory of an existing git repository,
that repository’s configuration will affect the configuration of the
new repository.  In particular, the new repository can inherit
bogus values for core.bare and core.worktree.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoRemove all logic from get_git_work_tree()
Nguyễn Thái Ngọc Duy [Fri, 26 Nov 2010 15:32:40 +0000 (22:32 +0700)]
Remove all logic from get_git_work_tree()

This logic is now only used by cmd_init_db(). setup_* functions do not
rely on it any more. Move all the logic to cmd_init_db() and turn
get_git_work_tree() into a simple function.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agosetup: rework setup_explicit_git_dir()
Nguyễn Thái Ngọc Duy [Fri, 26 Nov 2010 15:32:39 +0000 (22:32 +0700)]
setup: rework setup_explicit_git_dir()

This function is the most complex one among the three setup_*
functions because all GIT_DIR, GIT_WORK_TREE, core.worktree and
core.bare are involved.

Because core.worktree is only effective inside
setup_explicit_git_dir() and the extra code in setup_git_directory()
is to handle that. The extra code can now be retired.

Also note that setup_explicit assignment is removed, worktree setting
is no longer decided by get_git_work_tree(). get_git_work_tree() will
be simplified in the next commit.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agosetup: clean up setup_discovered_git_dir()
Nguyễn Thái Ngọc Duy [Fri, 26 Nov 2010 15:32:38 +0000 (22:32 +0700)]
setup: clean up setup_discovered_git_dir()

If core.bare is true, discard the discovered worktree, move back to
original cwd.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot1020-subdirectory: test alias expansion in a subdirectory
Michael J Gruber [Fri, 26 Nov 2010 15:32:37 +0000 (22:32 +0700)]
t1020-subdirectory: test alias expansion in a subdirectory

Add a test for alias expansion in a subdirectory of the worktree.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agosetup: clean up setup_bare_git_dir()
Nguyễn Thái Ngọc Duy [Fri, 26 Nov 2010 15:32:36 +0000 (22:32 +0700)]
setup: clean up setup_bare_git_dir()

work_tree_env argument is removed because this function does not need
it. GIT_WORK_TREE is only effective inside setup_explicit_git_dir.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agosetup: limit get_git_work_tree()'s to explicit setup case only
Nguyễn Thái Ngọc Duy [Fri, 26 Nov 2010 15:32:35 +0000 (22:32 +0700)]
setup: limit get_git_work_tree()'s to explicit setup case only

get_git_work_tree() takes input as core.worktree, core.bare,
GIT_WORK_TREE and decides correct worktree setting.

Unfortunately it does not do its job well. core.worktree and
GIT_WORK_TREE should only be taken into account, if GIT_DIR is set
(which is handled by setup_explicit_git_dir). For other setup cases,
only core.bare matters.

Add a temporary variable setup_explicit to adjust get_git_work_tree()
behavior as such. This variable will be gone once setup_* rework is
done.

Also remove is_bare_repository_cfg check in set_git_work_tree() to
ease the rework. We are going to check for core.bare and core.worktree
early before setting worktree. For example, if core.bare is true, no
need to set worktree.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoUse git_config_early() instead of git_config() during repo setup
Nguyễn Thái Ngọc Duy [Fri, 26 Nov 2010 15:32:34 +0000 (22:32 +0700)]
Use git_config_early() instead of git_config() during repo setup

When git_config() is called, either git_dir has already been set (by
$GIT_DIR env or set_git_dir()), or it will default git_dir to ".git".

git_config_early() gives setup functions more freedom because it does
not require git_dir. Give it a config path, it will happily examine
it.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoAdd git_config_early()
Nguyễn Thái Ngọc Duy [Fri, 26 Nov 2010 15:32:33 +0000 (22:32 +0700)]
Add git_config_early()

This version of git_config() will be used during repository setup.
As a repository is being set up, $GIT_DIR is not nailed down yet,
git_pathdup() should not be used to get $GIT_DIR/config.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'maint'
Junio C Hamano [Tue, 21 Dec 2010 22:45:28 +0000 (14:45 -0800)]
Merge branch 'maint'

* maint:
  t0050: fix printf format strings for portability
  t3419-*.sh: Fix arithmetic expansion syntax error

13 years agoMerge branch 'ks/blame-worktree-textconv-cached'
Junio C Hamano [Tue, 21 Dec 2010 22:30:52 +0000 (14:30 -0800)]
Merge branch 'ks/blame-worktree-textconv-cached'

* ks/blame-worktree-textconv-cached:
  fill_textconv(): Don't get/put cache if sha1 is not valid
  t/t8006: Demonstrate blame is broken when cachetextconv is on

13 years agoMerge branch 'jk/t2107-now-passes'
Junio C Hamano [Tue, 21 Dec 2010 22:30:47 +0000 (14:30 -0800)]
Merge branch 'jk/t2107-now-passes'

* jk/t2107-now-passes:
  t2107: mark passing test as success

13 years agoMerge branch 'jk/maint-decorate-01-bool'
Junio C Hamano [Tue, 21 Dec 2010 22:30:43 +0000 (14:30 -0800)]
Merge branch 'jk/maint-decorate-01-bool'

* jk/maint-decorate-01-bool:
  handle arbitrary ints in git_config_maybe_bool

13 years agoMerge branch 'tc/completion-reflog'
Junio C Hamano [Tue, 21 Dec 2010 22:30:23 +0000 (14:30 -0800)]
Merge branch 'tc/completion-reflog'

* tc/completion-reflog:
  bash completion: add basic support for git-reflog

13 years agoMerge branch 'nd/oneline-sha1-name-from-specific-ref'
Junio C Hamano [Tue, 21 Dec 2010 22:30:19 +0000 (14:30 -0800)]
Merge branch 'nd/oneline-sha1-name-from-specific-ref'

* nd/oneline-sha1-name-from-specific-ref:
  get_sha1: handle special case $commit^{/}
  get_sha1: support $commit^{/regex} syntax
  get_sha1_oneline: make callers prepare the commit list to traverse
  get_sha1_oneline: fix lifespan rule of temp_commit_buffer variable

13 years agoMerge branch 'jn/maint-gitweb-pathinfo-fix'
Junio C Hamano [Tue, 21 Dec 2010 22:30:09 +0000 (14:30 -0800)]
Merge branch 'jn/maint-gitweb-pathinfo-fix'

* jn/maint-gitweb-pathinfo-fix:
  gitweb: Fix handling of whitespace in generated links

13 years agot0050: fix printf format strings for portability
Jonathan Nieder [Tue, 21 Dec 2010 20:27:55 +0000 (14:27 -0600)]
t0050: fix printf format strings for portability

Unlike bash and ksh, dash passes through hexadecimal \xcc escapes.
So when run with dash, these tests *pass* (since '\xcc' is a perfectly
reasonable filename) but they are not testing what was intended.

Use octal escapes instead, in the spirit of v1.6.1-rc1~55^2
(2008-11-09).

Reported-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot3419-*.sh: Fix arithmetic expansion syntax error
Ramsay Jones [Tue, 21 Dec 2010 18:50:47 +0000 (18:50 +0000)]
t3419-*.sh: Fix arithmetic expansion syntax error

Some shells, for example dash versions older than 0.5.4, need to
spell a variable reference as '$N' rather than 'N' in an arithmetic
expansion. In order to avoid the syntax error, we change the
offending variable reference from 'i' to '$i' in function scramble.

There is nothing bash specific to this test script (and we shouldn't
have any bash dependent test).  Fix its shebang line.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoam --abort: keep unrelated commits since the last failure and warn
Junio C Hamano [Tue, 21 Dec 2010 18:35:53 +0000 (10:35 -0800)]
am --abort: keep unrelated commits since the last failure and warn

After making commits (either by pulling or doing their own work) after a
failed "am", the user will be reminded by next "am" invocation that there
was a failed "am" that the user needs to decide to resolve or to get rid
of the old "am" attempt.  The "am --abort" option was meant to help the
latter.  However, it rewinded the HEAD back to the beginning of the failed
"am" attempt, discarding commits made (perhaps by mistake) since.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoset_try_to_free_routine(NULL) means "do nothing special"
Junio C Hamano [Tue, 21 Dec 2010 17:24:18 +0000 (09:24 -0800)]
set_try_to_free_routine(NULL) means "do nothing special"

This way, the next caller that wants to disable our memory reclamation
machinery does not have to define its own do_nothing() stub.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocommit: die before asking to edit the log message
Junio C Hamano [Tue, 21 Dec 2010 01:00:36 +0000 (17:00 -0800)]
commit: die before asking to edit the log message

When determine_author_info() returns to the calling prepare_to_commit(),
we already know the pieces of information necessary to determine what
author ident will be used in the final message, but deferred making a call
to fmt_ident() before the final commit_tree().  Most importantly, we would
open the editor to ask the user to compose the log message before it.

As one important side effect of fmt_ident() is to error out when the given
information is malformed, this resulted in us spawning the editor first
and then refusing to commit due to error, even though we had enough
information to detect the error before starting the editor, which was
annoying.

Move the fmt_ident() call to the end of determine_author_info() where we
have final determination of author info to rectify this.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocompletion: add missing configuration variables
Martin von Zweigbergk [Mon, 20 Dec 2010 15:18:25 +0000 (16:18 +0100)]
completion: add missing configuration variables

Quite a few configuration variables have been added since 226b343
(completion: add missing configuration variables to _git_config(),
2009-05-03). Add these variables to the Bash completion script.

Also remove the obsolete 'add.ignore-errors' and
'color.grep.external', as well as 'diff.renameLimit.', which never
existed and rename the misspelled 'sendemail.aliasesfiletype'.

Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoident: die on bogus date format
Jeff King [Mon, 13 Dec 2010 17:02:25 +0000 (12:02 -0500)]
ident: die on bogus date format

If the user gives "git commit --date=foobar", we silently
ignore the --date flag. We should note the error.

This patch puts the fix at the lowest level of fmt_ident,
which means it also handles GIT_AUTHOR_DATE=foobar, as well.

There are two down-sides to this approach:

  1. Technically this breaks somebody doing something like
     "git commit --date=now", which happened to work because
     bogus data is the same as "now". Though we do
     explicitly handle the empty string, so anybody passing
     an empty variable through the environment will still
     work.

     If the error is too much, perhaps it can be downgraded
     to a warning?

  2. The error checking happens _after_ the commit message
     is written, which can be annoying to the user. We can
     put explicit checks closer to the beginning of
     git-commit, but that feels a little hack-ish; suddenly
     git-commit has to care about how fmt_ident works. Maybe
     we could simply call fmt_ident earlier?

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agofill_textconv(): Don't get/put cache if sha1 is not valid
Kirill Smelkov [Sat, 18 Dec 2010 14:54:12 +0000 (17:54 +0300)]
fill_textconv(): Don't get/put cache if sha1 is not valid

When blaming files in the working tree, the filespec is marked with
!sha1_valid, as we have not given the contents an object name yet.  The
function to cache textconv results (keyed on the object name), however,
didn't check this condition, and ended up on storing the cached result
under a random object name.

Cc: Axel Bonnet <axel.bonnet@ensimag.imag.fr>
Cc: Clément Poulain <clement.poulain@ensimag.imag.fr>
Cc: Diane Gasselin <diane.gasselin@ensimag.imag.fr>
Cc: Jeff King <peff@peff.net>
Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot/t8006: Demonstrate blame is broken when cachetextconv is on
Kirill Smelkov [Sat, 18 Dec 2010 14:54:11 +0000 (17:54 +0300)]
t/t8006: Demonstrate blame is broken when cachetextconv is on

I have a git repository with lots of .doc and .pdf files. There diff
works ok, but blaming is painfully slow without textconv cache, and with
textconv cache, blame says lots of lines are 'Not Yet Committed' which
is wrong.

Here is a test that demonstrates the problem.

Cc: Axel Bonnet <axel.bonnet@ensimag.imag.fr>
Cc: Clément Poulain <clement.poulain@ensimag.imag.fr>
Cc: Diane Gasselin <diane.gasselin@ensimag.imag.fr>
Cc: Jeff King <peff@peff.net>
Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'maint'
Junio C Hamano [Mon, 20 Dec 2010 01:49:42 +0000 (17:49 -0800)]
Merge branch 'maint'

* maint:
  gitweb: Include links to feeds in HTML header only for '200 OK' response
  fsck docs: remove outdated and useless diagnostic
  userdiff: fix typo in ruby and python word regexes
  trace.c: mark file-local function static
  Fix typo in git-gc document.

13 years agot9300: use perl "head -c" clone in place of "dd bs=1 count=16000" kluge
Jonathan Nieder [Mon, 13 Dec 2010 09:28:05 +0000 (03:28 -0600)]
t9300: use perl "head -c" clone in place of "dd bs=1 count=16000" kluge

It is unfortunate to have to issue thousands of one-byte read calls to
work around dd's refusal to buffer input that would fill a block after
a short read (a3a6f4, 2010-12-13).  We could do better by using
"head -c", if it were available on all platforms we cared about.
Replace it with some simple perl.

While doing so, restructure 9300.114 to use a subshell instead of a
script.  Subshells can inherit functions (like the new head_c) from
the parent shell while external scripts cannot.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot2107: mark passing test as success
Jeff King [Sun, 19 Dec 2010 03:53:58 +0000 (22:53 -0500)]
t2107: mark passing test as success

This failed on the branch where it was introduced, but was fixed
by merging with 6e67619 (Merge branch 'jn/parse-options-extra').

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agohandle arbitrary ints in git_config_maybe_bool
Jeff King [Sun, 19 Dec 2010 03:36:41 +0000 (22:36 -0500)]
handle arbitrary ints in git_config_maybe_bool

This function recently gained the ability to recognize the documented "0"
and "1" values as false/true. However, unlike regular git_config_bool, it
did not treat arbitrary non-zero numbers as true.

While this is undocumented and probably ridiculous for somebody to rely
on, it is safer to behave exactly as git_config_bool would. Because
git_config_maybe_bool can be used to retrofit new non-bool values onto
existing bool options, not behaving in exactly the same way is technically
a regression.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agobuiltin/rm.c: Use ALLOC_GROW instead of alloc_nr and xrealloc.
Thiago Farina [Sun, 19 Dec 2010 11:56:25 +0000 (09:56 -0200)]
builtin/rm.c: Use ALLOC_GROW instead of alloc_nr and xrealloc.

Signed-off-by: Thiago Farina <tfransosi@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agobuiltin/branch.c: Use ALLOC_GROW instead of alloc_nr and xrealloc.
Thiago Farina [Tue, 14 Dec 2010 01:59:55 +0000 (23:59 -0200)]
builtin/branch.c: Use ALLOC_GROW instead of alloc_nr and xrealloc.

Signed-off-by: Thiago Farina <tfransosi@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogitweb: Include links to feeds in HTML header only for '200 OK' response
Jakub Narebski [Sat, 18 Dec 2010 20:02:13 +0000 (21:02 +0100)]
gitweb: Include links to feeds in HTML header only for '200 OK' response

To do that, generating "<link />"s to feeds were refactored into
print_feed_meta() subroutine, to keep nesting (indent) level in
git_header_html() low.  This has also the advantage of making code
more clear.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: John 'Warthog9' Hawley <warthog9@eaglescrag.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agofsck docs: remove outdated and useless diagnostic
Mark Lodato [Sat, 18 Dec 2010 05:38:38 +0000 (00:38 -0500)]
fsck docs: remove outdated and useless diagnostic

In git-fsck(1), there was a reference to the warning "<tree> has full
pathnames in it".  This exact wording has not been used since 2005
(commit f1f0d0889e55), when the wording was changed slightly.  More
importantly, the description of that warning was useless, and there were
many other similar warning messages which were not document at all.
Since all these warnings are fairly obvious, there is no need for them
to be in the man page.

Signed-off-by: Mark Lodato <lodatom@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agouserdiff: fix typo in ruby and python word regexes
Thomas Rast [Sat, 18 Dec 2010 16:17:53 +0000 (17:17 +0100)]
userdiff: fix typo in ruby and python word regexes

Both had an unclosed ] that ruined the safeguard against not matching
a non-space char.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agotrace.c: mark file-local function static
Vasyl' Vavrychuk [Thu, 16 Dec 2010 22:38:42 +0000 (00:38 +0200)]
trace.c: mark file-local function static

Signed-off-by: Vasyl' Vavrychuk <vvavrychuk@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agobash completion: add basic support for git-reflog
Tay Ray Chuan [Thu, 16 Dec 2010 06:56:08 +0000 (14:56 +0800)]
bash completion: add basic support for git-reflog

"Promote" the reflog command out of plumbing, so that we now run
completion for it. After all, it's listed under porcelain (ancillary),
and we do run completion for those commands.

Add basic completion for the three subcommands - show, expire, delete.
Try completing refs for these too.

Helped-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoFix typo in git-gc document.
Jiang Xin [Thu, 16 Dec 2010 07:16:49 +0000 (15:16 +0800)]
Fix typo in git-gc document.

The variable gc.packrefs for git-gc can be set to true, false and
"notbare", not "nobare".

Signed-off-by: Jiang Xin <jiangxin@ossxp.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoUpdate draft release notes to 1.7.4
Junio C Hamano [Fri, 17 Dec 2010 05:43:08 +0000 (21:43 -0800)]
Update draft release notes to 1.7.4

We are getting closer to -rc0 ;-)

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'maint'
Junio C Hamano [Fri, 17 Dec 2010 00:36:03 +0000 (16:36 -0800)]
Merge branch 'maint'

* maint:
  difftool: provide basename to external tools
  git-difftool.txt: correct the description of $BASE and describe $MERGED

13 years agoget_sha1: handle special case $commit^{/}
Nguyễn Thái Ngọc Duy [Wed, 15 Dec 2010 09:02:54 +0000 (16:02 +0700)]
get_sha1: handle special case $commit^{/}

Empty regex pattern should always match. But the exact behavior of
regexec() may vary. Because it always matches anyway, we can just
return 'matched' without calling regex machinery.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agodifftool: provide basename to external tools
Michael J Gruber [Tue, 14 Dec 2010 09:18:35 +0000 (10:18 +0100)]
difftool: provide basename to external tools

Currently, only configured diff helpers get the basename of the file
being compared. Tools specified with "git difftool -x" only get the
names of temporary files for the different versions.

Export BASE so that an external tool can read the name from the
environment. Rather than using a third argument, this avoids breaking
existing scripts which may somewhat carelessly be using "$@" rather than
"$1" "$2".

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-difftool.txt: correct the description of $BASE and describe $MERGED
Michael J Gruber [Tue, 14 Dec 2010 09:18:34 +0000 (10:18 +0100)]
git-difftool.txt: correct the description of $BASE and describe $MERGED

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'kb/diff-C-M-synonym'
Junio C Hamano [Thu, 16 Dec 2010 20:58:59 +0000 (12:58 -0800)]
Merge branch 'kb/diff-C-M-synonym'

* kb/diff-C-M-synonym:
  diff: use "find" instead of "detect" as prefix for long forms of -M and -C
  diff: add --detect-copies-harder as a synonym for --find-copies-harder

13 years agoMerge branch 'jn/fast-import-blob-access'
Junio C Hamano [Thu, 16 Dec 2010 20:58:38 +0000 (12:58 -0800)]
Merge branch 'jn/fast-import-blob-access'

* jn/fast-import-blob-access:
  t9300: avoid short reads from dd
  t9300: remove unnecessary use of /dev/stdin
  fast-import: Allow cat-blob requests at arbitrary points in stream
  fast-import: let importers retrieve blobs
  fast-import: clarify documentation of "feature" command
  fast-import: stricter parsing of integer options

Conflicts:
fast-import.c

13 years agoMerge branch 'jl/fetch-submodule-recursive'
Junio C Hamano [Thu, 16 Dec 2010 20:57:15 +0000 (12:57 -0800)]
Merge branch 'jl/fetch-submodule-recursive'

* jl/fetch-submodule-recursive:
  fetch_populated_submodules(): document dynamic allocation
  Submodules: Add the "fetchRecurseSubmodules" config option
  Add the 'fetch.recurseSubmodules' config setting
  fetch/pull: Add the --recurse-submodules option

Conflicts:
builtin/fetch.c

13 years agoMerge branch 'rj/msvc-fix'
Junio C Hamano [Thu, 16 Dec 2010 20:55:36 +0000 (12:55 -0800)]
Merge branch 'rj/msvc-fix'

* rj/msvc-fix:
  msvc: Fix macro redefinition warnings
  msvc: Fix build by adding missing INTMAX_MAX define
  msvc: git-daemon.exe: Fix linker "unresolved externals" error
  msvc: Fix compilation errors in compat/win32/sys/poll.c

13 years agoMerge branch 'nd/extended-sha1-relpath'
Junio C Hamano [Thu, 16 Dec 2010 20:51:05 +0000 (12:51 -0800)]
Merge branch 'nd/extended-sha1-relpath'

* nd/extended-sha1-relpath:
  get_sha1: teach ":$n:<path>" the same relative path logic
  get_sha1: support relative path ":path" syntax
  Make prefix_path() return char* without const

Conflicts:
sha1_name.c

13 years agoMerge branch 'aa/status-hilite-branch'
Junio C Hamano [Thu, 16 Dec 2010 20:50:03 +0000 (12:50 -0800)]
Merge branch 'aa/status-hilite-branch'

* aa/status-hilite-branch:
  default color.status.branch to "same as header"
  status: show branchname with a configurable color

13 years agoMerge branch 'ak/describe-exact'
Junio C Hamano [Thu, 16 Dec 2010 20:49:59 +0000 (12:49 -0800)]
Merge branch 'ak/describe-exact'

* ak/describe-exact:
  describe: Delay looking up commits until searching for an inexact match
  describe: Store commit_names in a hash table by commit SHA1
  describe: Do not use a flex array in struct commit_name
  describe: Use for_each_rawref

13 years agoMerge branch 'nd/maint-relative'
Junio C Hamano [Thu, 16 Dec 2010 20:49:48 +0000 (12:49 -0800)]
Merge branch 'nd/maint-relative'

* nd/maint-relative:
  get_cwd_relative(): do not misinterpret root path

13 years agoMerge branch 'jn/maint-svn-fe'
Junio C Hamano [Thu, 16 Dec 2010 20:49:35 +0000 (12:49 -0800)]
Merge branch 'jn/maint-svn-fe'

* jn/maint-svn-fe:
  t9010 fails when no svn is available
  vcs-svn: fix intermittent repo_tree corruption
  treap: make treap_insert return inserted node
  t9010 (svn-fe): Eliminate dependency on svn perl bindings

13 years agoMerge branch 'jc/maint-svn-info-test-fix'
Junio C Hamano [Thu, 16 Dec 2010 20:49:28 +0000 (12:49 -0800)]
Merge branch 'jc/maint-svn-info-test-fix'

* jc/maint-svn-info-test-fix:
  t9119: do not compare "Text Last Updated" line from "svn info"

13 years agoMerge branch 'jn/submodule-b-current'
Junio C Hamano [Thu, 16 Dec 2010 20:49:22 +0000 (12:49 -0800)]
Merge branch 'jn/submodule-b-current'

* jn/submodule-b-current:
  git submodule: Remove now obsolete tests before cloning a repo
  git submodule -b ... of current HEAD fails

13 years agoMerge branch 'jn/maint-fast-import-object-reuse'
Junio C Hamano [Thu, 16 Dec 2010 20:49:16 +0000 (12:49 -0800)]
Merge branch 'jn/maint-fast-import-object-reuse'

* jn/maint-fast-import-object-reuse:
  fast-import: insert new object entries at start of hash bucket

13 years agoMerge branch 'jn/fast-import-ondemand-checkpoint'
Junio C Hamano [Thu, 16 Dec 2010 20:49:11 +0000 (12:49 -0800)]
Merge branch 'jn/fast-import-ondemand-checkpoint'

* jn/fast-import-ondemand-checkpoint:
  fast-import: treat SIGUSR1 as a request to access objects early

13 years agoSync with 1.7.3.4
Junio C Hamano [Wed, 15 Dec 2010 23:30:49 +0000 (15:30 -0800)]
Sync with 1.7.3.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoGit 1.7.3.4 v1.7.3.4
Junio C Hamano [Wed, 15 Dec 2010 19:47:40 +0000 (11:47 -0800)]
Git 1.7.3.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoGit 1.7.2.5 v1.7.2.5
Junio C Hamano [Wed, 15 Dec 2010 19:45:36 +0000 (11:45 -0800)]
Git 1.7.2.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoGit 1.7.1.4 v1.7.1.4
Junio C Hamano [Wed, 15 Dec 2010 19:40:40 +0000 (11:40 -0800)]
Git 1.7.1.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoGit 1.7.0.9 v1.7.0.9
Junio C Hamano [Wed, 15 Dec 2010 19:38:19 +0000 (11:38 -0800)]
Git 1.7.0.9

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoGit 1.6.6.3 v1.6.6.3
Junio C Hamano [Wed, 15 Dec 2010 19:32:57 +0000 (11:32 -0800)]
Git 1.6.6.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoGit 1.6.5.9 v1.6.5.9
Junio C Hamano [Wed, 15 Dec 2010 19:27:41 +0000 (11:27 -0800)]
Git 1.6.5.9

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoGit 1.6.4.5 v1.6.4.5
Junio C Hamano [Wed, 15 Dec 2010 19:19:11 +0000 (11:19 -0800)]
Git 1.6.4.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogitweb: Introduce esc_attr to escape attributes of HTML elements
Jakub Narebski [Tue, 14 Dec 2010 23:34:01 +0000 (00:34 +0100)]
gitweb: Introduce esc_attr to escape attributes of HTML elements

It is needed only to escape attributes of handcrafted HTML elements,
and not those generated using CGI.pm subroutines / methods for HTML
generation.

While at it, add esc_url and esc_html where needed, and prefer to use
CGI.pm HTML generating methods than handcrafted HTML code.  Most of
those are probably unnecessary (could be exploited only by person with
write access to gitweb config, or at least access to the repository).

This fixes CVE-2010-3906

Reported-by: Emanuele Gentili <e.gentili@tigersecurity.it>
Helped-by: John 'Warthog9' Hawley <warthog9@kernel.org>
Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'master' (early part) into pd/bash-4-completion
Jonathan Nieder [Wed, 15 Dec 2010 06:05:33 +0000 (00:05 -0600)]
Merge branch 'master' (early part) into pd/bash-4-completion

* 'master' (early part): (529 commits)
  completion: fix zsh check under bash with 'set -u'
  Fix copy-pasted comments related to tree diff handling.
  Git 1.7.3.2
  {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
  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
  ...

Conflicts:
GIT-VERSION-GEN
RelNotes
contrib/completion/git-completion.bash

13 years agobash: simple reimplementation of _get_comp_words_by_ref
Jonathan Nieder [Wed, 15 Dec 2010 04:57:58 +0000 (22:57 -0600)]
bash: simple reimplementation of _get_comp_words_by_ref

Add a minimal implementation of _get_comp_words_by_ref so

$ git show head:g <tab><tab>

on bash 4 can complete paths within the head commit without requiring
the bash_completion functions to be loaded.  This is a follow-up to
the previous patch (bash: get --pretty=m<tab> completion to work with
bash v4).

Based on bash-completion 2.x (commit bf763033, 2010-10-26) but tweaked
for simplicity and to allow zsh to parse the code.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Improved-by: SZEDER Gábor <szeder@ira.uka.de>
13 years agobash: get --pretty=m<tab> completion to work with bash v4
Peter van der Does [Thu, 2 Dec 2010 08:17:13 +0000 (02:17 -0600)]
bash: get --pretty=m<tab> completion to work with bash v4

Bash's programmable completion provides the COMP_WORDS array variable,
which holds the individual words in the current command line.  In bash
versions prior to v4 "words are split on shell metacharacters as the
shell parser would separate them" (quote from bash v3.2.48's man
page).  This behavior has changed with bash v4, and the command line
"is split into words as readline would split it, using COMP_WORDBREAKS
as" "the set of characters that the readline library treats as word
separators" (quote from bash v4's man page).

Since COMP_WORDBREAKS contains the characters : and = by default, this
behavior change in bash affects git's completion script.  For example,
before bash 4, running

$ git log --pretty=m <tab><tab>

would give a list of pretty-printing formats starting with 'm' but now
it completes on branch names.

It would be possible to work around this by removing '=' and ':' from
COMP_WORDBREAKS, but as noticed in v1.5.6.4~9^2 (bash completion:
Resolve git show ref:path<tab> losing ref: portion, 2008-07-15), that
would break *other* completion scripts.  The bash-completion library
includes a better workaround: the _get_comp_words_by_ref function
re-assembles a copy of COMP_WORDS, excluding a collection of word
separators of the caller's choice.  Use it.

As a bonus, this also improves behavior when tab is pressed with the
cursor in the middle of a word.

To avoid breaking setups with the bash-completion library not already
loaded, if the _get_comp_words_by_ref function is not defined then a
shim that just reads COMP_WORDS will be used instead (no change from
the current behavior in that case).

Signed-off-by: Peter van der Does <peter@avirtualhome.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Explained-by: SZEDER Gábor <szeder@ira.uka.de>
13 years agoget_sha1: support $commit^{/regex} syntax
Nguyễn Thái Ngọc Duy [Mon, 13 Dec 2010 03:01:15 +0000 (10:01 +0700)]
get_sha1: support $commit^{/regex} syntax

This works like ":/regex" syntax that finds a recently created commit
starting from all refs, but limits the discovery to those reachable from
the named commit.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agodifftool: Fix failure on Cygwin
Ramsay Jones [Tue, 14 Dec 2010 18:27:48 +0000 (18:27 +0000)]
difftool: Fix failure on Cygwin

In particular, test 14 'difftool last flag wins' in t7800 fails.
This is caused by git-difftool.perl passing both GIT_DIFFTOOL_NO_PROMPT
(='true') and GIT_DIFFTOOL_PROMPT (='true') to the difftool helper
script. Despite the appropriate key being deleted from the ENV
hash, it seems that once a key has been set in the hash, it gets
passed along to the system() call. (ie deleting the key does not
do the equivalent of unsetenv()).

In order to fix the problem, we keep track of the required prompt
state while processing the arguments, and then set the relevant
ENV hash key only once at the end.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot9501-*.sh: Fix a test failure on Cygwin
Ramsay Jones [Tue, 14 Dec 2010 18:26:38 +0000 (18:26 +0000)]
t9501-*.sh: Fix a test failure on Cygwin

The first (setup) test attempts to create a file, using the
test_commit function, called 'i can has snapshot?'. On cygwin
(and MinGW) this fails with a "No such file or directory" error.
In order to fix the tests, we simply remove the '?' wildcard
from the name, since the purpose of these tests is not about
creating funny filenames.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agolib-git-svn.sh: Add check for mis-configured web server variables
Ramsay Jones [Tue, 14 Dec 2010 18:25:11 +0000 (18:25 +0000)]
lib-git-svn.sh: Add check for mis-configured web server variables

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agolib-git-svn.sh: Avoid setting web server variables unnecessarily
Ramsay Jones [Tue, 14 Dec 2010 18:22:29 +0000 (18:22 +0000)]
lib-git-svn.sh: Avoid setting web server variables unnecessarily

If the SVN_HTTPD_PORT variable is not set, then we will not even
attempt to start a web server in the start_httpd function (despite
it's name), so there is no need to determine values for the
SVN_HTTPD_PATH and SVN_HTTPD_MODULE_PATH variables.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>