gitweb.git
Merge branch 'jk/pretty-encoding-doc'Junio C Hamano Fri, 10 Jul 2015 21:17:53 +0000 (14:17 -0700)

Merge branch 'jk/pretty-encoding-doc'

Doc update.

* jk/pretty-encoding-doc:
docs: clarify that --encoding can produce invalid sequences

Merge branch 'nd/dwim-wildcards-as-pathspecs'Junio C Hamano Fri, 10 Jul 2015 21:17:52 +0000 (14:17 -0700)

Merge branch 'nd/dwim-wildcards-as-pathspecs'

Test updates to a topic already in 2.5-rc.

* nd/dwim-wildcards-as-pathspecs:
Add tests for wildcard "path vs ref" disambiguation

Merge branch 'jk/maint-for-each-packed-object'Junio C Hamano Thu, 9 Jul 2015 21:31:43 +0000 (14:31 -0700)

Merge branch 'jk/maint-for-each-packed-object'

The for_each_packed_object() API function did not iterate over
objects in a packfile that hasn't been used yet.

* jk/maint-for-each-packed-object:
for_each_packed_object: automatically open pack index

Merge branch 'jc/fix-alloc-sortbuf-in-index-pack'Junio C Hamano Thu, 9 Jul 2015 21:31:42 +0000 (14:31 -0700)

Merge branch 'jc/fix-alloc-sortbuf-in-index-pack'

A hotfix for what is in 2.5-rc but not in 2.4.

* jc/fix-alloc-sortbuf-in-index-pack:
index-pack: fix allocation of sorted_by_pos array

git-multimail: update to release 1.1.1Matthieu Moy Sun, 5 Jul 2015 11:10:17 +0000 (13:10 +0200)

git-multimail: update to release 1.1.1

The only change is a bugfix: the SMTP mailer was not working with
Python 2.4.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

index-pack: fix allocation of sorted_by_pos arrayJunio C Hamano Fri, 3 Jul 2015 16:51:57 +0000 (09:51 -0700)

index-pack: fix allocation of sorted_by_pos array

When c6458e60 (index-pack: kill union delta_base to save memory,
2015-04-18) attempted to reduce the memory footprint of index-pack,
one of the key thing it did was to keep track of ref-deltas and
ofs-deltas separately.

In fix_unresolved_deltas(), however it forgot that it now wants to
look only at ref deltas in one place. The code allocated an array
for nr_unresolved, which is sum of number of ref- and ofs-deltas
minus nr_resolved, which may be larger or smaller than the number
ref-deltas. Depending on nr_resolved, this was either under or over
allocating.

Also, the old code before this change had to use 'i' and 'n' because
some of the things we see in the (old) deltas[] array we scanned
with 'i' would not make it into the sorted_by_pos[] array in the old
world order, but now because you have only ref delta in a separate
ref_deltas[] array, they increment lock&step. We no longer need
separate variables. And most importantly, we shouldn't pass the
nr_unresolved parameter, as this number does not play a role in the
working of this helper function.

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

Git 2.5.0-rc1 v2.5.0-rc1Junio C Hamano Wed, 1 Jul 2015 21:05:33 +0000 (14:05 -0700)

Git 2.5.0-rc1

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

Merge branch 'me/fetch-into-shallow-safety'Junio C Hamano Wed, 1 Jul 2015 21:02:33 +0000 (14:02 -0700)

Merge branch 'me/fetch-into-shallow-safety'

"git fetch --depth=<depth>" and "git clone --depth=<depth>" issued
a shallow transfer request even to an upload-pack that does not
support the capability.

* me/fetch-into-shallow-safety:
fetch-pack: check for shallow if depth given

Merge branch 'jc/prompt-document-ps1-state-separator'Junio C Hamano Wed, 1 Jul 2015 21:02:32 +0000 (14:02 -0700)

Merge branch 'jc/prompt-document-ps1-state-separator'

Docfix.

* jc/prompt-document-ps1-state-separator:
git-prompt.sh: document GIT_PS1_STATESEPARATOR

Merge branch 'mm/describe-doc'Junio C Hamano Wed, 1 Jul 2015 21:02:30 +0000 (14:02 -0700)

Merge branch 'mm/describe-doc'

Docfix.

* mm/describe-doc:
Documentation/describe: improve one-line summary

Merge branch 'da/mergetool-winmerge'Junio C Hamano Wed, 1 Jul 2015 21:02:30 +0000 (14:02 -0700)

Merge branch 'da/mergetool-winmerge'

Hotfix for an earlier change already in 'master' that broke the
default tool selection for mergetool.

* da/mergetool-winmerge:
mergetool-lib: fix default tool selection

Add tests for wildcard "path vs ref" disambiguationNguyễn Thái Ngọc Duy Wed, 1 Jul 2015 11:08:14 +0000 (18:08 +0700)

Add tests for wildcard "path vs ref" disambiguation

Commit 28fcc0b (pathspec: avoid the need of "--" when wildcard is used -
2015-05-02) changes how the disambiguation rules work. This patch adds
some tests to demonstrate, basically, if wildcard characters are in an
argument:

- if the argument is valid extended sha-1 syntax, "--" must be used
- otherwise the argument is considered a path, even without "--"

And wildcard can appear in extended sha-1 syntax, either as part of
regex in ":/<regex>" or as the literal path in ":<path>". The latter
case is less likely to happen in real world. But if you do ":/" a lot,
you may need to type "--" more.

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

Sync with maintJunio C Hamano Sun, 28 Jun 2015 21:51:12 +0000 (14:51 -0700)

