gitweb.git
MALLOC_CHECK: various clean-upsJunio C Hamano Sat, 15 Sep 2012 03:38:24 +0000 (20:38 -0700)

MALLOC_CHECK: various clean-ups

The most important in this change is to avoid affecting anything
when test-lib is used from perf-lib. It also limits the effect of
the MALLOC_CHECK only to what is run inside the actual test, and
uses a fixed MALLOC_PERTURB_ in order to avoid hurting repeatability
of the tests.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add MALLOC_CHECK_ and MALLOC_PERTURB_ libc env to the... Elia Pinto Fri, 14 Sep 2012 16:54:22 +0000 (09:54 -0700)

Add MALLOC_CHECK_ and MALLOC_PERTURB_ libc env to the test suite for detecting heap corruption

Recent versions of Linux libc (later than 5.4.23) and glibc (2.x)
include a malloc() implementation which is tunable via environment
variables. When MALLOC_CHECK_ is set, a special (less efficient)
implementation is used which is designed to be tolerant against
simple errors, such as double calls of free() with the same argument,
or overruns of a single byte (off-by-one bugs). When MALLOC_CHECK_
is set to 3, a diagnostic message is printed on stderr
and the program is aborted.

Setting the MALLOC_PERTURB_ environment variable causes the malloc
functions in libc to return memory which has been wiped and clear
memory when it is returned.
Of course this does not affect calloc which always does clear the memory.

The reason for this exercise is, of course, to find code which uses
memory returned by malloc without initializing it and code which uses
code after it is freed. valgrind can do this but it's costly to run.
The MALLOC_PERTURB_ exchanges the ability to detect problems in 100%
of the cases with speed.

The byte value used to initialize values returned by malloc is the byte
value of the environment value. The value used to clear memory is the
bitwise inverse. Setting MALLOC_PERTURB_ to zero disables the feature.

This technique can find hard to detect bugs.
It is therefore suggested to always use this flag (at least temporarily)
when testing out code or a new distribution.

But the test suite can use also valgrind(memcheck) via 'make valgrind'
or 'make GIT_TEST_OPTS="--valgrind"'.

Memcheck wraps client calls to malloc(), and puts a "red zone" on
each end of each block in order to detect access overruns.
Memcheck already detects double free() (up to the limit of the buffer
which remembers pending free()). Thus memcheck subsumes all the
documented coverage of MALLOC_CHECK_.

If MALLOC_CHECK_ is set non-zero when running memcheck, then the
overruns that might be detected by MALLOC_CHECK_ would be overruns
on the wrapped blocks which include the red zones. Thus MALLOC_CHECK_
would be checking memcheck, and not the client. This is not useful,
and actually is wasteful. The only possible [documented] advantage
of using MALLOC_CHECK_ and memcheck together, would be if MALLOC_CHECK_
detected duplicate free() in more cases than memcheck because memcheck's
buffer is too small.

Therefore we don't use MALLOC_CHECK_ and valgrind(memcheck) at the
same time.

Signed-off-by: Elia Pinto <gitter.spiros@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

The sixth batch for 1.8.0Junio C Hamano Fri, 14 Sep 2012 19:34:11 +0000 (12:34 -0700)

The sixth batch for 1.8.0

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'nd/checkout-option-parsing-fix'Junio C Hamano Fri, 14 Sep 2012 18:54:34 +0000 (11:54 -0700)

Merge branch 'nd/checkout-option-parsing-fix'

The option parsing of "git checkout" had error checking, dwim and
defaulting missing options, all mixed in the code, and issuing an
appropriate error message with useful context was getting harder.
Reorganize the code and allow giving a proper diagnosis when the
user says "git checkout -b -t foo bar" (e.g. "-t" is not a good name
for a branch).

* nd/checkout-option-parsing-fix:
checkout: reorder option handling
checkout: move more parameters to struct checkout_opts
checkout: pass "struct checkout_opts *" as const pointer

Merge branch 'mh/abspath'Junio C Hamano Fri, 14 Sep 2012 18:54:28 +0000 (11:54 -0700)

Merge branch 'mh/abspath'

* mh/abspath:
t0060: split absolute path test in two to exercise some of it on Windows
t0060: verify that real_path() removes extra slashes
real_path(): properly handle nonexistent top-level paths
t0060: verify that real_path() works correctly with absolute paths
real_path(): reject the empty string
t0060: verify that real_path() fails if passed the empty string
absolute_path(): reject the empty string
t0060: verify that absolute_path() fails if passed the empty string
t0060: move tests of real_path() from t0000 to here

Merge branch 'dj/fetch-all-tags'Junio C Hamano Fri, 14 Sep 2012 18:54:19 +0000 (11:54 -0700)

Merge branch 'dj/fetch-all-tags'

"git fetch --all", when passed "--no-tags", did not honor the
"--no-tags" option while fetching from individual remotes (the same
issue existed with "--tags", but combination "--all --tags" makes
much less sense than "--all --no-tags").

* dj/fetch-all-tags:
fetch --all: pass --tags/--no-tags through to each remote

Merge branch 'sn/ls-remote-get-url-doc'Junio C Hamano Fri, 14 Sep 2012 18:54:12 +0000 (11:54 -0700)

Merge branch 'sn/ls-remote-get-url-doc'

* sn/ls-remote-get-url-doc:
ls-remote: document the '--get-url' option

Merge branch 'nd/i18n-status'Junio C Hamano Fri, 14 Sep 2012 18:54:04 +0000 (11:54 -0700)

Merge branch 'nd/i18n-status'

