git
11 years agoreset.c: extract function for updating {ORIG_,}HEAD
Martin von Zweigbergk [Tue, 15 Jan 2013 05:47:39 +0000 (21:47 -0800)] 
reset.c: extract function for updating {ORIG_,}HEAD

By extracting the code for updating the HEAD and ORIG_HEAD symbolic
references to a separate function, we declutter cmd_reset() a bit and
we make it clear that e.g. the four variables {,sha1_}{,old_}orig are
only used by this code.

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoreset.c: remove unnecessary variable 'i'
Martin von Zweigbergk [Tue, 15 Jan 2013 05:47:38 +0000 (21:47 -0800)] 
reset.c: remove unnecessary variable 'i'

Throughout most of parse_args(), the variable 'i' remains at 0. Many
references are still made to the variable even when it could only have
the value 0. This made at least me, who has relatively little
experience with C programming styles, think that parts of the function
was meant to be part of a loop. To avoid such confusion, remove the
variable and also the 'argc' parameter and check for NULL trailing
argv instead.

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoreset.c: extract function for parsing arguments
Martin von Zweigbergk [Tue, 15 Jan 2013 05:47:37 +0000 (21:47 -0800)] 
reset.c: extract function for parsing arguments

Declutter cmd_reset() a bit by moving out the argument parsing to its
own function.

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoreset: don't allow "git reset -- $pathspec" in bare repo
Martin von Zweigbergk [Tue, 15 Jan 2013 05:47:36 +0000 (21:47 -0800)] 
reset: don't allow "git reset -- $pathspec" in bare repo

Running e.g. "git reset ." in a bare repo results in an index file
being created from the HEAD commit. The differences compared to the
index are then printed as usual, but since there is no worktree, it
will appear as if all files are deleted. For example, in a bare clone
of git.git:

  Unstaged changes after reset:
  D       .gitattributes
  D       .gitignore
  D       .mailmap
  ...

This happens because the check for is_bare_repository() happens after
we branch off into read_from_tree() to reset with paths. Fix by moving
the branching point after the check.

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoreset.c: pass pathspec around instead of (prefix, argv) pair
Martin von Zweigbergk [Tue, 15 Jan 2013 05:47:35 +0000 (21:47 -0800)] 
reset.c: pass pathspec around instead of (prefix, argv) pair

We use the path arguments in two places in reset.c: in
interactive_reset() and read_from_tree(). Both of these call
get_pathspec(), so we pass the (prefix, argv) pair to both
functions. Move the call to get_pathspec() out of these methods, for
two reasons: 1) One argument is simpler than two. 2) It lets us use
the (arguably clearer) "if (pathspec)" in place of "if (i < argc)".

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoreset $pathspec: exit with code 0 if successful
Martin von Zweigbergk [Tue, 15 Jan 2013 05:47:34 +0000 (21:47 -0800)] 
reset $pathspec: exit with code 0 if successful

"git reset $pathspec" currently exits with a non-zero exit code if the
worktree is dirty after resetting, which is inconsistent with reset
without pathspec, and it makes it harder to know whether the command
really failed. Change it to exit with code 0 regardless of whether the
worktree is dirty so that non-zero indicates an error.

This makes the 4 "disambiguation" test cases in t7102 clearer since
they all used to "fail", 3 of which "failed" due to changes in the
work tree. Now only the ambiguous one fails.

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoreset $pathspec: no need to discard index
Martin von Zweigbergk [Tue, 15 Jan 2013 05:47:33 +0000 (21:47 -0800)] 
reset $pathspec: no need to discard index

Since 34110cd (Make 'unpack_trees()' have a separate source and
destination index, 2008-03-06), the index no longer gets clobbered by
do_diff_cache() and we can remove the code for discarding and
re-reading it.

There are two paths to update_index_refresh() from cmd_reset(), but on
both paths, either read_cache() or read_cache_unmerged() will have
been called, so the call to read_cache() in this method is redundant
(although practically free).

This speeds up "git reset -- ." a little on the linux-2.6 repo (best
of five, warm cache):

        Before      After
real    0m0.093s    0m0.080s
user    0m0.040s    0m0.020s
sys     0m0.050s    0m0.050s

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoUpdate draft release notes to 1.8.2
Junio C Hamano [Wed, 9 Jan 2013 18:19:49 +0000 (10:19 -0800)] 
Update draft release notes to 1.8.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'master' of git://github.com/git-l10n/git-po
Junio C Hamano [Wed, 9 Jan 2013 16:30:45 +0000 (08:30 -0800)] 
Merge branch 'master' of git://github.com/git-l10n/git-po

Update German translation.

* 'master' of git://github.com/git-l10n/git-po:
  l10n: de.po: address the user formally

11 years agoMerge branch 'nd/maint-branch-desc-doc'
Junio C Hamano [Wed, 9 Jan 2013 16:27:09 +0000 (08:27 -0800)] 
Merge branch 'nd/maint-branch-desc-doc'

Teach various forms of "format-patch" command line to identify what
branch the patches are taken from, so that the branch description
is picked up in more cases.

* nd/maint-branch-desc-doc:
  format-patch: pick up branch description when no ref is specified
  format-patch: pick up correct branch name from symbolic ref
  t4014: a few more tests on cover letter using branch description
  branch: delete branch description if it's empty
  config.txt: a few lines about branch.<name>.description

11 years agoMerge branch 'jk/enable-test-lint-by-default'
Junio C Hamano [Wed, 9 Jan 2013 16:26:46 +0000 (08:26 -0800)] 
Merge branch 'jk/enable-test-lint-by-default'

We have two simple and quick tests to catch common mistakes when
writing test scripts, but we did not run them by default when
running tests.