Sync with maint

* maint:

Merge branch 'jk/stash-require-clean-index' into maintJunio C Hamano Fri, 26 Jun 2015 06:03:26 +0000 (23:03 -0700)

Merge branch 'jk/stash-require-clean-index' into maint

A hotfix for the topic already in 'master'.

* jk/stash-require-clean-index:
Revert "stash: require a clean index to apply"

Merge branch 'cb/array-size' into maintJunio C Hamano Fri, 26 Jun 2015 06:03:25 +0000 (23:03 -0700)

Merge branch 'cb/array-size' into maint

* cb/array-size:
Fix definition of ARRAY_SIZE for non-gcc builds

Git 2.5.0-rc0 v2.5.0-rc0Junio C Hamano Thu, 25 Jun 2015 18:08:39 +0000 (11:08 -0700)

Git 2.5.0-rc0

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

Merge branch 'cn/cvsimport-perl-update'Junio C Hamano Thu, 25 Jun 2015 18:08:08 +0000 (11:08 -0700)

Merge branch 'cn/cvsimport-perl-update'

* cn/cvsimport-perl-update:
cvsimport: silence regex warning appearing in Perl 5.22.

Merge branch 'cb/array-size'Junio C Hamano Thu, 25 Jun 2015 18:07:42 +0000 (11:07 -0700)

Merge branch 'cb/array-size'

* cb/array-size:
Fix definition of ARRAY_SIZE for non-gcc builds

Sync with 2.4.5Junio C Hamano Thu, 25 Jun 2015 18:04:30 +0000 (11:04 -0700)

Sync with 2.4.5

Git 2.4.5 v2.4.5Junio C Hamano Thu, 25 Jun 2015 18:03:05 +0000 (11:03 -0700)

Git 2.4.5

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

Merge branch 'sg/merge-summary-config' into maintJunio C Hamano Thu, 25 Jun 2015 18:02:16 +0000 (11:02 -0700)

Merge branch 'sg/merge-summary-config' into maint

Doc updates.

* sg/merge-summary-config:
Documentation: include 'merge.branchdesc' for merge and config as well

Merge branch 'jk/make-fix-dependencies' into maintJunio C Hamano Thu, 25 Jun 2015 18:02:15 +0000 (11:02 -0700)

Merge branch 'jk/make-fix-dependencies' into maint

Build clean-up.

* jk/make-fix-dependencies:
Makefile: silence perl/PM.stamp recipe
Makefile: avoid timestamp updates to GIT-BUILD-OPTIONS
Makefile: drop dependency between git-instaweb and gitweb

Merge branch 'sb/pack-protocol-mention-smart-http'... Junio C Hamano Thu, 25 Jun 2015 18:02:14 +0000 (11:02 -0700)

Merge branch 'sb/pack-protocol-mention-smart-http' into maint

Doc updates.

* sb/pack-protocol-mention-smart-http:
Documentation/technical/pack-protocol: mention http as possible protocol

Merge branch 'jk/die-on-bogus-worktree-late' into maintJunio C Hamano Thu, 25 Jun 2015 18:02:13 +0000 (11:02 -0700)

Merge branch 'jk/die-on-bogus-worktree-late' into maint

The setup code used to die when core.bare and core.worktree are set
inconsistently, even for commands that do not need working tree.

* jk/die-on-bogus-worktree-late:
setup_git_directory: delay core.bare/core.worktree errors

Merge branch 'pt/pull-tags-error-diag' into maintJunio C Hamano Thu, 25 Jun 2015 18:02:12 +0000 (11:02 -0700)

Merge branch 'pt/pull-tags-error-diag' into maint

There was a dead code that used to handle "git pull --tags" and
show special-cased error message, which was made irrelevant when
the semantics of the option changed back in Git 1.9 days.

* pt/pull-tags-error-diag:
pull: remove --tags error in no merge candidates case

Merge branch 'jk/color-diff-plain-is-context' into... Junio C Hamano Thu, 25 Jun 2015 18:02:11 +0000 (11:02 -0700)

Merge branch 'jk/color-diff-plain-is-context' into maint

"color.diff.plain" was a misnomer; give it 'color.diff.context' as
a more logical synonym.

* jk/color-diff-plain-is-context:
diff.h: rename DIFF_PLAIN color slot to DIFF_CONTEXT
diff: accept color.diff.context as a synonym for "plain"

Merge branch 'jk/diagnose-config-mmap-failure' into... Junio C Hamano Thu, 25 Jun 2015 18:02:10 +0000 (11:02 -0700)

Merge branch 'jk/diagnose-config-mmap-failure' into maint

The configuration reader/writer uses mmap(2) interface to access
the files; when we find a directory, it barfed with "Out of memory?".

* jk/diagnose-config-mmap-failure:
xmmap(): drop "Out of memory?"
config.c: rewrite ENODEV into EISDIR when mmap fails
config.c: avoid xmmap error messages
config.c: fix mmap leak when writing config
read-cache.c: drop PROT_WRITE from mmap of index

Merge branch 'jk/squelch-missing-link-warning-for-unrea... Junio C Hamano Thu, 25 Jun 2015 18:02:09 +0000 (11:02 -0700)

Merge branch 'jk/squelch-missing-link-warning-for-unreachable' into maint

Recent "git prune" traverses young unreachable objects to safekeep
old objects in the reachability chain from them, which sometimes
caused error messages that are unnecessarily alarming.