* nd/i18n-status:
status: remove i18n legos

Merge branch 'rj/path-cleanup'Junio C Hamano Fri, 14 Sep 2012 18:53:53 +0000 (11:53 -0700)

Merge branch 'rj/path-cleanup'

* rj/path-cleanup:
Call mkpathdup() rather than xstrdup(mkpath(...))
Call git_pathdup() rather than xstrdup(git_path("..."))
path.c: Use vsnpath() in the implementation of git_path()
path.c: Don't discard the return value of vsnpath()
path.c: Remove the 'git_' prefix from a file scope function

Merge branch 'rj/tap-fix'Junio C Hamano Fri, 14 Sep 2012 18:53:45 +0000 (11:53 -0700)

Merge branch 'rj/tap-fix'

* rj/tap-fix:
test-lib.sh: Suppress the "passed all ..." message if no tests run
test-lib.sh: Add check for invalid use of 'skip_all' facility
test-lib.sh: Fix some shell coding style violations
t4016-*.sh: Skip all tests rather than each test
t3902-*.sh: Skip all tests rather than each test
t3300-*.sh: Fix a TAP parse error

Merge git://github.com/git-l10n/git-poJunio C Hamano Wed, 12 Sep 2012 23:14:14 +0000 (16:14 -0700)

Merge git://github.com/git-l10n/git-po

* git://github.com/git-l10n/git-po:
l10n: Update Swedish translation (1166t0f0u)
l10n: vi.po: update to v1.7.12-146-g16d26
l10n: de.po: translate 2 new messages
l10n: zh_CN.po: translate 2 new messages
l10n: Update git.pot (2 new, 4 removed messages)
l10n: vi.po & TEAMS: review Vietnamese translation

l10n: Update Swedish translation (1166t0f0u)Peter Krefting Fri, 7 Sep 2012 09:10:23 +0000 (10:10 +0100)