* jk/enable-test-lint-by-default:
  tests: turn on test-lint by default

11 years agoMerge branch 'ap/merge-stop-at-prepare-commit-msg-failure'
Junio C Hamano [Wed, 9 Jan 2013 16:26:33 +0000 (08:26 -0800)] 
Merge branch 'ap/merge-stop-at-prepare-commit-msg-failure'

"git merge" started calling prepare-commit-msg hook like "git
commit" does some time ago, but forgot to pay attention to the exit
status of the hook.  t7505 may want a general clean-up but that is
a different topic.

* ap/merge-stop-at-prepare-commit-msg-failure:
  merge: Honor prepare-commit-msg return code

11 years agoMerge branch 'fc/remote-bzr'
Junio C Hamano [Wed, 9 Jan 2013 16:26:26 +0000 (08:26 -0800)] 
Merge branch 'fc/remote-bzr'

New remote helper for bzr, with minimum fix squashed in.

* fc/remote-bzr:
  remote-bzr: detect local repositories
  remote-bzr: add support for older versions of bzr
  remote-bzr: add support to push special modes
  remote-bzr: add support for fecthing special modes
  remote-bzr: add simple tests
  remote-bzr: update working tree upon pushing
  remote-bzr: add support for remote repositories
  remote-bzr: add support for pushing
  Add new remote-bzr transport helper

11 years agoMerge branch 'jc/submittingpatches'
Junio C Hamano [Wed, 9 Jan 2013 16:26:20 +0000 (08:26 -0800)] 
Merge branch 'jc/submittingpatches'

Streamline the document and update with a few e-mail addresses the
patches should be sent to.

* jc/submittingpatches:
  SubmittingPatches: give list and maintainer addresses
  SubmittingPatches: remove overlong checklist
  SubmittingPatches: mention subsystems with dedicated repositories
  SubmittingPatches: who am I and who cares?

11 years agoMerge branch 'os/gitweb-highlight-uncaptured'
Junio C Hamano [Wed, 9 Jan 2013 16:26:08 +0000 (08:26 -0800)] 
Merge branch 'os/gitweb-highlight-uncaptured'

The code to sanitize control characters before passing it to
"highlight" filter lost known-to-be-safe control characters by
mistake.

* os/gitweb-highlight-uncaptured:
  gitweb: fix error in sanitize when highlight is enabled

11 years agoMerge branch 'jn/less-reconfigure'
Junio C Hamano [Wed, 9 Jan 2013 16:25:59 +0000 (08:25 -0800)] 
Merge branch 'jn/less-reconfigure'

When autoconf is used, any build on a different commit always ran
"config.status --recheck" even when unnecessary.

* jn/less-reconfigure:
  build: do not automatically reconfigure unless configure.ac changed

11 years agoMerge branch 'er/python-version-requirements'
Junio C Hamano [Wed, 9 Jan 2013 16:25:47 +0000 (08:25 -0800)] 
Merge branch 'er/python-version-requirements'

Some python scripts we ship cannot be run with older versions of the
interpreter.

* er/python-version-requirements:
  Add checks to Python scripts for version dependencies.

11 years agoMerge branch 'er/stop-recommending-parsecvs'
Junio C Hamano [Wed, 9 Jan 2013 16:25:36 +0000 (08:25 -0800)] 
Merge branch 'er/stop-recommending-parsecvs'

Stop recommending a defunct third-party software.

* er/stop-recommending-parsecvs:
  Remove the suggestion to use parsecvs, which is currently broken.

11 years agoMerge branch 'maint'
Junio C Hamano [Tue, 8 Jan 2013 21:23:46 +0000 (13:23 -0800)] 
Merge branch 'maint'

* maint:
  t1402: work around shell quoting issue on NetBSD
  remote-hg: Fix biridectionality -> bidirectionality typos

11 years agoMerge branch 'kb/maint-bundle-doc'
Junio C Hamano [Tue, 8 Jan 2013 21:23:26 +0000 (13:23 -0800)] 
Merge branch 'kb/maint-bundle-doc'

* kb/maint-bundle-doc:
  Documentation: full-ness of a bundle is significant for cloning
  Documentation: correct example restore from bundle

11 years agoMerge branch 'as/test-name-alias-uniquely'
Junio C Hamano [Tue, 8 Jan 2013 21:23:21 +0000 (13:23 -0800)] 
Merge branch 'as/test-name-alias-uniquely'

A few short-and-bland aliases used in the tests were interfering
with git-custom command in user's $PATH.

* as/test-name-alias-uniquely:
  Use longer alias names in subdirectory tests

11 years agoMerge branch 'ta/remove-stale-translated-tut'
Junio C Hamano [Tue, 8 Jan 2013 21:23:10 +0000 (13:23 -0800)] 
Merge branch 'ta/remove-stale-translated-tut'

Remove a translation of a document that was left stale.

* ta/remove-stale-translated-tut:
  Remove Documentation/pt_BR/gittutorial.txt

11 years agoMerge branch 'tb/test-t9810-no-sed-i'
Junio C Hamano [Tue, 8 Jan 2013 21:23:05 +0000 (13:23 -0800)] 
Merge branch 'tb/test-t9810-no-sed-i'

* tb/test-t9810-no-sed-i:
  t9810: Do not use sed -i

11 years agoMerge branch 'tb/test-t9020-no-which'
Junio C Hamano [Tue, 8 Jan 2013 21:23:00 +0000 (13:23 -0800)] 
Merge branch 'tb/test-t9020-no-which'

* tb/test-t9020-no-which:
  t9020: which is not portable

11 years agoMerge branch 'jk/maint-fast-import-doc-dedup-done'
Junio C Hamano [Tue, 8 Jan 2013 21:22:52 +0000 (13:22 -0800)] 
Merge branch 'jk/maint-fast-import-doc-dedup-done'