* jk/squelch-missing-link-warning-for-unreachable:
suppress errors on missing UNINTERESTING links
silence broken link warnings with revs->ignore_missing_links
add quieter versions of parse_{tree,commit}

Merge branch 'mm/rebase-i-post-rewrite-exec' into maintJunio C Hamano Thu, 25 Jun 2015 18:02:09 +0000 (11:02 -0700)

Merge branch 'mm/rebase-i-post-rewrite-exec' into maint

"git rebase -i" fired post-rewrite hook when it shouldn't (namely,
when it was told to stop sequencing with 'exec' insn).

* mm/rebase-i-post-rewrite-exec:
t5407: use <<- to align the expected output
rebase -i: fix post-rewrite hook with failed exec command
rebase -i: demonstrate incorrect behavior of post-rewrite

Merge branch 'nd/diff-i-t-a'Junio C Hamano Thu, 25 Jun 2015 17:47:46 +0000 (10:47 -0700)

Merge branch 'nd/diff-i-t-a'

* nd/diff-i-t-a:
Revert "diff-lib.c: adjust position of i-t-a entries in diff"

cvsimport: silence regex warning appearing in Perl... Christian Neukirchen Wed, 24 Jun 2015 14:04:20 +0000 (16:04 +0200)

cvsimport: silence regex warning appearing in Perl 5.22.