l10n: Update Swedish translation (1166t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>

Merge git://github.com/vnwildman/gitJiang Xin Wed, 12 Sep 2012 22:32:36 +0000 (06:32 +0800)

Merge git://github.com/vnwildman/git

* git://github.com/vnwildman/git:
l10n: vi.po: update to v1.7.12-146-g16d26

Start merging the sixth batch for 1.8.0Junio C Hamano Wed, 12 Sep 2012 21:33:50 +0000 (14:33 -0700)

Start merging the sixth batch for 1.8.0

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Wed, 12 Sep 2012 21:36:39 +0000 (14:36 -0700)

Merge branch 'maint'

Merge branch 'jc/maint-checkout-fileglob-doc'Junio C Hamano Wed, 12 Sep 2012 21:22:08 +0000 (14:22 -0700)

Merge branch 'jc/maint-checkout-fileglob-doc'

Updated with help from Peff.

* jc/maint-checkout-fileglob-doc:
gitcli: contrast wildcard given to shell and to git
gitcli: formatting fix
Document file-glob for "git checkout -- '*.c'"

Merge branch 'sb/send-email-reconfirm-fix'Junio C Hamano Wed, 12 Sep 2012 21:22:03 +0000 (14:22 -0700)

Merge branch 'sb/send-email-reconfirm-fix'

* sb/send-email-reconfirm-fix:
send-email: initial_to and initial_reply_to are both optional

Merge branch 'nd/maint-remote-remove'Junio C Hamano Wed, 12 Sep 2012 21:21:58 +0000 (14:21 -0700)

Merge branch 'nd/maint-remote-remove'

* nd/maint-remote-remove:
remote: prefer subcommand name 'remove' to 'rm'

Merge branch 'nd/log-n-doc'Junio C Hamano Wed, 12 Sep 2012 21:21:55 +0000 (14:21 -0700)

Merge branch 'nd/log-n-doc'

* nd/log-n-doc:
doc: move rev-list option -<n> from git-log.txt to rev-list-options.txt

Merge branch 'kd/cvsimport-avoid-invalid-tag'Junio C Hamano Wed, 12 Sep 2012 21:21:50 +0000 (14:21 -0700)

Merge branch 'kd/cvsimport-avoid-invalid-tag'

"cvsimport" tried to create a tag taken from CVS without
sufficiently sanitizing it, causing the import to fail when an
invalid character in the tagname made underlying "git tag" to fail.

* kd/cvsimport-avoid-invalid-tag:
cvsimport: strip all inappropriate tag strings

Merge branch 'js/compat-itimer'Junio C Hamano Wed, 12 Sep 2012 21:21:44 +0000 (14:21 -0700)

Merge branch 'js/compat-itimer'

Pieces to support compilation on __TANDEM.

* js/compat-itimer:
Add a no-op setitimer() wrapper

Merge branch 'js/compat-mkdir'Junio C Hamano Wed, 12 Sep 2012 21:21:39 +0000 (14:21 -0700)

Merge branch 'js/compat-mkdir'

Finishing touches to recently added wrapper for mkdir() that do not
want to see trailing slashes.

* js/compat-mkdir:
Document MKDIR_WO_TRAILING_SLASH in Makefile

Further merging in preparation for 1.7.12.1Junio C Hamano Wed, 12 Sep 2012 21:10:54 +0000 (14:10 -0700)

Further merging in preparation for 1.7.12.1

Describe the following in the draft release notes:

. jc/apply-binary-p0
. jc/dotdot-is-parent-directory
. jc/maint-doc-checkout-b-always-takes-branch-name
. jk/maint-http-half-auth-push
. kk/maint-for-each-ref-multi-sort

Yet to be merged before 1.7.12.1 are:

. jk/config-warn-on-inaccessible-paths
. jk/maint-quiet-is-synonym-to-s-in-log
. mz/cherry-pick-cmdline-order

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint-1.7.11' into maintJunio C Hamano Wed, 12 Sep 2012 21:08:05 +0000 (14:08 -0700)

Merge branch 'maint-1.7.11' into maint

Merge branch 'jc/apply-binary-p0' into maint-1.7.11Junio C Hamano Wed, 12 Sep 2012 21:00:52 +0000 (14:00 -0700)

Merge branch 'jc/apply-binary-p0' into maint-1.7.11

"git apply -p0" did not parse pathnames on "diff --git" line
correctly. This caused patches that had pathnames in no other
places to be mistakenly rejected (most notably, binary patch that
does not rename nor change mode). Textual patches, renames or mode
changes have preimage and postimage pathnames in different places in
a form that can be parsed unambiguously and did not suffer from this
problem.

* jc/apply-binary-p0:
apply: compute patch->def_name correctly under -p0

Merge branch 'jc/dotdot-is-parent-directory' into maint... Junio C Hamano Wed, 12 Sep 2012 21:00:34 +0000 (14:00 -0700)

Merge branch 'jc/dotdot-is-parent-directory' into maint-1.7.11

"git log .." errored out saying it is both rev range and a path when
there is no disambiguating "--" is on the command line. Update the
command line parser to interpret ".." as a path in such a case.

* jc/dotdot-is-parent-directory:
specifying ranges: we did not mean to make ".." an empty set

Merge branch 'jc/maint-doc-checkout-b-always-takes... Junio C Hamano Wed, 12 Sep 2012 20:59:58 +0000 (13:59 -0700)

Merge branch 'jc/maint-doc-checkout-b-always-takes-branch-name' into maint-1.7.11

The synopsis said "checkout [-B branch]" to make it clear the
branch name is a parameter to the option, but the heading for the
option description was "-B::", not "-B branch::", making the
documentation misleading.

* jc/maint-doc-checkout-b-always-takes-branch-name:
doc: "git checkout -b/-B/--orphan" always takes a branch name

Merge branch 'jk/maint-http-half-auth-push' into maint... Junio C Hamano Wed, 12 Sep 2012 20:58:22 +0000 (13:58 -0700)

Merge branch 'jk/maint-http-half-auth-push' into maint-1.7.11

Pushing to smart HTTP server with recent Git fails without having
the username in the URL to force authentication, if the server is
configured to allow GET anonymously, while requiring authentication
for POST.

* jk/maint-http-half-auth-push:
http: prompt for credentials on failed POST
http: factor out http error code handling
t: test http access to "half-auth" repositories
t: test basic smart-http authentication
t/lib-httpd: recognize */smart/* repos as smart-http
t/lib-httpd: only route auth/dumb to dumb repos
t5550: factor out http auth setup
t5550: put auth-required repo in auth/dumb

Merge branch 'kk/maint-for-each-ref-multi-sort' into... Junio C Hamano Wed, 12 Sep 2012 20:57:43 +0000 (13:57 -0700)

Merge branch 'kk/maint-for-each-ref-multi-sort' into maint-1.7.11

"git for-each-ref" did not honor multiple "--sort=<key>" arguments
correctly.

* kk/maint-for-each-ref-multi-sort:
for-each-ref: Fix sort with multiple keys
t6300: test sort with multiple keys

Merge git://ozlabs.org/~paulus/gitkJunio C Hamano Wed, 12 Sep 2012 16:32:22 +0000 (09:32 -0700)

Merge git://ozlabs.org/~paulus/gitk

* git://ozlabs.org/~paulus/gitk:
gitk: Fix GIT_TRACE issues

Merge branch 'da/gitk-reload-tag-contents'Junio C Hamano Wed, 12 Sep 2012 16:32:03 +0000 (09:32 -0700)

Merge branch 'da/gitk-reload-tag-contents'

After overwriting a tag with a new tag, "Reread references" action
in "gitk" correctly moved the marker in the display, but it failed
to discard a cached contents of the tag (even "Reload" didn't).

* da/gitk-reload-tag-contents:
gitk: Rename 'tagcontents' to 'cached_tagcontent'
gitk: Teach "Reread references" to reload tags
gitk: Avoid Meta1-F5

Merge branch 'da/gitk-reload-tag-contents' of git:... Paul Mackerras Wed, 12 Sep 2012 12:34:24 +0000 (22:34 +1000)

Merge branch 'da/gitk-reload-tag-contents' of git://github.com/gitster/git
to get two commits from David Aguilar.

checkout: reorder option handlingNguyễn Thái Ngọc Duy Thu, 30 Aug 2012 12:45:50 +0000 (19:45 +0700)

checkout: reorder option handling

checkout operates in three different modes. On top of that it tries to
be smart by guessing the branch name for switching. This results in
messy option handling code. This patch reorders it so that

- cmd_checkout() is responsible for parsing, preparing input and
determining mode

- Code of each mode is in checkout_paths() and checkout_branch(),
where sanity checks are performed

Another slight improvement is always print branch name (or commit
name) when printing errors related ot them. This helps catch the case
where an option is mistaken as branch/commit.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Second half of the fifth batch for 1.8.0Junio C Hamano Tue, 11 Sep 2012 18:41:35 +0000 (11:41 -0700)

Second half of the fifth batch for 1.8.0

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'rj/test-regex'Junio C Hamano Tue, 11 Sep 2012 18:36:25 +0000 (11:36 -0700)

Merge branch 'rj/test-regex'

Git ships with a fall-back regexp implementation for platforms with
buggy regexp library; give people a tool to see if they should be
using it on their platform.

* rj/test-regex:
test-regex: Add a test to check for a bug in the regex routines

Merge branch 'jk/argv-array'Junio C Hamano Tue, 11 Sep 2012 18:36:18 +0000 (11:36 -0700)

Merge branch 'jk/argv-array'

Use argv-array API in "git fetch" implementation.

* jk/argv-array:
submodule: use argv_array instead of hand-building arrays
fetch: use argv_array instead of hand-building arrays
argv-array: fix bogus cast when freeing array
argv-array: add pop function

Merge branch 'jc/merge-bases'Junio C Hamano Tue, 11 Sep 2012 18:35:26 +0000 (11:35 -0700)

Merge branch 'jc/merge-bases'

Optimise the "merge-base" computation a bit, and also update its
users that do not need the full merge-base information to call a
cheaper subset.

* jc/merge-bases:
reduce_heads(): reimplement on top of remove_redundant()
merge-base: "--is-ancestor A B"
get_merge_bases_many(): walk from many tips in parallel
in_merge_bases(): use paint_down_to_common()
merge_bases_many(): split out the logic to paint history
in_merge_bases(): omit unnecessary redundant common ancestor reduction
http-push: use in_merge_bases() for fast-forward check
receive-pack: use in_merge_bases() for fast-forward check
in_merge_bases(): support only one "other" commit

Merge branch 'nd/i18n-index-pack'Junio C Hamano Tue, 11 Sep 2012 18:35:22 +0000 (11:35 -0700)

Merge branch 'nd/i18n-index-pack'

* nd/i18n-index-pack:
i18n: mark more index-pack strings for translation

Merge branch 'jc/maint-ident-missing-human-name'Junio C Hamano Tue, 11 Sep 2012 18:35:15 +0000 (11:35 -0700)

Merge branch 'jc/maint-ident-missing-human-name'

"git show --format='%ci'" did not give timestamp correctly for
commits created without human readable name on "committer" line.

* jc/maint-ident-missing-human-name:
split_ident_line(): make best effort when parsing author/committer line

Sync with maintJunio C Hamano Tue, 11 Sep 2012 18:31:26 +0000 (11:31 -0700)

Sync with maint

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Further merging down for 1.7.12.1Junio C Hamano Tue, 11 Sep 2012 18:27:35 +0000 (11:27 -0700)

Further merging down for 1.7.12.1

We will wait for a handful of other fixes that have graduated to the
'master' for 1.8.0 to be tested in the wild and then tag 1.7.12.1:

. mz/cherry-pick-cmdline-order
. jk/maint-quiet-is-synonym-to-s-in-log
. jk/maint-http-half-auth-push
. jc/apply-binary-p0
. jk/config-warn-on-inaccessible-paths
. kk/maint-for-each-ref-multi-sort

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Sync with 1.7.11.6Junio C Hamano Tue, 11 Sep 2012 18:23:45 +0000 (11:23 -0700)

Sync with 1.7.11.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'js/use-sc-open-max' into maintJunio C Hamano Tue, 11 Sep 2012 18:23:06 +0000 (11:23 -0700)

Merge branch 'js/use-sc-open-max' into maint

* js/use-sc-open-max:
sha1_file.c: introduce get_max_fd_limit() helper

Merge branch 'js/no-curl-easy-strerror-on-old-curl... Junio C Hamano Tue, 11 Sep 2012 18:22:58 +0000 (11:22 -0700)

Merge branch 'js/no-curl-easy-strerror-on-old-curl' into maint

* js/no-curl-easy-strerror-on-old-curl:
http.c: don't use curl_easy_strerror prior to curl-7.12.0

Git 1.7.11.6 v1.7.11.6Junio C Hamano Tue, 11 Sep 2012 18:18:48 +0000 (11:18 -0700)

Git 1.7.11.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jc/maint-mergetool-style-fix' into maint... Junio C Hamano Tue, 11 Sep 2012 18:10:23 +0000 (11:10 -0700)

Merge branch 'jc/maint-mergetool-style-fix' into maint-1.7.11

* jc/maint-mergetool-style-fix:
mergetool: style fixes

Merge branch 'sz/submodule-force-update' into maint... Junio C Hamano Tue, 11 Sep 2012 18:10:17 +0000 (11:10 -0700)

Merge branch 'sz/submodule-force-update' into maint-1.7.11

* sz/submodule-force-update:
Make 'git submodule update --force' always check out submodules.

Merge branch 'ph/stash-rerere' into maint-1.7.11Junio C Hamano Tue, 11 Sep 2012 18:10:12 +0000 (11:10 -0700)

Merge branch 'ph/stash-rerere' into maint-1.7.11

* ph/stash-rerere:
stash: invoke rerere in case of conflict
test: git-stash conflict sets up rerere

Merge branch 'jc/maint-sane-execvp-notdir' into maint... Junio C Hamano Tue, 11 Sep 2012 18:09:19 +0000 (11:09 -0700)

Merge branch 'jc/maint-sane-execvp-notdir' into maint-1.7.11

* jc/maint-sane-execvp-notdir:
sane_execvp(): ignore non-directory on $PATH

Merge branch 'jc/maint-config-exit-status' into maint... Junio C Hamano Tue, 11 Sep 2012 18:09:09 +0000 (11:09 -0700)

Merge branch 'jc/maint-config-exit-status' into maint-1.7.11

* jc/maint-config-exit-status:
config: "git config baa" should exit with status 1

Merge branch 'mh/maint-config-doc-proxy-command' into... Junio C Hamano Tue, 11 Sep 2012 18:09:01 +0000 (11:09 -0700)

Merge branch 'mh/maint-config-doc-proxy-command' into maint-1.7.11

* mh/maint-config-doc-proxy-command:
git-config doc: unconfuse an example
git-config.txt: fix example

Merge branch 'hv/submodule-path-unmatch' into maint... Junio C Hamano Tue, 11 Sep 2012 18:08:55 +0000 (11:08 -0700)

Merge branch 'hv/submodule-path-unmatch' into maint-1.7.11

* hv/submodule-path-unmatch:
Let submodule command exit with error status if path does not exist

Merge branch 'mz/empty-rebase-test' into maint-1.7.11Junio C Hamano Tue, 11 Sep 2012 18:08:48 +0000 (11:08 -0700)

Merge branch 'mz/empty-rebase-test' into maint-1.7.11

* mz/empty-rebase-test:
add tests for 'git rebase --keep-empty'

Merge branch 'jk/docs-docbook-monospace-display' into... Junio C Hamano Tue, 11 Sep 2012 18:08:40 +0000 (11:08 -0700)

Merge branch 'jk/docs-docbook-monospace-display' into maint-1.7.11

* jk/docs-docbook-monospace-display:
docs: monospace listings in docbook output

Merge branch 'ab/diff-write-incomplete-line' into maint... Junio C Hamano Tue, 11 Sep 2012 18:08:30 +0000 (11:08 -0700)

Merge branch 'ab/diff-write-incomplete-line' into maint-1.7.11

* ab/diff-write-incomplete-line:
Fix '\ No newline...' annotation in rewrite diffs

Merge branch 'jc/maint-t7406-rev-parse-max-count-huh... Junio C Hamano Tue, 11 Sep 2012 18:08:18 +0000 (11:08 -0700)

Merge branch 'jc/maint-t7406-rev-parse-max-count-huh' into maint-1.7.11

* jc/maint-t7406-rev-parse-max-count-huh:
t7406: fix misleading "rev-parse --max-count=1 HEAD"

Merge branch 'rr/precompose-utf8-cleanup' into maintJunio C Hamano Tue, 11 Sep 2012 18:07:14 +0000 (11:07 -0700)

Merge branch 'rr/precompose-utf8-cleanup' into maint

* rr/precompose-utf8-cleanup:
precompose-utf8: do not call checks for non-ascii "utf8"
cleanup precompose_utf8

Merge branch 'jc/capabilities' into maintJunio C Hamano Tue, 11 Sep 2012 18:06:45 +0000 (11:06 -0700)

Merge branch 'jc/capabilities' into maint

* jc/capabilities:
fetch-pack: mention server version with verbose output
parse_feature_request: make it easier to see feature values
fetch-pack: do not ask for unadvertised capabilities
do not send client agent unless server does first
send-pack: fix capability-sending logic
include agent identifier in capability string

Merge branch 'jc/doc-git-updates' into maintJunio C Hamano Tue, 11 Sep 2012 18:06:19 +0000 (11:06 -0700)

Merge branch 'jc/doc-git-updates' into maint

* jc/doc-git-updates:
Documentation: update the introductory section

Merge branch 'jk/check-docs-update' into maintJunio C Hamano Tue, 11 Sep 2012 18:06:14 +0000 (11:06 -0700)

Merge branch 'jk/check-docs-update' into maint

* jk/check-docs-update:
check-docs: get documented command list from Makefile
check-docs: drop git-help special-case
check-docs: list git-gui as a command
check-docs: factor out command-list
command-list: mention git-credential-* helpers
command-list: add git-sh-i18n
check-docs: update non-command documentation list
check-docs: mention gitweb specially

Merge branch 'tr/void-diff-setup-done' into maint-1... Junio C Hamano Tue, 11 Sep 2012 17:53:40 +0000 (10:53 -0700)

Merge branch 'tr/void-diff-setup-done' into maint-1.7.11

* tr/void-diff-setup-done:
diff_setup_done(): return void

Merge branch 'tr/merge-recursive-flush' into maint... Junio C Hamano Tue, 11 Sep 2012 17:53:31 +0000 (10:53 -0700)

Merge branch 'tr/merge-recursive-flush' into maint-1.7.11

* tr/merge-recursive-flush:
merge-recursive: eliminate flush_buffer() in favor of write_in_full()

Merge branch 'nd/index-errno' into maint-1.7.11Junio C Hamano Tue, 11 Sep 2012 17:53:21 +0000 (10:53 -0700)

Merge branch 'nd/index-errno' into maint-1.7.11

* nd/index-errno:
read_index_from: remove bogus errno assignments

Merge branch 'pg/maint-apply-remove-unused-variable... Junio C Hamano Tue, 11 Sep 2012 17:53:11 +0000 (10:53 -0700)

Merge branch 'pg/maint-apply-remove-unused-variable' into maint-1.7.11

* pg/maint-apply-remove-unused-variable:
apply: delete unused deflate_origlen from patch struct

Merge branch 'jc/test-prereq' into maintJunio C Hamano Tue, 11 Sep 2012 17:51:58 +0000 (10:51 -0700)

Merge branch 'jc/test-prereq' into maint

* jc/test-prereq:
t3910: use the UTF8_NFD_TO_NFC test prereq
test-lib: provide UTF8 behaviour as a prerequisite
t0050: use the SYMLINKS test prereq
t0050: use the CASE_INSENSITIVE_FS test prereq
test-lib: provide case insensitivity as a prerequisite
test: allow prerequisite to be evaluated lazily
test: rename $satisfied to $satisfied_prereq

First half of the fifth batch for 1.8.0Junio C Hamano Mon, 10 Sep 2012 22:52:21 +0000 (15:52 -0700)

First half of the fifth batch for 1.8.0

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'cn/branch-set-upstream-to'Junio C Hamano Mon, 10 Sep 2012 22:43:07 +0000 (15:43 -0700)

Merge branch 'cn/branch-set-upstream-to'

"git branch --set-upstream origin/master" is a common mistake to
create a local branch 'origin/master' and set it to integrate with
the current branch. With a plan to deprecate this option, introduce
"git branch (-u|--set-upstream-to) origin/master" that sets the
current branch to integrate with 'origin/master' remote tracking
branch.

* cn/branch-set-upstream-to:
branch: deprecate --set-upstream and show help if we detect possible mistaken use
branch: add --unset-upstream option
branch: introduce --set-upstream-to

Merge branch 'mz/cherry-pick-cmdline-order'Junio C Hamano Mon, 10 Sep 2012 22:42:54 +0000 (15:42 -0700)

Merge branch 'mz/cherry-pick-cmdline-order'

"git cherry-pick A C B" used to replay changes in A and then B and
then C if these three commits had committer timestamps in that
order, which is not what the user who said "A C B" naturally expects.

* mz/cherry-pick-cmdline-order:
cherry-pick/revert: respect order of revisions to pick
demonstrate broken 'git cherry-pick three one two'
teach log --no-walk=unsorted, which avoids sorting

Merge branch 'jk/maint-quiet-is-synonym-to-s-in-log'Junio C Hamano Mon, 10 Sep 2012 22:42:48 +0000 (15:42 -0700)

Merge branch 'jk/maint-quiet-is-synonym-to-s-in-log'

We tried to bend backwards to allow "--quiet" to be a synonym as
"-s" when given as e.g. "git show --quiet", but did not quite
succeed.

* jk/maint-quiet-is-synonym-to-s-in-log:
log: fix --quiet synonym for -s

Merge branch 'ph/credential-gnome-keyring'Junio C Hamano Mon, 10 Sep 2012 22:42:30 +0000 (15:42 -0700)

Merge branch 'ph/credential-gnome-keyring'

* ph/credential-gnome-keyring:
contrib: add credential helper for GnomeKeyring

Cull items fixed in maintenance branchesJunio C Hamano Mon, 10 Sep 2012 22:41:14 +0000 (15:41 -0700)

Cull items fixed in maintenance branches

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Sync with "almost" 1.7.12.1Junio C Hamano Mon, 10 Sep 2012 22:40:07 +0000 (15:40 -0700)

Sync with "almost" 1.7.12.1

Start preparing for 1.7.12.1Junio C Hamano Mon, 10 Sep 2012 22:39:15 +0000 (15:39 -0700)

Start preparing for 1.7.12.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'bc/prune-info' into maintJunio C Hamano Mon, 10 Sep 2012 22:37:37 +0000 (15:37 -0700)

Merge branch 'bc/prune-info' into maint

"git prune" without "-v" used to warn about leftover temporary
files (which is an indication of an earlier aborted operation).

* bc/prune-info:
prune.c: only print informational message in show_only or verbose mode

Merge branch 'maint-1.7.11' into maintJunio C Hamano Mon, 10 Sep 2012 22:31:06 +0000 (15:31 -0700)

Merge branch 'maint-1.7.11' into maint

* maint-1.7.11:
Almost 1.7.11.6
gitweb: URL-decode $my_url/$my_uri when stripping PATH_INFO
rebase -i: use full onto sha1 in reflog
sh-setup: protect from exported IFS
receive-pack: do not leak output from auto-gc to standard output
t/t5400: demonstrate breakage caused by informational message from prune
setup: clarify error messages for file/revisions ambiguity
send-email: improve RFC2047 quote parsing
fsck: detect null sha1 in tree entries
do not write null sha1s to on-disk index
diff: do not use null sha1 as a sentinel value

Almost 1.7.11.6Junio C Hamano Mon, 10 Sep 2012 22:30:46 +0000 (15:30 -0700)

Almost 1.7.11.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'mg/rebase-i-onto-reflog-in-full' into... Junio C Hamano Mon, 10 Sep 2012 22:26:03 +0000 (15:26 -0700)

Merge branch 'mg/rebase-i-onto-reflog-in-full' into maint-1.7.11

The reflog entries left by "git rebase" and "git rebase -i" were
inconsistent (the interactive one gave an abbreviated object name).

* mg/rebase-i-onto-reflog-in-full:
rebase -i: use full onto sha1 in reflog

Merge branch 'jc/maint-protect-sh-from-ifs' into maint... Junio C Hamano Mon, 10 Sep 2012 22:25:45 +0000 (15:25 -0700)

Merge branch 'jc/maint-protect-sh-from-ifs' into maint-1.7.11

When the user exports a non-default IFS without HT, scripts that
rely on being able to parse "ls-files -s | while read a b c..."
start to fail. Protect them from such a misconfiguration.

* jc/maint-protect-sh-from-ifs:
sh-setup: protect from exported IFS

Merge branch 'bc/receive-pack-stdout-protection' into... Junio C Hamano Mon, 10 Sep 2012 22:25:09 +0000 (15:25 -0700)

Merge branch 'bc/receive-pack-stdout-protection' into maint-1.7.11

When "git push" triggered the automatic gc on the receiving end, a
message from "git prune" that said it was removing cruft leaked to
the standard output, breaking the communication protocol.

* bc/receive-pack-stdout-protection:
receive-pack: do not leak output from auto-gc to standard output
t/t5400: demonstrate breakage caused by informational message from prune

Merge branch 'jk/maint-null-in-trees' into maint-1... Junio C Hamano Mon, 10 Sep 2012 22:24:53 +0000 (15:24 -0700)

Merge branch 'jk/maint-null-in-trees' into maint-1.7.11

"git diff" had a confusion between taking data from a path in the
working tree and taking data from an object that happens to have
name 0{40} recorded in a tree.

* jk/maint-null-in-trees:
fsck: detect null sha1 in tree entries
do not write null sha1s to on-disk index
diff: do not use null sha1 as a sentinel value

Merge branch 'tr/maint-send-email-2047' into maint... Junio C Hamano Mon, 10 Sep 2012 22:24:40 +0000 (15:24 -0700)

Merge branch 'tr/maint-send-email-2047' into maint-1.7.11

"git send-email" did not unquote encoded words that appear on the
header correctly, and lost "_" from strings.

* tr/maint-send-email-2047:
send-email: improve RFC2047 quote parsing

Merge branch 'mm/die-with-dashdash-help' into maint... Junio C Hamano Mon, 10 Sep 2012 22:24:21 +0000 (15:24 -0700)

Merge branch 'mm/die-with-dashdash-help' into maint-1.7.11

When the user gives an argument that can be taken as both a
revision name and a pathname without disambiguating with "--", we
used to give a help message "Use '--' to separate". The message
has been clarified to show where that '--' goes on the command
line.

* mm/die-with-dashdash-help:
setup: clarify error messages for file/revisions ambiguity

Merge branch 'js/gitweb-path-info-unquote' into maint... Junio C Hamano Mon, 10 Sep 2012 22:23:46 +0000 (15:23 -0700)

Merge branch 'js/gitweb-path-info-unquote' into maint-1.7.11

"gitweb" when used with PATH_INFO failed to notice directories with
SP (and other characters that need URL-style quoting) in them.

* js/gitweb-path-info-unquote:
gitweb: URL-decode $my_url/$my_uri when stripping PATH_INFO

gitcli: contrast wildcard given to shell and to gitJunio C Hamano Fri, 7 Sep 2012 20:49:15 +0000 (13:49 -0700)

gitcli: contrast wildcard given to shell and to git

People who are not used to working with shell may intellectually
understand how the command line argument is massaged by the shell
but still have a hard time visualizing the difference between
letting the shell expand fileglobs and having Git see the fileglob
to use as a pathspec.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitcli: formatting fixJunio C Hamano Mon, 10 Sep 2012 19:47:38 +0000 (12:47 -0700)

gitcli: formatting fix

The paragraph to encourage use of "--" in scripts belongs to the
bullet point that describes the behaviour for a command line without
the explicit "--" disambiguation; it is not a supporting explanation
for the entire bulletted list, and it is wrong to make it a separate
paragraph outside the list.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

t0060: split absolute path test in two to exercise... Johannes Sixt Sun, 9 Sep 2012 15:42:20 +0000 (17:42 +0200)

t0060: split absolute path test in two to exercise some of it on Windows

Only the first half of the test works only on POSIX, the second half
passes on Windows as well.

A later test "real path removes other extra slashes" looks very similar,
but it does not make sense to split it in the same way: When two slashes
are prepended in front of an absolute DOS-style path on Windows, the
meaning of the path is changed (//server/share style), so that the test
cannot pass on Windows.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Acked-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Document MKDIR_WO_TRAILING_SLASH in MakefileJoachim Schmitz Sat, 8 Sep 2012 17:01:31 +0000 (19:01 +0200)

Document MKDIR_WO_TRAILING_SLASH in Makefile

Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add a no-op setitimer() wrapperJoachim Schmitz Sat, 8 Sep 2012 16:54:34 +0000 (18:54 +0200)

Add a no-op setitimer() wrapper

The current code uses setitimer() only for reducing perceived
latency. On platforms that lack setitimer() (e.g. HP NonStop),
allow builders to say "make NO_SETITIMER=YesPlease" to use a no-op
substitute, as doing so would not affect correctness.

HP NonStop does provide struct itimerval, but other platforms may
not, so this is taken care of in this commit too, by setting
NO_STRUCT_ITIMERVAL.

Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitk: Rename 'tagcontents' to 'cached_tagcontent'David Aguilar Sat, 8 Sep 2012 19:53:16 +0000 (12:53 -0700)

gitk: Rename 'tagcontents' to 'cached_tagcontent'

Name the 'tagcontents' variable similarly to the rest of the
variables cleared in the changedrefs() function.

This makes the naming consistent and provides a hint that it
should be cleared when reloading gitk's cache.

Suggested-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitk: Teach "Reread references" to reload tagsDavid Aguilar Sat, 8 Sep 2012 19:03:13 +0000 (12:03 -0700)

gitk: Teach "Reread references" to reload tags

Tag contents, once read, are forever cached in memory.
This makes gitk unable to notice when tag contents change.

Allow users to cause a reload of the tag contents by using
the "File->Reread references" action.

Reported-by: Tim McCormack <cortex@brainonfire.net>
Suggested-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: vi.po: update to v1.7.12-146-g16d26Tran Ngoc Quan Wed, 5 Sep 2012 00:47:08 +0000 (07:47 +0700)

l10n: vi.po: update to v1.7.12-146-g16d26

* 2 new messages
* review messages again (8 of them by Duy) and fixed typo

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>

The fourth batch for 1.8.0Junio C Hamano Fri, 7 Sep 2012 18:25:22 +0000 (11:25 -0700)

The fourth batch for 1.8.0

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'nd/branch-v-alignment'Junio C Hamano Fri, 7 Sep 2012 18:10:02 +0000 (11:10 -0700)

Merge branch 'nd/branch-v-alignment'

Output from "git branch -v" contains "(no branch)" that could be
localized, but the code to align it along with the names of branches
were counting in bytes, not in display columns.

* nd/branch-v-alignment:
branch -v: align even when branch names are in UTF-8

Merge branch 'jk/maint-http-half-auth-push'Junio C Hamano Fri, 7 Sep 2012 18:09:49 +0000 (11:09 -0700)

Merge branch 'jk/maint-http-half-auth-push'

Pushing to smart HTTP server with recent Git fails without having
the username in the URL to force authentication, if the server is
configured to allow GET anonymously, while requiring authentication
for POST.

* jk/maint-http-half-auth-push:
http: prompt for credentials on failed POST
http: factor out http error code handling
t: test http access to "half-auth" repositories
t: test basic smart-http authentication
t/lib-httpd: recognize */smart/* repos as smart-http
t/lib-httpd: only route auth/dumb to dumb repos
t5550: factor out http auth setup
t5550: put auth-required repo in auth/dumb

Merge branch 'jc/maint-doc-checkout-b-always-takes... Junio C Hamano Fri, 7 Sep 2012 18:09:36 +0000 (11:09 -0700)

Merge branch 'jc/maint-doc-checkout-b-always-takes-branch-name'

The synopsis said "checkout [-B branch]" to make it clear the branch
name is a parameter to the option, but the heading for the option
description was "-B::", not "-B branch::", making the documentation
misleading. There may be room in documentation pages of other
commands for similar improvements.

* jc/maint-doc-checkout-b-always-takes-branch-name:
doc: "git checkout -b/-B/--orphan" always takes a branch name

Merge branch 'jc/apply-binary-p0'Junio C Hamano Fri, 7 Sep 2012 18:09:26 +0000 (11:09 -0700)

Merge branch 'jc/apply-binary-p0'

"git apply -p0" did not parse pathnames on "diff --git" line
correctly. This caused patches that had pathnames in no other
places to be mistakenly rejected (most notably, binary patch that
does not rename nor change mode). Textual patches, renames or
mode changes have preimage and postimage pathnames in different
places in a form that can be parsed unambiguously and did not suffer
from this problem.

* jc/apply-binary-p0:
apply: compute patch->def_name correctly under -p0

Merge branch 'jc/dotdot-is-parent-directory'Junio C Hamano Fri, 7 Sep 2012 18:09:18 +0000 (11:09 -0700)

Merge branch 'jc/dotdot-is-parent-directory'

"git log .." errored out saying it is both rev range and a path when
there is no disambiguating "--" is on the command line. Update the
command line parser to interpret ".." as a path in such a case.

* jc/dotdot-is-parent-directory:
specifying ranges: we did not mean to make ".." an empty set

Merge branch 'nd/i18n-parseopt-help'Junio C Hamano Fri, 7 Sep 2012 18:09:09 +0000 (11:09 -0700)

Merge branch 'nd/i18n-parseopt-help'

A lot of i18n mark-up for the help text from "git <cmd> -h".

* nd/i18n-parseopt-help: (66 commits)
Use imperative form in help usage to describe an action
Reduce translations by using same terminologies
i18n: write-tree: mark parseopt strings for translation
i18n: verify-tag: mark parseopt strings for translation
i18n: verify-pack: mark parseopt strings for translation
i18n: update-server-info: mark parseopt strings for translation
i18n: update-ref: mark parseopt strings for translation
i18n: update-index: mark parseopt strings for translation
i18n: tag: mark parseopt strings for translation
i18n: symbolic-ref: mark parseopt strings for translation
i18n: show-ref: mark parseopt strings for translation
i18n: show-branch: mark parseopt strings for translation
i18n: shortlog: mark parseopt strings for translation
i18n: rm: mark parseopt strings for translation
i18n: revert, cherry-pick: mark parseopt strings for translation
i18n: rev-parse: mark parseopt strings for translation
i18n: reset: mark parseopt strings for translation
i18n: rerere: mark parseopt strings for translation
i18n: status: mark parseopt strings for translation
i18n: replace: mark parseopt strings for translation
...

Merge branch 'nd/am-i18n-fix'Junio C Hamano Fri, 7 Sep 2012 18:09:04 +0000 (11:09 -0700)

Merge branch 'nd/am-i18n-fix'

"git am" wasn't marked up for i18n properly.

* nd/am-i18n-fix:
am: quote string for translation before passing to eval_gettextln

Merge branch 'jk/config-warn-on-inaccessible-paths'Junio C Hamano Fri, 7 Sep 2012 18:08:56 +0000 (11:08 -0700)

Merge branch 'jk/config-warn-on-inaccessible-paths'

When looking for $HOME/.gitconfig etc., it is OK if we cannot read
them because they do not exist, but we did not diagnose existing
files that we cannot read.

* jk/config-warn-on-inaccessible-paths:
warn_on_inaccessible(): a helper to warn on inaccessible paths
attr: warn on inaccessible attribute files
gitignore: report access errors of exclude files
config: warn on inaccessible files