The "logical order" reorganization can come after that is done and
can cook longer in 'next'.

* jk/maint-fast-import-doc-dedup-done:
  git-fast-import(1): remove duplicate '--done' option

11 years agoMerge branch 'jk/pathspec-literal'
Junio C Hamano [Tue, 8 Jan 2013 21:22:32 +0000 (13:22 -0800)] 
Merge branch 'jk/pathspec-literal'

Finishing touches to fix a test breakage on Windows

* jk/pathspec-literal:
  t6130-pathspec-noglob: Windows does not allow a file named "f*"

11 years agoMerge branch 'jk/maint-fast-import-doc-dedup-done'
Junio C Hamano [Tue, 8 Jan 2013 21:21:07 +0000 (13:21 -0800)] 
Merge branch 'jk/maint-fast-import-doc-dedup-done'

* jk/maint-fast-import-doc-dedup-done:
  git-fast-import(1): remove duplicate '--done' option

11 years agogit-fast-import(1): remove duplicate '--done' option
John Keeping [Mon, 7 Jan 2013 11:57:09 +0000 (11:57 +0000)] 
git-fast-import(1): remove duplicate '--done' option

The '--done' option to git-fast-import is documented twice in its manual
page.  Combine the best bits of each description, keeping the location
of the instance that was added first.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agot1402: work around shell quoting issue on NetBSD
René Scharfe [Tue, 8 Jan 2013 20:23:01 +0000 (21:23 +0100)] 
t1402: work around shell quoting issue on NetBSD

The test fails for me on NetBSD 6.0.1 and reports:

ok 1 - ref name '' is invalid
ok 2 - ref name '/' is invalid
ok 3 - ref name '/' is invalid with options --allow-onelevel
ok 4 - ref name '/' is invalid with options --normalize
error: bug in the test script: not 2 or 3 parameters to test-expect-success

The alleged bug is in this line:

invalid_ref NOT_MINGW '/' '--allow-onelevel --normalize'

invalid_ref() constructs a test case description using its last argument,
but the shell seems to split it up into two pieces if it contains a
space.  Minimal test case:

# on NetBSD with /bin/sh
$ a() { echo $#-$1-$2; }
$ t="x"; a "${t:+$t}"
1-x-
$ t="x y"; a "${t:+$t}"
2-x-y
$ t="x y"; a "${t:+x y}"
1-x y-

# and with bash
$ t="x y"; a "${t:+$t}"
1-x y-
$ t="x y"; a "${t:+x y}"
1-x y-

This may be a bug in the shell, but here's a simple workaround: Construct
the description string first and store it in a variable, and then use
that to call test_expect_success().

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'ms/subtree-fixlets' into maint
Junio C Hamano [Tue, 8 Jan 2013 19:17:10 +0000 (11:17 -0800)] 
Merge branch 'ms/subtree-fixlets' into maint

* ms/subtree-fixlets:
  git-subtree: fix typo in manpage
  git-subtree: ignore git-subtree executable

11 years agoMerge branch 'ss/nedmalloc-compilation' into maint
Junio C Hamano [Tue, 8 Jan 2013 19:17:07 +0000 (11:17 -0800)] 
Merge branch 'ss/nedmalloc-compilation' into maint

* ss/nedmalloc-compilation:
  nedmalloc: Fix a compile warning (exposed as error) with GCC 4.7.2

11 years agoMerge branch 'jc/maint-fnmatch-old-style-definition' into maint
Junio C Hamano [Tue, 8 Jan 2013 19:17:05 +0000 (11:17 -0800)] 
Merge branch 'jc/maint-fnmatch-old-style-definition' into maint

* jc/maint-fnmatch-old-style-definition:
  compat/fnmatch: update old-style definition to ANSI

11 years agoMerge branch 'jc/test-portability' into maint
Junio C Hamano [Tue, 8 Jan 2013 19:17:03 +0000 (11:17 -0800)] 
Merge branch 'jc/test-portability' into maint

* jc/test-portability:
  t9020: use configured Python to run the test helper
  t3600: Avoid "cp -a", which is a GNUism

11 years agoMerge branch 'jc/maint-fbsd-sh-ifs-workaround' into maint
Junio C Hamano [Tue, 8 Jan 2013 19:17:01 +0000 (11:17 -0800)] 
Merge branch 'jc/maint-fbsd-sh-ifs-workaround' into maint

* jc/maint-fbsd-sh-ifs-workaround:
  sh-setup: work around "unset IFS" bug in some shells

11 years agoMerge branch 'jc/mkstemp-more-careful-error-reporting' into maint
Junio C Hamano [Tue, 8 Jan 2013 19:16:58 +0000 (11:16 -0800)] 
Merge branch 'jc/mkstemp-more-careful-error-reporting' into maint

* jc/mkstemp-more-careful-error-reporting:
  xmkstemp(): avoid showing truncated template more carefully

11 years agoMerge branch 'jc/test-cvs-no-init-in-existing-dir' into maint
Junio C Hamano [Tue, 8 Jan 2013 19:16:56 +0000 (11:16 -0800)] 
Merge branch 'jc/test-cvs-no-init-in-existing-dir' into maint

* jc/test-cvs-no-init-in-existing-dir:
  t9200: let "cvs init" create the test repository

11 years agoMerge branch 'jc/maint-test-portability' into maint
Junio C Hamano [Tue, 8 Jan 2013 19:16:52 +0000 (11:16 -0800)] 
Merge branch 'jc/maint-test-portability' into maint

* jc/maint-test-portability:
  t4014: fix arguments to grep
  t9502: do not assume GNU tar
  t0200: "locale" may not exist

11 years agoremote-hg: Fix biridectionality -> bidirectionality typos
W. Trevor King [Tue, 8 Jan 2013 15:47:37 +0000 (10:47 -0500)] 
remote-hg: Fix biridectionality -> bidirectionality typos

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agol10n: de.po: address the user formally
Ralf Thielow [Wed, 26 Dec 2012 15:46:52 +0000 (16:46 +0100)] 
l10n: de.po: address the user formally

In the current German translation, the user was
addressed informally ("Du", "Dein") which is unusual
in German software. This commit changes the addressing
to be formal ("Sie", "Ihr").

Suggested-by: Christian Stimming <stimming@tuhh.de>
Suggested-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
11 years agoMerge branch 'mz/oneway-merge-wo-u-no-lstat'
Junio C Hamano [Mon, 7 Jan 2013 06:11:39 +0000 (22:11 -0800)] 
Merge branch 'mz/oneway-merge-wo-u-no-lstat'

Optimize "read-tree -m <tree-ish>" without "-u".

* mz/oneway-merge-wo-u-no-lstat:
  oneway_merge(): only lstat() when told to update worktree

11 years agoMerge branch 'cc/no-gitk-build-dependency'
Junio C Hamano [Mon, 7 Jan 2013 06:11:30 +0000 (22:11 -0800)] 
Merge branch 'cc/no-gitk-build-dependency'

Remove leftover bits from an earlier change to move gitk in its own
subdirectory.  Reimplementing the dependency tracking rules needs
to be done in gitk history separately.

* cc/no-gitk-build-dependency:
  Makefile: replace "echo 1>..." with "echo >..."
  Makefile: detect when PYTHON_PATH changes
  Makefile: remove tracking of TCLTK_PATH

11 years agoMerge branch 'jn/warn-on-inaccessible-loosen'
Junio C Hamano [Mon, 7 Jan 2013 06:11:16 +0000 (22:11 -0800)] 
Merge branch 'jn/warn-on-inaccessible-loosen'

Deal with a situation where .config/git is a file and we notice
.config/git/config is not readable due to ENOTDIR, not ENOENT.

* jn/warn-on-inaccessible-loosen:
  config: exit on error accessing any config file
  doc: advertise GIT_CONFIG_NOSYSTEM
  config: treat user and xdg config permission problems as errors
  config, gitignore: failure to access with ENOTDIR is ok

11 years agoMerge branch 'jc/apply-trailing-blank-removal'
Junio C Hamano [Mon, 7 Jan 2013 06:10:23 +0000 (22:10 -0800)] 
Merge branch 'jc/apply-trailing-blank-removal'

Fix to update_pre_post_images() that did not take into account the
possibility that whitespace fix could shrink the preimage and
change the number of lines in it.

* jc/apply-trailing-blank-removal:
  apply.c:update_pre_post_images(): the preimage can be truncated

11 years agot6130-pathspec-noglob: Windows does not allow a file named "f*"
Johannes Sixt [Sun, 6 Jan 2013 14:07:43 +0000 (15:07 +0100)] 
t6130-pathspec-noglob: Windows does not allow a file named "f*"

Windows disallows file names that contain a star. Arrange the test setup
to insert the file name "f*" in the repository without the corresponding
file in the worktree.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoUpdate draft release notes to 1.8.2
Junio C Hamano [Sun, 6 Jan 2013 08:17:24 +0000 (00:17 -0800)] 
Update draft release notes to 1.8.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'wk/submodule-update-remote'
Junio C Hamano [Sun, 6 Jan 2013 07:42:11 +0000 (23:42 -0800)] 
Merge branch 'wk/submodule-update-remote'

The beginning of 'integrate with the tip of the remote branch, not
the commit recorded in the superproject gitlink' support.

* wk/submodule-update-remote:
  submodule add: If --branch is given, record it in .gitmodules
  submodule update: add --remote for submodule's upstream changes
  submodule: add get_submodule_config helper funtion

11 years agoMerge branch 'jk/pathspec-literal'
Junio C Hamano [Sun, 6 Jan 2013 07:42:07 +0000 (23:42 -0800)] 
Merge branch 'jk/pathspec-literal'

Allow scripts to feed literal paths to commands that take
pathspecs, by disabling wildcard globbing.

* jk/pathspec-literal:
  add global --literal-pathspecs option

Conflicts:
dir.c

11 years agoMerge branch 'jk/error-const-return'
Junio C Hamano [Sun, 6 Jan 2013 07:42:00 +0000 (23:42 -0800)] 
Merge branch 'jk/error-const-return'

Help compilers' flow analysis by making it more explicit that
error() always returns -1, to reduce false "variable used
uninitialized" warnings.  Looks somewhat ugly but not too much.

* jk/error-const-return:
  silence some -Wuninitialized false positives
  make error()'s constant return value more visible

11 years agoMerge branch 'jc/format-color-auto'
Junio C Hamano [Sun, 6 Jan 2013 07:41:57 +0000 (23:41 -0800)] 
Merge branch 'jc/format-color-auto'

Introduce "log --format=%C(auto,blue)Foo%C(auto,reset)" that does
not color its output when writing to a non-terminal.

* jc/format-color-auto:
  log --format: teach %C(auto,black) to respect color config
  t6006: clean up whitespace

11 years agoMerge branch 'jk/complete-commit-c'
Junio C Hamano [Sun, 6 Jan 2013 07:41:53 +0000 (23:41 -0800)] 
Merge branch 'jk/complete-commit-c'

Complete "git commmit -c foo<TAB>" into a refname that begins with
"foo".

* jk/complete-commit-c:
  completion: complete refs for "git commit -c"

11 years agoMerge branch 'ja/directory-attrs'
Junio C Hamano [Sun, 6 Jan 2013 07:41:46 +0000 (23:41 -0800)] 
Merge branch 'ja/directory-attrs'

The attribute mechanism didn't allow limiting attributes to be
applied to only a single directory itself with "path/" like the
exclude mechanism does.

* ja/directory-attrs:
  Add directory pattern matching to attributes

11 years agoMerge branch 'jk/mailmap-from-blob'
Junio C Hamano [Sun, 6 Jan 2013 07:41:42 +0000 (23:41 -0800)] 
Merge branch 'jk/mailmap-from-blob'

Allow us to read, and default to read, mailmap files from the tip
of the history in bare repositories.  This will help running tools
like shortlog in server settings.

* jk/mailmap-from-blob:
  mailmap: default mailmap.blob in bare repositories
  mailmap: fix some documentation loose-ends for mailmap.blob
  mailmap: clean up read_mailmap error handling
  mailmap: support reading mailmap from blobs
  mailmap: refactor mailmap parsing for non-file sources

11 years agoMerge branch 'jc/fetch-ignore-symref'
Junio C Hamano [Sun, 6 Jan 2013 07:41:37 +0000 (23:41 -0800)] 
Merge branch 'jc/fetch-ignore-symref'

Avoid false error from an attempt to update local symbolic ref via
fetch.

* jc/fetch-ignore-symref:
  fetch: ignore wildcarded refspecs that update local symbolic refs

11 years agoMerge branch 'cr/push-force-tag-update'
Junio C Hamano [Sun, 6 Jan 2013 07:41:34 +0000 (23:41 -0800)] 
Merge branch 'cr/push-force-tag-update'

Require "-f" for push to update a tag, even if it is a fast-forward.

* cr/push-force-tag-update:
  push: allow already-exists advice to be disabled
  push: rename config variable for more general use
  push: cleanup push rules comment
  push: clarify rejection of update to non-commit-ish
  push: require force for annotated tags
  push: require force for refs under refs/tags/
  push: flag updates that require force
  push: keep track of "update" state separately
  push: add advice for rejected tag reference
  push: return reject reasons as a bitset

11 years agoMerge branch 'fc/fast-export-fixes'
Junio C Hamano [Sun, 6 Jan 2013 07:41:09 +0000 (23:41 -0800)] 
Merge branch 'fc/fast-export-fixes'

Various updates to fast-export used in the context of the remote
helper interface.

* fc/fast-export-fixes:
  fast-export: make sure updated refs get updated
  fast-export: don't handle uninteresting refs
  fast-export: fix comparison in tests
  fast-export: trivial cleanup
  remote-testgit: implement the "done" feature manually
  remote-testgit: report success after an import
  remote-testgit: exercise more features
  remote-testgit: cleanup tests
  remote-testgit: remove irrelevant test
  remote-testgit: remove non-local functionality
  Add new simplified git-remote-testgit
  Rename git-remote-testgit to git-remote-testpy
  remote-helpers: fix failure message
  remote-testgit: fix direction of marks
  fast-export: avoid importing blob marks

11 years agoMerge branch 'mh/unify-xml-in-imap-send-and-http-push'
Junio C Hamano [Sun, 6 Jan 2013 07:41:04 +0000 (23:41 -0800)] 
Merge branch 'mh/unify-xml-in-imap-send-and-http-push'

Update imap-send to reuse xml quoting code from http-push codepath,
clean up some code, and fix a small bug.

* mh/unify-xml-in-imap-send-and-http-push:
  wrap_in_html(): process message in bulk rather than line-by-line
  wrap_in_html(): use strbuf_addstr_xml_quoted()
  imap-send: change msg_data from storing (ptr, len) to storing strbuf
  imap-send: correctly report errors reading from stdin
  imap-send: store all_msgs as a strbuf
  lf_to_crlf(): NUL-terminate msg_data::data
  xml_entities(): use function strbuf_addstr_xml_quoted()
  Add new function strbuf_add_xml_quoted()

11 years agoMerge branch 'nd/pathspec-wildcard'
Junio C Hamano [Sun, 6 Jan 2013 07:40:15 +0000 (23:40 -0800)] 
Merge branch 'nd/pathspec-wildcard'

Optimize matching paths with common forms of pathspecs that contain
wildcard characters.

* nd/pathspec-wildcard:
  tree_entry_interesting: do basedir compare on wildcard patterns when possible
  pathspec: apply "*.c" optimization from exclude
  pathspec: do exact comparison on the leading non-wildcard part
  pathspec: save the non-wildcard length part

11 years agoMerge branch 'jk/fsck-dot-in-trees'
Junio C Hamano [Sun, 6 Jan 2013 07:40:04 +0000 (23:40 -0800)] 
Merge branch 'jk/fsck-dot-in-trees'

* jk/fsck-dot-in-trees:
  fsck: warn about ".git" in trees
  fsck: warn about '.' and '..' in trees

11 years agoMerge branch 'pf/editor-ignore-sigint'
Junio C Hamano [Sun, 6 Jan 2013 06:48:09 +0000 (22:48 -0800)] 
Merge branch 'pf/editor-ignore-sigint'

* pf/editor-ignore-sigint:
  fix compilation with NO_PTHREADS

11 years agofix compilation with NO_PTHREADS
Jeff King [Sat, 5 Jan 2013 14:52:29 +0000 (09:52 -0500)] 
fix compilation with NO_PTHREADS

Commit 1327452 cleaned up an unused parameter from
wait_or_whine, but forgot to update a caller that is inside
"#ifdef NO_PTHREADS".

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoUpdate draft release notes to 1.8.2
Junio C Hamano [Thu, 3 Jan 2013 18:33:22 +0000 (10:33 -0800)] 
Update draft release notes to 1.8.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'da/p4merge-mktemp'
Junio C Hamano [Thu, 3 Jan 2013 18:29:32 +0000 (10:29 -0800)] 
Merge branch 'da/p4merge-mktemp'

Create an empty file in $TMPDIR instead of using an empty file in
the local directory.

* da/p4merge-mktemp:
  mergetools/p4merge: Honor $TMPDIR for the /dev/null placeholder

11 years agoMerge branch 'ms/subtree-fixlets'
Junio C Hamano [Thu, 3 Jan 2013 18:29:29 +0000 (10:29 -0800)] 
Merge branch 'ms/subtree-fixlets'

* ms/subtree-fixlets:
  git-subtree: fix typo in manpage
  git-subtree: ignore git-subtree executable

11 years agoMerge branch 'as/test-tweaks'
Junio C Hamano [Thu, 3 Jan 2013 18:29:12 +0000 (10:29 -0800)] 
Merge branch 'as/test-tweaks'

Output from the tests is coloured using "green is okay, yellow is
questionable, red is bad and blue is informative" scheme.

* as/test-tweaks:
  tests: paint unexpectedly fixed known breakages in bold red
  tests: test the test framework more thoroughly
  tests: refactor mechanics of testing in a sub test-lib
  tests: change info messages from yellow/brown to cyan
  tests: paint skipped tests in blue
  tests: paint known breakages in yellow
  tests: test number comes first in 'not ok $count - $message'

11 years agoMerge branch 'jc/same-encoding'
Junio C Hamano [Thu, 3 Jan 2013 18:29:08 +0000 (10:29 -0800)] 
Merge branch 'jc/same-encoding'

Finishing touches to the series to unify "Do we need to reencode
between these two encodings?" logic.

* jc/same-encoding:
  format_commit_message(): simplify calls to logmsg_reencode()

11 years agoMerge branch 'pf/editor-ignore-sigint'
Junio C Hamano [Thu, 3 Jan 2013 18:28:45 +0000 (10:28 -0800)] 
Merge branch 'pf/editor-ignore-sigint'

The behaviour visible to the end users was confusing, when they
attempt to kill a process spawned in the editor that was in turn
launched by Git with SIGINT (or SIGQUIT), as Git would catch that
signal and die.  We ignore these signals now.

* pf/editor-ignore-sigint:
  launch_editor: propagate signals from editor to git
  run-command: do not warn about child death from terminal
  launch_editor: ignore terminal signals while editor has control
  launch_editor: refactor to use start/finish_command
  run-command: drop silent_exec_failure arg from wait_or_whine

11 years agoMerge branch 'mh/pthreads-autoconf'
Junio C Hamano [Thu, 3 Jan 2013 18:28:33 +0000 (10:28 -0800)] 
Merge branch 'mh/pthreads-autoconf'

* mh/pthreads-autoconf:
  configure.ac: fix pthreads detection on Mac OS X

11 years agoMerge branch 'mk/qnx'
Junio C Hamano [Thu, 3 Jan 2013 18:28:26 +0000 (10:28 -0800)] 
Merge branch 'mk/qnx'

Port to QNX.

* mk/qnx:
  Port to QNX
  Make lock local to fetch_pack

11 years agoMerge branch 'dm/port'
Junio C Hamano [Thu, 3 Jan 2013 18:28:21 +0000 (10:28 -0800)] 
Merge branch 'dm/port'

Add a few more knobs for new platform ports can tweak.

* dm/port:
  git-compat-util.h: do not #include <sys/param.h> by default
  Generalize the inclusion of strings.h
  Detect when the passwd struct is missing pw_gecos
  Support builds when sys/param.h is missing

11 years agoMerge branch 'ss/nedmalloc-compilation'
Junio C Hamano [Thu, 3 Jan 2013 18:14:10 +0000 (10:14 -0800)] 
Merge branch 'ss/nedmalloc-compilation'

* ss/nedmalloc-compilation:
  nedmalloc: Fix a compile warning (exposed as error) with GCC 4.7.2

11 years agoMerge branch 'jc/maint-fnmatch-old-style-definition'
Junio C Hamano [Thu, 3 Jan 2013 18:14:05 +0000 (10:14 -0800)] 
Merge branch 'jc/maint-fnmatch-old-style-definition'

Update old-style function definition "int foo(bar) int bar; {}"
to "int foo(int bar) {}".

* jc/maint-fnmatch-old-style-definition:
  compat/fnmatch: update old-style definition to ANSI

11 years agomerge: Honor prepare-commit-msg return code
Antoine Pelisse [Wed, 2 Jan 2013 18:42:50 +0000 (19:42 +0100)] 
merge: Honor prepare-commit-msg return code

65969d4 (merge: honor prepare-commit-msg hook, 2011-02-14) tried to
make "git commit" and "git merge" consistent, because a merge that
required user assistance has to be concluded with "git commit", but
back then only "git commit" triggered prepare-commit-msg hook.

When it added a call to run the prepare-commit-msg hook, however, it
forgot to check the exit code from the hook like "git commit" does,
and ended up replacing one inconsistency with another.

When prepare-commit-msg hook that is run from "git merge" exits with
a non-zero status, abort the commit.

Signed-off-by: Antoine Pelisse <apelisse@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoformat-patch: pick up branch description when no ref is specified
Nguyễn Thái Ngọc Duy [Thu, 3 Jan 2013 16:16:37 +0000 (23:16 +0700)] 
format-patch: pick up branch description when no ref is specified

We only try to get branch name in "format-patch origin" case or
similar and not "format-patch -22" where HEAD is automatically
added. Without correct branch name, branch description cannot be
added. Make sure we always get branch name.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agotests: turn on test-lint by default
Jeff King [Thu, 3 Jan 2013 07:17:51 +0000 (02:17 -0500)] 
tests: turn on test-lint by default

The test Makefile knows about a few "lint" checks for common
errors. However, they are not enabled as part of "make test"
by default, which means that many people do not bother
running them. Since they are both quick to run and accurate
(i.e., no false positives), there should be no harm in
turning them on and helping submitters catch errors earlier.

We could just set:

  TEST_LINT = test-lint

to enable all tests. But that would be unnecessarily
annoying later on if we add slower or less accurate tests
that should not be part of the default. Instead, we name the
tests individually.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoformat-patch: pick up correct branch name from symbolic ref
Nguyễn Thái Ngọc Duy [Thu, 3 Jan 2013 14:03:10 +0000 (21:03 +0700)] 
format-patch: pick up correct branch name from symbolic ref

find_branch_name() assumes to take refs/heads/<branch>. But we also
have symbolic refs, such as HEAD, that can point to a valid branch in
refs/heads and do not follow refs/heads/<branch> syntax. Remove the
assumption and apply normal ref resolution. After all it would be
confusing if rev machinery resolves a ref in one way and
find_branch_name() another.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agot4014: a few more tests on cover letter using branch description
Nguyễn Thái Ngọc Duy [Thu, 3 Jan 2013 14:03:09 +0000 (21:03 +0700)] 
t4014: a few more tests on cover letter using branch description

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agobranch: delete branch description if it's empty
Nguyễn Thái Ngọc Duy [Thu, 3 Jan 2013 14:03:08 +0000 (21:03 +0700)] 
branch: delete branch description if it's empty

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoremote-bzr: detect local repositories
Felipe Contreras [Wed, 28 Nov 2012 01:01:35 +0000 (02:01 +0100)] 
remote-bzr: detect local repositories

So we don't create a clone unnecessarily.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoremote-bzr: add support for older versions of bzr
Felipe Contreras [Wed, 28 Nov 2012 01:01:34 +0000 (02:01 +0100)] 
remote-bzr: add support for older versions of bzr

At least as old as 2.0.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoremote-bzr: add support to push special modes
Felipe Contreras [Sun, 11 Nov 2012 14:19:58 +0000 (15:19 +0100)] 
remote-bzr: add support to push special modes

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoremote-bzr: add support for fecthing special modes
Felipe Contreras [Sun, 11 Nov 2012 14:19:57 +0000 (15:19 +0100)] 
remote-bzr: add support for fecthing special modes

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoremote-bzr: add simple tests
Felipe Contreras [Sun, 11 Nov 2012 14:19:56 +0000 (15:19 +0100)] 
remote-bzr: add simple tests

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoStart 1.8.2 cycle
Junio C Hamano [Wed, 2 Jan 2013 18:44:12 +0000 (10:44 -0800)] 
Start 1.8.2 cycle

Various fixes that have been cooking in 'next' have been merged. All
of them should go to 'maint' for 1.8.1.1 later.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'jc/test-portability'
Junio C Hamano [Wed, 2 Jan 2013 18:53:59 +0000 (10:53 -0800)] 
Merge branch 'jc/test-portability'

* jc/test-portability:
  t9020: use configured Python to run the test helper
  t3600: Avoid "cp -a", which is a GNUism

11 years agoMerge branch 'jc/maint-fbsd-sh-ifs-workaround'
Junio C Hamano [Wed, 2 Jan 2013 18:40:41 +0000 (10:40 -0800)] 
Merge branch 'jc/maint-fbsd-sh-ifs-workaround'

Some shells do not behave correctly when IFS is unset; work it
around by explicitly setting it to the default value.

* jc/maint-fbsd-sh-ifs-workaround:
  sh-setup: work around "unset IFS" bug in some shells

11 years agoMerge branch 'sp/shortlog-missing-lf'
Junio C Hamano [Wed, 2 Jan 2013 18:40:34 +0000 (10:40 -0800)] 
Merge branch 'sp/shortlog-missing-lf'

When a line to be wrapped has a solid run of non space characters
whose length exactly is the wrap width, "git shortlog -w" failed to
add a newline after such a line.

* sp/shortlog-missing-lf:
  strbuf_add_wrapped*(): Remove unused return value
  shortlog: fix wrapping lines of wraplen

11 years agoMerge branch 'md/gitweb-sort-by-age'
Junio C Hamano [Wed, 2 Jan 2013 18:40:03 +0000 (10:40 -0800)] 
Merge branch 'md/gitweb-sort-by-age'

"gitweb", when sorting by age to show repositories with new
activities first, used to sort repositories with absolutely nothing
in it early, which was not very useful.

* md/gitweb-sort-by-age:
  gitweb: Sort projects with undefined ages last

11 years agoMerge branch 'nd/invalidate-i-t-a-cache-tree'
Junio C Hamano [Wed, 2 Jan 2013 18:39:51 +0000 (10:39 -0800)] 
Merge branch 'nd/invalidate-i-t-a-cache-tree'

After "git add -N" and then writing a tree object out of the
index, the cache-tree data structure got corrupted.

* nd/invalidate-i-t-a-cache-tree:
  cache-tree: invalidate i-t-a paths after generating trees
  cache-tree: fix writing cache-tree when CE_REMOVE is present
  cache-tree: replace "for" loops in update_one with "while" loops
  cache-tree: remove dead i-t-a code in verify_cache()

11 years agoMerge branch 'jk/repack-ref-racefix'
Junio C Hamano [Wed, 2 Jan 2013 18:39:36 +0000 (10:39 -0800)] 
Merge branch 'jk/repack-ref-racefix'

"git pack-refs" that ran in parallel to another process that created
new refs had a nasty race.

* jk/repack-ref-racefix:
  refs: do not use cached refs in repack_without_ref

11 years agoMerge branch 'rb/http-cert-cred-no-username-prompt'
Junio C Hamano [Wed, 2 Jan 2013 18:39:21 +0000 (10:39 -0800)] 
Merge branch 'rb/http-cert-cred-no-username-prompt'

http transport was wrong to ask for the username when the
authentication is done by certificate identity.

* rb/http-cert-cred-no-username-prompt:
  http.c: Avoid username prompt for certifcate credentials

11 years agoMerge branch 'mk/maint-graph-infinity-loop'
Junio C Hamano [Wed, 2 Jan 2013 18:39:09 +0000 (10:39 -0800)] 
Merge branch 'mk/maint-graph-infinity-loop'

The --graph code fell into infinite loop when asked to do what the
code did not expect.

* mk/maint-graph-infinity-loop:
  graph.c: infinite loop in git whatchanged --graph -m

11 years agoMerge branch 'ss/svn-prompt'
Junio C Hamano [Wed, 2 Jan 2013 18:38:50 +0000 (10:38 -0800)] 
Merge branch 'ss/svn-prompt'

The way "git svn" asked for password using SSH_ASKPASS and
GIT_ASKPASS was not in line with the rest of the system.

* ss/svn-prompt:
  git-svn, perl/Git.pm: extend and use Git->prompt method for querying users
  perl/Git.pm: Honor SSH_ASKPASS as fallback if GIT_ASKPASS is not set
  git-svn, perl/Git.pm: add central method for prompting passwords

11 years agoMerge branch 'jc/mkstemp-more-careful-error-reporting'
Junio C Hamano [Wed, 2 Jan 2013 18:38:25 +0000 (10:38 -0800)] 
Merge branch 'jc/mkstemp-more-careful-error-reporting'

After failing to create a temporary file using mkstemp(), failing
pathname was not reported correctly on some platforms.

* jc/mkstemp-more-careful-error-reporting:
  xmkstemp(): avoid showing truncated template more carefully

11 years agoMerge branch 'jc/test-cvs-no-init-in-existing-dir'
Junio C Hamano [Wed, 2 Jan 2013 18:38:09 +0000 (10:38 -0800)] 
Merge branch 'jc/test-cvs-no-init-in-existing-dir'

t9200 runs "cvs init" on a directory that already exists, but a
platform can configure this fail for the current user (e.g. you need
to be in the cvsadmin group on NetBSD 6.0).

* jc/test-cvs-no-init-in-existing-dir:
  t9200: let "cvs init" create the test repository

11 years agoMerge branch 'jc/maint-test-portability'
Junio C Hamano [Wed, 2 Jan 2013 18:37:48 +0000 (10:37 -0800)] 
Merge branch 'jc/maint-test-portability'

t4014, t9502 and t0200 tests had various portability issues that
broke on OpenBSD.

* jc/maint-test-portability:
  t4014: fix arguments to grep
  t9502: do not assume GNU tar
  t0200: "locale" may not exist

11 years agoMerge branch 'mh/ceiling'
Junio C Hamano [Wed, 2 Jan 2013 18:36:59 +0000 (10:36 -0800)] 
Merge branch 'mh/ceiling'

An element on GIT_CEILING_DIRECTORIES list that does not name the
real path to a directory (i.e. a symbolic link) could have caused
the GIT_DIR discovery logic to escape the ceiling.

* mh/ceiling:
  string_list_longest_prefix(): remove function
  setup_git_directory_gently_1(): resolve symlinks in ceiling paths
  longest_ancestor_length(): require prefix list entries to be normalized
  longest_ancestor_length(): take a string_list argument for prefixes
  longest_ancestor_length(): use string_list_split()
  Introduce new function real_path_if_valid()
  real_path_internal(): add comment explaining use of cwd
  Introduce new static function real_path_internal()

11 years agobuild: do not automatically reconfigure unless configure.ac changed
Jonathan Nieder [Wed, 2 Jan 2013 08:25:44 +0000 (00:25 -0800)] 
build: do not automatically reconfigure unless configure.ac changed

Starting with v1.7.12-rc0~4^2 (build: reconfigure automatically if
configure.ac changes, 2012-07-19), "config.status --recheck" is
automatically run every time the "configure" script changes.  In
particular, that means the configuration procedure repeats whenever
the version number changes (since the configure script changes to
support "./configure --version" and "./configure --help"), making
bisecting painfully slow.

The intent was to make the reconfiguration process only trigger for
changes to configure.ac's logic.  Tweak the Makefile rule to match
that intent by depending on configure.ac instead of configure.

Reported-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Reviewed-by: Jeff King <peff@peff.net>
Reviewed-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoSubmittingPatches: give list and maintainer addresses
Junio C Hamano [Wed, 2 Jan 2013 17:31:54 +0000 (09:31 -0800)] 
SubmittingPatches: give list and maintainer addresses

We told readers to "send it to the list" (or the maintainer) without
telling what addresses are to be used.  Correct this.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoSubmittingPatches: remove overlong checklist
Junio C Hamano [Tue, 1 Jan 2013 23:19:00 +0000 (15:19 -0800)] 
SubmittingPatches: remove overlong checklist

The section is no longer a concise checklist.  It also talks about
things that are not covered in the "Long version" text, which means
people need to read both, covering more or less the same thing in
different phrasing.

Fold the details into the main text and remove the section.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agot9020: which is not portable
Torsten Bögershausen [Tue, 1 Jan 2013 21:42:03 +0000 (22:42 +0100)] 
t9020: which is not portable

Use type instead

Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>