Since Perl 5.22, "A literal '{' should now be escaped in a pattern".
Silence the recently added warning by using \{ instead.

Signed-off-by: Christian Neukirchen <chneukirchen@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix definition of ARRAY_SIZE for non-gcc buildsCharles Bailey Wed, 24 Jun 2015 22:12:07 +0000 (23:12 +0100)

Fix definition of ARRAY_SIZE for non-gcc builds

The improved ARRAY_SIZE macro uses BARF_UNLESS_AN_ARRAY which expands
to a valid check for recent gcc versions and to 0 for older gcc
versions but is not defined on non-gcc builds.

Non-gcc builds need this macro to expand to 0 as well. The current outer
test (defined(__GNUC__) && (__GNUC__ >= 3)) is a strictly weaker
condition than the inner test (GIT_GNUC_PREREQ(3, 1)) so we can omit the
outer test and cause the BARF_UNLESS_AN_ARRAY macro to be defined
correctly on non-gcc builds as well as gcc builds with older versions.

Signed-off-by: Charles Bailey <cbailey32@bloomberg.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Ninth batch for 2.5Junio C Hamano Wed, 24 Jun 2015 19:27:20 +0000 (12:27 -0700)

Ninth batch for 2.5

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

Merge branch 'jk/stash-require-clean-index'Junio C Hamano Wed, 24 Jun 2015 19:21:59 +0000 (12:21 -0700)

Merge branch 'jk/stash-require-clean-index'

A hotfix for the topic already in 'master'.

* jk/stash-require-clean-index:
Revert "stash: require a clean index to apply"

Merge branch 'pa/auto-gc-mac-osx'Junio C Hamano Wed, 24 Jun 2015 19:21:58 +0000 (12:21 -0700)

Merge branch 'pa/auto-gc-mac-osx'

Recent Mac OS X updates breaks the logic to detect that the machine
is on the AC power in the sample pre-auto-gc script.

* pa/auto-gc-mac-osx:
hooks/pre-auto-gc: adjust power checking for newer OS X

Merge branch 'pt/t0302-needs-sanity'Junio C Hamano Wed, 24 Jun 2015 19:21:57 +0000 (12:21 -0700)

Merge branch 'pt/t0302-needs-sanity'

* pt/t0302-needs-sanity:
t0302: "unreadable" test needs SANITY prereq

Merge branch 'ld/p4-changes-block-size'Junio C Hamano Wed, 24 Jun 2015 19:21:56 +0000 (12:21 -0700)

Merge branch 'ld/p4-changes-block-size'

More Perforce row number limit workaround for "git p4".

* ld/p4-changes-block-size:
git-p4: fixing --changes-block-size handling
git-p4: add tests for non-numeric revision range
git-p4: test with limited p4 server results
git-p4: additional testing of --changes-block-size

Merge branch 'fk/doc-format-patch-vn'Junio C Hamano Wed, 24 Jun 2015 19:21:56 +0000 (12:21 -0700)

Merge branch 'fk/doc-format-patch-vn'

Docfix.

* fk/doc-format-patch-vn:
doc: format-patch: fix typo

Merge branch 'sg/commit-cleanup-scissors'Junio C Hamano Wed, 24 Jun 2015 19:21:55 +0000 (12:21 -0700)

Merge branch 'sg/commit-cleanup-scissors'

"git commit --cleanup=scissors" was not careful enough to protect
against getting fooled by a line that looked like scissors.

* sg/commit-cleanup-scissors:
commit: cope with scissors lines in commit message

Merge branch 'jk/index-pack-reduce-recheck'Junio C Hamano Wed, 24 Jun 2015 19:21:54 +0000 (12:21 -0700)

Merge branch 'jk/index-pack-reduce-recheck'

Disable "have we lost a race with competing repack?" check while
receiving a huge object transfer that runs index-pack.

* jk/index-pack-reduce-recheck:
index-pack: avoid excessive re-reading of pack directory

Merge branch 'af/tcsh-completion-noclobber'Junio C Hamano Wed, 24 Jun 2015 19:21:53 +0000 (12:21 -0700)

Merge branch 'af/tcsh-completion-noclobber'

The tcsh completion writes a bash scriptlet but that would have
failed for users with noclobber set.

* af/tcsh-completion-noclobber:
git-completion.tcsh: fix redirect with noclobber

Merge branch 'mh/reporting-broken-refs-from-for-each... Junio C Hamano Wed, 24 Jun 2015 19:21:51 +0000 (12:21 -0700)

Merge branch 'mh/reporting-broken-refs-from-for-each-ref'

"git for-each-ref" reported "missing object" for 0{40} when it
encounters a broken ref. The lack of object whose name is 0{40} is
not the problem; the ref being broken is.

* mh/reporting-broken-refs-from-for-each-ref:
read_loose_refs(): treat NULL_SHA1 loose references as broken
read_loose_refs(): simplify function logic
for-each-ref: report broken references correctly
t6301: new tests of for-each-ref error handling

Merge branch 'sg/completion-commit-cleanup'Junio C Hamano Wed, 24 Jun 2015 19:21:51 +0000 (12:21 -0700)

Merge branch 'sg/completion-commit-cleanup'

* sg/completion-commit-cleanup:
completion: teach 'scissors' mode to 'git commit --cleanup='

Merge branch 'pt/am-abort-fix'Junio C Hamano Wed, 24 Jun 2015 19:21:49 +0000 (12:21 -0700)

Merge branch 'pt/am-abort-fix'

Various fixes around "git am" that applies a patch to a history
that is not there yet.

* pt/am-abort-fix:
am --abort: keep unrelated commits on unborn branch
am --abort: support aborting to unborn branch
am --abort: revert changes introduced by failed 3way merge
am --skip: support skipping while on unborn branch
am -3: support 3way merge on unborn branch
am --skip: revert changes introduced by failed 3way merge

Merge branch 'nd/untracked-cache'Junio C Hamano Wed, 24 Jun 2015 19:21:49 +0000 (12:21 -0700)

Merge branch 'nd/untracked-cache'

Hotfix for the 'untracked-cache' topic that is already in 'master'.

* nd/untracked-cache:
read-cache: fix untracked cache invalidation when split-index is used

Merge branch 'mh/fsck-reflog-entries'Junio C Hamano Wed, 24 Jun 2015 19:21:48 +0000 (12:21 -0700)

Merge branch 'mh/fsck-reflog-entries'

"git fsck" used to ignore missing or invalid objects recorded in reflog.

* mh/fsck-reflog-entries:
fsck: report errors if reflog entries point at invalid objects
fsck_handle_reflog_sha1(): new function

Merge branch 'js/sleep-without-select'Junio C Hamano Wed, 24 Jun 2015 19:21:47 +0000 (12:21 -0700)

Merge branch 'js/sleep-without-select'

Portability fix.

* js/sleep-without-select:
lockfile: wait using sleep_millisec() instead of select()
lockfile: convert retry timeout computations to millisecond
help.c: wrap wait-only poll() invocation in sleep_millisec()
lockfile: replace random() by rand()

Merge branch 'es/utf8-stupid-compiler-workaround'Junio C Hamano Wed, 24 Jun 2015 19:21:46 +0000 (12:21 -0700)

Merge branch 'es/utf8-stupid-compiler-workaround'

A compilation workaround.

* es/utf8-stupid-compiler-workaround:
utf8: NO_ICONV: silence uninitialized variable warning

Merge branch 'rl/am-3way-config'Junio C Hamano Wed, 24 Jun 2015 19:21:45 +0000 (12:21 -0700)

Merge branch 'rl/am-3way-config'

"git am" learned am.threeWay configuration variable.

* rl/am-3way-config:
git-am: add am.threeWay config variable
t4150-am: refactor am -3 tests
git-am.sh: fix initialization of the threeway variable

Merge branch 'jc/ll-merge-expose-path'Junio C Hamano Wed, 24 Jun 2015 19:21:45 +0000 (12:21 -0700)

Merge branch 'jc/ll-merge-expose-path'

Traditionally, external low-level 3-way merge drivers are expected
to produce their results based solely on the contents of the three
variants given in temporary files named by %O, %A and %B on their
command line. Additionally allow them to look at the final path
(given by %P).

* jc/ll-merge-expose-path:
ll-merge: pass the original path to external drivers

Merge branch 'es/osx-header-pollutes-mask-macro'Junio C Hamano Wed, 24 Jun 2015 19:21:44 +0000 (12:21 -0700)

Merge branch 'es/osx-header-pollutes-mask-macro'

* es/osx-header-pollutes-mask-macro:
ewah: use less generic macro name
ewah/bitmap: silence warning about MASK macro redefinition

Merge branch 'es/configure-getdelim'Junio C Hamano Wed, 24 Jun 2015 19:21:43 +0000 (12:21 -0700)

Merge branch 'es/configure-getdelim'

Auto-detect availability of getdelim() that helps optimized version
of strbuf_getwholeline().

* es/configure-getdelim:
configure: add getdelim() check
config.mak.uname: Darwin: define HAVE_GETDELIM for modern OS X releases

Merge branch 'pt/pull-optparse'Junio C Hamano Wed, 24 Jun 2015 19:21:42 +0000 (12:21 -0700)

Merge branch 'pt/pull-optparse'

"git pull" has become more aware of the options meant for
underlying "git fetch" and then learned to use parse-options
parser.

* pt/pull-optparse:
pull: use git-rev-parse --parseopt for option parsing
pull: handle git-fetch's options as well

Merge branch 'qn/blame-show-email'Junio C Hamano Wed, 24 Jun 2015 19:21:41 +0000 (12:21 -0700)

Merge branch 'qn/blame-show-email'

"git blame" learned blame.showEmail configuration variable.

* qn/blame-show-email:
blame: add blame.showEmail configuration

Merge branch 'jc/do-not-feed-tags-to-clear-commit-marks'Junio C Hamano Wed, 24 Jun 2015 19:21:40 +0000 (12:21 -0700)

Merge branch 'jc/do-not-feed-tags-to-clear-commit-marks'

"git format-patch --ignore-if-upstream A..B" did not like to be fed
tags as boundary commits.

* jc/do-not-feed-tags-to-clear-commit-marks:
format-patch: do not feed tags to clear_commit_marks()

Merge branch 'es/send-email-sendmail-alias'Junio C Hamano Wed, 24 Jun 2015 19:21:39 +0000 (12:21 -0700)

Merge branch 'es/send-email-sendmail-alias'

"git send-email" learned to handle more forms of sendmail style
aliases file.

* es/send-email-sendmail-alias:
send-email: further warn about unsupported sendmail aliases features
t9001: add sendmail aliases line continuation tests
t9001: refactor sendmail aliases test infrastructure
send-email: implement sendmail aliases line continuation support
send-email: simplify sendmail aliases comment and blank line recognizer
send-email: refactor sendmail aliases parser
send-email: fix style: cuddle 'elsif' and 'else' with closing brace
send-email: drop noise comments which merely repeat what code says
send-email: visually distinguish sendmail aliases parser warnings
send-email: further document missing sendmail aliases functionality

Merge branch 'jc/apply-reject-noop-hunk'Junio C Hamano Wed, 24 Jun 2015 19:21:39 +0000 (12:21 -0700)

Merge branch 'jc/apply-reject-noop-hunk'

"git apply" cannot diagnose a patch corruption when the breakage is
to mark the length of the hunk shorter than it really is on the
hunk header line "@@ -l,k +m,n @@"; one special case it could is
when the hunk becomes no-op (e.g. k == n == 2 for two-line context
patch output), and it learned how to do so.

* jc/apply-reject-noop-hunk:
apply: reject a hunk that does not do anything

Revert "diff-lib.c: adjust position of i-t-a entries... Junio C Hamano Tue, 23 Jun 2015 17:27:47 +0000 (10:27 -0700)

Revert "diff-lib.c: adjust position of i-t-a entries in diff"

This reverts commit d95d728aba06a34394d15466045cbdabdada58a2.

It turns out that many other commands that need to interact with the
result of running diff-files and diff-index, e.g. "git apply", "git
rm", etc., need to be adjusted to the new world order it brings in.
For example, it would break this sequence to correct a whitespace
breakage in the parts you changed:

git add -N file
git diff --cached file | git apply --cached --whitespace=fix
git checkout file

In the old world order, "diff" showed a patch to modify an existing
empty file by adding its full contents, and "apply" updated the
index by modifying the existing empty blob (which is what an
Intent-to-Add entry records in the index) with that patch.

In the new world order, "diff" shows a patch to create a new file
with its full contents, but because "apply" thinks that the i-t-a
entry already exists in the index, it refused to accept a creation.

Adjusting "apply" to this new world order is easy, but we need to
assess the extent of the damage to the rest of the system the new
world order brought in before going forward and adjust them all,
after which we can resurrect the commit being reverted here.

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

for_each_packed_object: automatically open pack indexJeff King Mon, 22 Jun 2015 10:40:50 +0000 (06:40 -0400)

for_each_packed_object: automatically open pack index

When for_each_packed_object is called, we call
prepare_packed_git() to make sure we have the actual list of
packs. But the latter does not actually open the pack
indices, meaning that pack->nr_objects may simply be 0 if
the pack has not otherwise been used since the program
started.

In practice, this didn't come up for the current callers,
because they iterate the packed objects only after iterating
all reachable objects (so for it to matter you would have to
have a pack consisting only of unreachable objects). But it
is a dangerous and confusing interface that should be fixed
for future callers.

Note that we do not end the iteration when a pack cannot be
opened, but we do return an error. That lets you complete
the iteration even in actively-repacked repository where an
.idx file may racily go away, but it also lets callers know
that they may not have gotten the complete list (which the
current reachability-check caller does care about).

We have to tweak one of the prune tests due to the changed
return value; an earlier test creates bogus .idx files and
does not clean them up. Having to make this tweak is a good
thing; it means we will not prune in a broken repository,
and the test confirms that we do not negatively impact a
more lenient caller, count-objects.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

mergetool-lib: fix default tool selectionMichael J Gruber Fri, 19 Jun 2015 09:30:55 +0000 (11:30 +0200)

mergetool-lib: fix default tool selection

When no diff nor merge tool is specified (config, option), mergetool-lib
is supposed to choose a default tool from a set of tools. That set is
constructed dynamically depending on the environment (graphical, editor
setting) as a space separated string of tool names.

719518f (mergetool--lib: set IFS for difftool and mergetool, 2015-05-20)
introduced a newline as IFS which breaks the parsing of the space
separated list into items, resulting in a failed search for an available
tool.

Set IFS to a space locally for the tool search.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-multimail: update to release 1.1.0Matthieu Moy Thu, 18 Jun 2015 08:46:04 +0000 (10:46 +0200)

git-multimail: update to release 1.1.0

The changes are described in CHANGES.

Contributions-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Contributions-by: Richard Hansen <rhansen@rhansen.org>
Contributions-by: Michael Haggerty <mhagger@alum.mit.edu>
Contributions-by: Elijah Newren <newren@gmail.com>
Contributions-by: Luke Mewburn <luke@mewburn.net>
Contributions-by: Dave Boutcher <daveboutcher@gmail.com>
Contributions-by: Azat Khuzhin <a3at.mail@gmail.com>
Contributions-by: Sebastian Schuberth <sschuberth@gmail.com>
Contributions-by: Mikko Johannes Koivunalho <mikko.koivunalho@iki.fi>
Contributions-by: Elijah Newren <newren@palantir.com>
Contributions-by: Benoît Ryder <benoit@ryder.fr>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

docs: clarify that --encoding can produce invalid sequencesJeff King Wed, 17 Jun 2015 18:46:08 +0000 (14:46 -0400)

docs: clarify that --encoding can produce invalid sequences

In the common case that the commit encoding matches the
output encoding, we do not touch the buffer at all, which
makes things much more efficient. But it might be unclear to
a consumer that we will pass through bogus sequences.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fetch-pack: check for shallow if depth givenMike Edgar Wed, 17 Jun 2015 11:48:14 +0000 (07:48 -0400)

fetch-pack: check for shallow if depth given

When a repository is first fetched as a shallow clone, either by
git-clone or by fetching into an empty repo, the server's capabilities
are not currently consulted. The client will send shallow requests even
if the server does not understand them, and the resulting error may be
unhelpful to the user. This change pre-emptively checks so we can exit
with a helpful error if necessary.

Signed-off-by: Mike Edgar <adgar@google.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Eighth batch for 2.5Junio C Hamano Tue, 16 Jun 2015 21:39:31 +0000 (14:39 -0700)

Eighth batch for 2.5

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

Sync with 2.4.4Junio C Hamano Tue, 16 Jun 2015 21:39:01 +0000 (14:39 -0700)

Sync with 2.4.4

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

Git 2.4.4 v2.4.4Junio C Hamano Tue, 16 Jun 2015 21:38:01 +0000 (14:38 -0700)

Git 2.4.4

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

Merge branch 'jk/clone-dissociate' into maintJunio C Hamano Tue, 16 Jun 2015 21:33:52 +0000 (14:33 -0700)

Merge branch 'jk/clone-dissociate' into maint

Code clean-up.

* jk/clone-dissociate:
clone: reorder --dissociate and --reference options
clone: use OPT_STRING_LIST for --reference

Merge branch 'sb/submodule-doc-intro' into maintJunio C Hamano Tue, 16 Jun 2015 21:33:52 +0000 (14:33 -0700)

Merge branch 'sb/submodule-doc-intro' into maint

* sb/submodule-doc-intro:
submodule doc: reorder introductory paragraphs

Merge branch 'sb/glossary-submodule' into maintJunio C Hamano Tue, 16 Jun 2015 21:33:51 +0000 (14:33 -0700)

Merge branch 'sb/glossary-submodule' into maint

* sb/glossary-submodule:
glossary: add "remote", "submodule", "superproject"

Merge branch 'ah/usage-strings' into maintJunio C Hamano Tue, 16 Jun 2015 21:33:50 +0000 (14:33 -0700)

Merge branch 'ah/usage-strings' into maint

A few usage string updates.

* ah/usage-strings:
blame, log: format usage strings similarly to those in documentation

Merge branch 'mc/commit-doc-grammofix' into maintJunio C Hamano Tue, 16 Jun 2015 21:33:49 +0000 (14:33 -0700)

Merge branch 'mc/commit-doc-grammofix' into maint

Doc grammar fix.

* mc/commit-doc-grammofix:
Documentation/git-commit: grammofix

Merge branch 'rs/janitorial' into maintJunio C Hamano Tue, 16 Jun 2015 21:33:47 +0000 (14:33 -0700)

Merge branch 'rs/janitorial' into maint

Code clean-up.

* rs/janitorial:
dir: remove unused variable sb
clean: remove unused variable buf
use file_exists() to check if a file exists in the worktree

Merge branch 'sb/test-bitmap-free-at-end' into maintJunio C Hamano Tue, 16 Jun 2015 21:33:47 +0000 (14:33 -0700)

Merge branch 'sb/test-bitmap-free-at-end' into maint

An earlier leakfix to bitmap testing code was incomplete.

* sb/test-bitmap-free-at-end:
test_bitmap_walk: free bitmap with bitmap_free

Merge branch 'dt/clean-pathspec-filter-then-lstat'... Junio C Hamano Tue, 16 Jun 2015 21:33:46 +0000 (14:33 -0700)

Merge branch 'dt/clean-pathspec-filter-then-lstat' into maint

"git clean pathspec..." tried to lstat(2) and complain even for
paths outside the given pathspec.

* dt/clean-pathspec-filter-then-lstat:
clean: only lstat files in pathspec

Merge branch 'jk/http-backend-deadlock' into maintJunio C Hamano Tue, 16 Jun 2015 21:33:45 +0000 (14:33 -0700)

Merge branch 'jk/http-backend-deadlock' into maint

Communication between the HTTP server and http_backend process can
lead to a dead-lock when relaying a large ref negotiation request.
Diagnose the situation better, and mitigate it by reading such a
request first into core (to a reasonable limit).

* jk/http-backend-deadlock:
http-backend: spool ref negotiation requests to buffer
t5551: factor out tag creation
http-backend: fix die recursion with custom handler

Merge branch 'jh/filter-empty-contents' into maintJunio C Hamano Tue, 16 Jun 2015 21:33:44 +0000 (14:33 -0700)

Merge branch 'jh/filter-empty-contents' into maint

The clean/smudge interface did not work well when filtering an
empty contents (failed and then passed the empty input through).
It can be argued that a filter that produces anything but empty for
an empty input is nonsense, but if the user wants to do strange
things, then why not?

* jh/filter-empty-contents:
sha1_file: pass empty buffer to index empty file

Merge branch 'jk/stash-options' into maintJunio C Hamano Tue, 16 Jun 2015 21:33:43 +0000 (14:33 -0700)

Merge branch 'jk/stash-options' into maint

Make "git stash something --help" error out, so that users can
safely say "git stash drop --help".

* jk/stash-options:
stash: recognize "--help" for subcommands
stash: complain about unknown flags

Merge branch 'mm/log-format-raw-doc' into maintJunio C Hamano Tue, 16 Jun 2015 21:33:42 +0000 (14:33 -0700)

Merge branch 'mm/log-format-raw-doc' into maint

Clarify that "log --raw" and "log --format=raw" are unrelated
concepts.

* mm/log-format-raw-doc:
Documentation/log: clarify sha1 non-abbreviation in log --raw
Documentation/log: clarify what --raw means

Merge branch 'ep/do-not-feed-a-pointer-to-array-size... Junio C Hamano Tue, 16 Jun 2015 21:33:41 +0000 (14:33 -0700)

Merge branch 'ep/do-not-feed-a-pointer-to-array-size' into maint

Catch a programmer mistake to feed a pointer not an array to
ARRAY_SIZE() macro, by using a couple of GCC extensions.

* ep/do-not-feed-a-pointer-to-array-size:
git-compat-util.h: implement a different ARRAY_SIZE macro for for safely deriving the size of array

Merge branch 'nd/slim-index-pack-memory-usage'Junio C Hamano Tue, 16 Jun 2015 21:27:08 +0000 (14:27 -0700)

Merge branch 'nd/slim-index-pack-memory-usage'

An earlier optimization broke index-pack for a large object
transfer; this fixes it before the breakage hits any released
version.

* nd/slim-index-pack-memory-usage:
index-pack: fix truncation of off_t in comparison

Merge branch 'sb/pack-protocol-mention-smart-http'Junio C Hamano Tue, 16 Jun 2015 21:27:07 +0000 (14:27 -0700)

Merge branch 'sb/pack-protocol-mention-smart-http'

Doc updates.

* sb/pack-protocol-mention-smart-http:
Documentation/technical/pack-protocol: mention http as possible protocol

Merge branch 'jk/make-fix-dependencies'Junio C Hamano Tue, 16 Jun 2015 21:27:06 +0000 (14:27 -0700)

Merge branch 'jk/make-fix-dependencies'

Build clean-up.

* jk/make-fix-dependencies:
Makefile: silence perl/PM.stamp recipe
Makefile: avoid timestamp updates to GIT-BUILD-OPTIONS
Makefile: drop dependency between git-instaweb and gitweb

Merge branch 'jk/die-on-bogus-worktree-late'Junio C Hamano Tue, 16 Jun 2015 21:27:06 +0000 (14:27 -0700)

Merge branch 'jk/die-on-bogus-worktree-late'

The setup code used to die when core.bare and core.worktree are set
inconsistently, even for commands that do not need working tree.

* jk/die-on-bogus-worktree-late:
setup_git_directory: delay core.bare/core.worktree errors

Merge branch 'sg/merge-summary-config'Junio C Hamano Tue, 16 Jun 2015 21:27:05 +0000 (14:27 -0700)

Merge branch 'sg/merge-summary-config'

Doc updates.

* sg/merge-summary-config:
Documentation: include 'merge.branchdesc' for merge and config as well

Merge branch 'ah/send-email-sendmail-alias'Junio C Hamano Tue, 16 Jun 2015 21:27:04 +0000 (14:27 -0700)

Merge branch 'ah/send-email-sendmail-alias'

"git send-email" learned the alias file format used by the sendmail
program (in an abbreviated form).

* ah/send-email-sendmail-alias:
t9001: write $HOME/, not ~/, to help shells without tilde expansion
send-email: add sendmail email aliases format

Documentation/describe: improve one-line summaryMatthieu Moy Tue, 16 Jun 2015 13:16:38 +0000 (15:16 +0200)

Documentation/describe: improve one-line summary

git describe does not show 'the most recent tag that is reachable from a
commit', but a descriptive name based on this tag. Fix the description to
reflect that.

Suggested-by: Albert Netymk <albertnetymk@gmail.com>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Revert "stash: require a clean index to apply"Jeff King Mon, 15 Jun 2015 18:27:22 +0000 (14:27 -0400)

Revert "stash: require a clean index to apply"

This reverts commit ed178ef13a26136d86ff4e33bb7b1afb5033f908.

That commit was an attempt to improve the safety of applying
a stash, because the application process may create
conflicted index entries, after which it is hard to restore
the original index state.

Unfortunately, this hurts some common workflows around "git
stash -k", like:

git add -p ;# (1) stage set of proposed changes
git stash -k ;# (2) get rid of everything else
make test ;# (3) make sure proposal is reasonable
git stash apply ;# (4) restore original working tree

If you "git commit" between steps (3) and (4), then this
just works. However, if these steps are part of a pre-commit
hook, you don't have that opportunity (you have to restore
the original state regardless of whether the tests passed or
failed).

It's possible that we could provide better tools for this
sort of workflow. In particular, even before ed178ef, it
could fail with a conflict if there were conflicting hunks
in the working tree and index (since the "stash -k" puts the
index version into the working tree, and we then attempt to
apply the differences between HEAD and the old working tree
on top of that). But the fact remains that people have been
using it happily for a while, and the safety provided by
ed178ef is simply not that great. Let's revert it for now.
In the long run, people can work on improving stash for this
sort of workflow, but the safety tradeoff is not worth it in
the meantime.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge tag 'l10n-2.4-maint-de-updates' of git://github... Junio C Hamano Sun, 14 Jun 2015 21:24:49 +0000 (14:24 -0700)

Merge tag 'l10n-2.4-maint-de-updates' of git://github.com/git-l10n/git-po into maint

l10n-2.4-maint-de-updates

* tag 'l10n-2.4-maint-de-updates' of git://github.com/git-l10n/git-po:
l10n: de.po: translation fix for fall-back to 3way merge
l10n: de.po: punctuation fixes
l10n: de.po: grammar fix
l10n: de.po: change error message from "sagen" to "Meinten Sie"

hooks/pre-auto-gc: adjust power checking for newer... Panagiotis Astithas Thu, 11 Jun 2015 14:37:25 +0000 (17:37 +0300)

hooks/pre-auto-gc: adjust power checking for newer OS X

The output of "pmset -g batt" changed at some point from "Currently
drawing from 'AC Power'" to the slightly different "Now drawing from
'AC Power'". Starting the match from "drawing" makes the check work
in both old and new versions of OS X.

Signed-off-by: Panagiotis Astithas <pastith@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t0302: "unreadable" test needs SANITY prereqPaul Tan Fri, 12 Jun 2015 13:29:58 +0000 (21:29 +0800)

t0302: "unreadable" test needs SANITY prereq

The test expects that "chmod -r ~/.git-credentials" would make it
unreadable to the user, and thus needs the SANITY prerequisite.

Reported-by: Jean-Yves LENHOF <jean-yves@lenhof.eu.org>
Signed-off-by: Paul Tan <pyokagan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: de.po: translation fix for fall-back to 3way... Michael J Gruber Tue, 19 May 2015 08:51:34 +0000 (10:51 +0200)

l10n: de.po: translation fix for fall-back to 3way merge

The English version is correct, but misleading: It is not the 3way merge
that is being patched also, but that is being fallen back to also.

The German version translates the former meaning. Make it translate the
latter.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>

l10n: de.po: punctuation fixesMichael J Gruber Tue, 19 May 2015 08:51:33 +0000 (10:51 +0200)

l10n: de.po: punctuation fixes

This respects the ellipsis style used in de.po.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>

l10n: de.po: grammar fixMichael J Gruber Tue, 19 May 2015 08:51:32 +0000 (10:51 +0200)

l10n: de.po: grammar fix

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>

l10n: de.po: change error message from "sagen" to ... Phillip Sz Sat, 9 May 2015 11:28:55 +0000 (13:28 +0200)

l10n: de.po: change error message from "sagen" to "Meinten Sie"

We should not use "sagen" if someone has written something wrong.
Although it's "say" in English, we should not use it in German
and instead use our normal error message.

Signed-off-by: Phillip Sz <phillip.szelat@gmail.com>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>

Second half of seventh batchJunio C Hamano Thu, 11 Jun 2015 16:35:25 +0000 (09:35 -0700)

Second half of seventh batch

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

Merge branch 'tb/complete-sequencing'Junio C Hamano Thu, 11 Jun 2015 16:29:59 +0000 (09:29 -0700)

Merge branch 'tb/complete-sequencing'

The bash completion script (in contrib/) learned a few options that
"git revert" takes.

* tb/complete-sequencing:
completion: suggest sequencer commands for revert

Merge branch 'jk/squelch-missing-link-warning-for-unrea... Junio C Hamano Thu, 11 Jun 2015 16:29:58 +0000 (09:29 -0700)

Merge branch 'jk/squelch-missing-link-warning-for-unreachable'

Recent "git prune" traverses young unreachable objects to safekeep
old objects in the reachability chain from them, which sometimes
caused error messages that are unnecessarily alarming.

* jk/squelch-missing-link-warning-for-unreachable:
suppress errors on missing UNINTERESTING links
silence broken link warnings with revs->ignore_missing_links
add quieter versions of parse_{tree,commit}

Merge branch 'pt/pull-tests'Junio C Hamano Thu, 11 Jun 2015 16:29:58 +0000 (09:29 -0700)

Merge branch 'pt/pull-tests'

Add more test coverage to "git pull".

* pt/pull-tests:
t5520: check reflog action in fast-forward merge
t5521: test --dry-run does not make any changes
t5520: test --rebase failure on unborn branch with index
t5520: test --rebase with multiple branches
t5520: test work tree fast-forward when fetch updates head
t5520: test for failure if index has unresolved entries
t5520: test no merge candidates cases
t5520: prevent field splitting in content comparisons

Merge branch 'sb/glossary-submodule'Junio C Hamano Thu, 11 Jun 2015 16:29:57 +0000 (09:29 -0700)

Merge branch 'sb/glossary-submodule'

* sb/glossary-submodule:
glossary: add "remote", "submodule", "superproject"

Merge branch 'sb/submodule-doc-intro'Junio C Hamano Thu, 11 Jun 2015 16:29:56 +0000 (09:29 -0700)

Merge branch 'sb/submodule-doc-intro'

* sb/submodule-doc-intro:
submodule doc: reorder introductory paragraphs