gitweb.git
Merge branch 'sb/push-options'Junio C Hamano Wed, 3 Aug 2016 22:10:24 +0000 (15:10 -0700)

Merge branch 'sb/push-options'

"git push" learned to accept and pass extra options to the
receiving end so that hooks can read and react to them.

* sb/push-options:
add a test for push options
push: accept push options
receive-pack: implement advertising and receiving push options
push options: {pre,post}-receive hook learns about push options

Merge branch 'ew/http-walker'Junio C Hamano Wed, 3 Aug 2016 22:10:24 +0000 (15:10 -0700)

Merge branch 'ew/http-walker'

Dumb http transport on the client side has been optimized.

* ew/http-walker:
list: avoid incompatibility with *BSD sys/queue.h
http-walker: reduce O(n) ops with doubly-linked list
http: avoid disconnecting on 404s for loose objects
http-walker: remove unused parameter from fetch_object

Merge branch 'pm/build-persistent-https-with-recent-go'Junio C Hamano Wed, 3 Aug 2016 22:10:23 +0000 (15:10 -0700)

Merge branch 'pm/build-persistent-https-with-recent-go'

The build procedure for "git persistent-https" helper (in contrib/)
has been updated so that it can be built with more recent versions
of Go.

* pm/build-persistent-https-with-recent-go:
contrib/persistent-https: use Git version for build label
contrib/persistent-https: update ldflags syntax for Go 1.7+

Merge branch 'da/subtree-2.9-regression'Junio C Hamano Wed, 3 Aug 2016 22:10:22 +0000 (15:10 -0700)

Merge branch 'da/subtree-2.9-regression'

"git merge" in Git v2.9 was taught to forbid merging an unrelated
lines of history by default, but that is exactly the kind of thing
the "--rejoin" mode of "git subtree" (in contrib/) wants to do.
"git subtree" has been taught to use the "--allow-unrelated-histories"
option to override the default.

* da/subtree-2.9-regression:
subtree: fix "git subtree split --rejoin"
t7900-subtree.sh: fix quoting and broken && chains

Merge branch 'os/no-verify-skips-commit-msg-too'Junio C Hamano Wed, 3 Aug 2016 22:10:22 +0000 (15:10 -0700)

Merge branch 'os/no-verify-skips-commit-msg-too'

"git commit --help" said "--no-verify" is only about skipping the
pre-commit hook, and failed to say that it also skipped the
commit-msg hook.

* os/no-verify-skips-commit-msg-too:
commit: describe that --no-verify skips the commit-msg hook in the help text

Sync with maintJunio C Hamano Thu, 28 Jul 2016 21:21:18 +0000 (14:21 -0700)

Sync with maint

* maint:
Some fixes for 2.9.3

Eighth batch of topics for 2.10Junio C Hamano Thu, 28 Jul 2016 20:14:53 +0000 (13:14 -0700)

Eighth batch of topics for 2.10

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

t9100: portability fixJunio C Hamano Thu, 28 Jul 2016 21:20:13 +0000 (14:20 -0700)

t9100: portability fix

Do not say "export VAR=VAL"; "VAR=VAL && export VAR" is always more
portable.

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

Merge branch 'master' of git://git.bogomips.org/git-svnJunio C Hamano Thu, 28 Jul 2016 20:13:53 +0000 (13:13 -0700)

Merge branch 'master' of git://git.bogomips.org/git-svn

* 'master' of git://git.bogomips.org/git-svn:
git-svn: allow --version to work anywhere
git-svn: document svn.authorsProg in config

Some fixes for 2.9.3Junio C Hamano Thu, 28 Jul 2016 18:28:32 +0000 (11:28 -0700)

Some fixes for 2.9.3

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

Merge branch 'ak/lazy-prereq-mktemp' into maintJunio C Hamano Thu, 28 Jul 2016 18:26:03 +0000 (11:26 -0700)

Merge branch 'ak/lazy-prereq-mktemp' into maint

A test that unconditionally used "mktemp" learned that the command
is not necessarily available everywhere.

* ak/lazy-prereq-mktemp:
t7610: test for mktemp before test execution

Merge branch 'nd/icase' into maintJunio C Hamano Thu, 28 Jul 2016 18:26:03 +0000 (11:26 -0700)

Merge branch 'nd/icase' into maint

"git grep -i" has been taught to fold case in non-ascii locales
correctly.

* nd/icase:
grep.c: reuse "icase" variable
diffcore-pickaxe: support case insensitive match on non-ascii
diffcore-pickaxe: Add regcomp_or_die()
grep/pcre: support utf-8
gettext: add is_utf8_locale()
grep/pcre: prepare locale-dependent tables for icase matching
grep: rewrite an if/else condition to avoid duplicate expression
grep/icase: avoid kwsset when -F is specified
grep/icase: avoid kwsset on literal non-ascii strings
test-regex: expose full regcomp() to the command line
test-regex: isolate the bug test code
grep: break down an "if" stmt in preparation for next changes

Merge branch 'sb/submodule-parallel-fetch' into maintJunio C Hamano Thu, 28 Jul 2016 18:26:02 +0000 (11:26 -0700)

Merge branch 'sb/submodule-parallel-fetch' into maint

Fix recently introduced codepaths that are involved in parallel
submodule operations, which gave up on reading too early, and
could have wasted CPU while attempting to write under a corner
case condition.

* sb/submodule-parallel-fetch:
hoist out handle_nonblock function for xread and xwrite
xwrite: poll on non-blocking FDs
xread: retry after poll on EAGAIN/EWOULDBLOCK

Merge branch 'dk/blame-move-no-reason-for-1-line-contex... Junio C Hamano Thu, 28 Jul 2016 18:26:01 +0000 (11:26 -0700)

Merge branch 'dk/blame-move-no-reason-for-1-line-context' into maint

"git blame -M" missed a single line that was moved within the file.

* dk/blame-move-no-reason-for-1-line-context:
blame: require 0 context lines while finding moved lines with -M

Merge branch 'jk/test-match-signal' into maintJunio C Hamano Thu, 28 Jul 2016 18:26:00 +0000 (11:26 -0700)

Merge branch 'jk/test-match-signal' into maint

The test framework learned a new helper test_match_signal to
check an exit code from getting killed by an expected signal.

* jk/test-match-signal:
t/lib-git-daemon: use test_match_signal
test_must_fail: use test_match_signal
t0005: use test_match_signal as appropriate
tests: factor portable signal check out of t0005

Merge branch 'js/am-call-theirs-theirs-in-fallback... Junio C Hamano Thu, 28 Jul 2016 18:25:59 +0000 (11:25 -0700)

Merge branch 'js/am-call-theirs-theirs-in-fallback-3way' into maint

One part of "git am" had an oddball helper function that called
stuff from outside "his" as opposed to calling what we have "ours",
which was not gender-neutral and also inconsistent with the rest of
the system where outside stuff is usuall called "theirs" in
contrast to "ours".

* js/am-call-theirs-theirs-in-fallback-3way:
am: counteract gender bias

Merge branch 'js/t3404-grammo-fix' into maintJunio C Hamano Thu, 28 Jul 2016 18:25:58 +0000 (11:25 -0700)

Merge branch 'js/t3404-grammo-fix' into maint

Grammofix.

* js/t3404-grammo-fix:
t3404: fix a grammo (commands are ran -> commands are run)

Merge branch 'nd/doc-new-command' into maintJunio C Hamano Thu, 28 Jul 2016 18:25:57 +0000 (11:25 -0700)

Merge branch 'nd/doc-new-command' into maint

Typofix in a doc.

* nd/doc-new-command:
new-command.txt: correct the command description file

Merge branch 'ew/gc-auto-pack-limit-fix' into maintJunio C Hamano Thu, 28 Jul 2016 18:25:56 +0000 (11:25 -0700)

Merge branch 'ew/gc-auto-pack-limit-fix' into maint

"gc.autoPackLimit" when set to 1 should not trigger a repacking
when there is only one pack, but the code counted poorly and did
so.

* ew/gc-auto-pack-limit-fix:
gc: fix off-by-one error with gc.autoPackLimit

Merge branch 'js/color-on-windows-comment' into maintJunio C Hamano Thu, 28 Jul 2016 18:25:55 +0000 (11:25 -0700)

Merge branch 'js/color-on-windows-comment' into maint

For a long time, we carried an in-code comment that said our
colored output would work only when we use fprintf/fputs on
Windows, which no longer is the case for the past few years.

* js/color-on-windows-comment:
color.h: remove obsolete comment about limitations on Windows

Merge branch 'mm/doc-tt' into maintJunio C Hamano Thu, 28 Jul 2016 18:25:54 +0000 (11:25 -0700)

Merge branch 'mm/doc-tt' into maint

More mark-up updates to typeset strings that are expected to
literally typed by the end user in fixed-width font.

* mm/doc-tt:
doc: typeset HEAD and variants as literal
CodingGuidelines: formatting HEAD in documentation
doc: typeset long options with argument as literal
doc: typeset '--' as literal
doc: typeset long command-line options as literal
doc: typeset short command-line options as literal
Documentation/git-mv.txt: fix whitespace indentation

Merge branch 'js/sign-empty-commit-fix' into maintJunio C Hamano Thu, 28 Jul 2016 18:25:53 +0000 (11:25 -0700)

Merge branch 'js/sign-empty-commit-fix' into maint

"git commit --amend --allow-empty-message -S" for a commit without
any message body could have misidentified where the header of the
commit object ends.

* js/sign-empty-commit-fix:
commit -S: avoid invalid pointer with empty message

Merge branch 'ps/rebase-i-auto-unstash-upon-abort'... Junio C Hamano Thu, 28 Jul 2016 18:25:52 +0000 (11:25 -0700)

Merge branch 'ps/rebase-i-auto-unstash-upon-abort' into maint

"git rebase -i --autostash" did not restore the auto-stashed change
when the operation was aborted.

* ps/rebase-i-auto-unstash-upon-abort:
rebase -i: restore autostash on abort

Merge branch 'nd/ita-cleanup' into maintJunio C Hamano Thu, 28 Jul 2016 18:25:51 +0000 (11:25 -0700)

Merge branch 'nd/ita-cleanup' into maint

Git does not know what the contents in the index should be for a
path added with "git add -N" yet, so "git grep --cached" should not
show hits (or show lack of hits, with -L) in such a path, but that
logic does not apply to "git grep", i.e. searching in the working
tree files. But we did so by mistake, which has been corrected.

* nd/ita-cleanup:
grep: fix grepping for "intent to add" files
t7810-grep.sh: fix a whitespace inconsistency
t7810-grep.sh: fix duplicated test name

Merge branch 'js/find-commit-subject-ignore-leading... Junio C Hamano Thu, 28 Jul 2016 18:25:50 +0000 (11:25 -0700)

Merge branch 'js/find-commit-subject-ignore-leading-blanks' into maint

A helper function that takes the contents of a commit object and
finds its subject line did not ignore leading blank lines, as is
commonly done by other codepaths. Make it ignore leading blank
lines to match.

* js/find-commit-subject-ignore-leading-blanks:
reset --hard: skip blank lines when reporting the commit subject
sequencer: use skip_blank_lines() to find the commit subject
commit -C: skip blank lines at the beginning of the message
commit.c: make find_commit_subject() more robust
pretty: make the skip_blank_lines() function public

Merge branch 'dg/subtree-rebase-test' into maintJunio C Hamano Thu, 28 Jul 2016 18:25:49 +0000 (11:25 -0700)

Merge branch 'dg/subtree-rebase-test' into maint

Add a test to specify the desired behaviour that currently is not
available in "git rebase -Xsubtree=...".

* dg/subtree-rebase-test:
contrib/subtree: Add a test for subtree rebase that loses commits

Merge branch 'sb/submodule-deinit-all'Junio C Hamano Thu, 28 Jul 2016 17:34:45 +0000 (10:34 -0700)

Merge branch 'sb/submodule-deinit-all'

A comment update for a topic that was merged to Git v2.8.

* sb/submodule-deinit-all:
submodule deinit: remove outdated comment

Merge branch 'ew/find-perl-on-freebsd-in-local'Junio C Hamano Thu, 28 Jul 2016 17:34:44 +0000 (10:34 -0700)

Merge branch 'ew/find-perl-on-freebsd-in-local'

Recent FreeBSD stopped making perl available at /usr/bin/perl;
switch the default the built-in path to /usr/local/bin/perl on not
too ancient FreeBSD releases.

* ew/find-perl-on-freebsd-in-local:
config.mak.uname: correct perl path on FreeBSD

Merge branch 'ew/daemon-socket-keepalive'Junio C Hamano Thu, 28 Jul 2016 17:34:43 +0000 (10:34 -0700)

Merge branch 'ew/daemon-socket-keepalive'

Recent update to "git daemon" tries to enable the socket-level
KEEPALIVE, but when it is spawned via inetd, the standard input
file descriptor may not necessarily be connected to a socket.
Suppress an ENOTSOCK error from setsockopt().

* ew/daemon-socket-keepalive:
Windows: add missing definition of ENOTSOCK
daemon: ignore ENOTSOCK from setsockopt

Merge branch 'nd/pack-ofs-4gb-limit'Junio C Hamano Thu, 28 Jul 2016 17:34:42 +0000 (10:34 -0700)

Merge branch 'nd/pack-ofs-4gb-limit'

"git pack-objects" and "git index-pack" mostly operate with off_t
when talking about the offset of objects in a packfile, but there
were a handful of places that used "unsigned long" to hold that
value, leading to an unintended truncation.

* nd/pack-ofs-4gb-limit:
fsck: use streaming interface for large blobs in pack
pack-objects: do not truncate result in-pack object size on 32-bit systems
index-pack: correct "offset" type in unpack_entry_data()
index-pack: report correct bad object offsets even if they are large
index-pack: correct "len" type in unpack_data()
sha1_file.c: use type off_t* for object_info->disk_sizep
pack-objects: pass length to check_pack_crc() without truncation

Merge branch 'nd/worktree-lock'Junio C Hamano Thu, 28 Jul 2016 17:34:41 +0000 (10:34 -0700)

Merge branch 'nd/worktree-lock'

"git worktree prune" protected worktrees that are marked as
"locked" by creating a file in a known location. "git worktree"
command learned a dedicated command pair to create and remove such
a file, so that the users do not have to do this with editor.

* nd/worktree-lock:
worktree.c: find_worktree() search by path suffix
worktree: add "unlock" command
worktree: add "lock" command
worktree.c: add is_worktree_locked()
worktree.c: add is_main_worktree()
worktree.c: add find_worktree()

Merge branch 'rs/notes-merge-no-toctou'Junio C Hamano Thu, 28 Jul 2016 17:34:41 +0000 (10:34 -0700)

Merge branch 'rs/notes-merge-no-toctou'

"git notes merge" had a code to see if a path exists (and fails if
it does) and then open the path for writing (when it doesn't).
Replace it with open with O_EXCL.

* rs/notes-merge-no-toctou:
notes-merge: use O_EXCL to avoid overwriting existing files

Merge branch 'js/rebase-i-tests'Junio C Hamano Thu, 28 Jul 2016 17:34:40 +0000 (10:34 -0700)

Merge branch 'js/rebase-i-tests'

A few tests that specifically target "git rebase -i" have been
added.

* js/rebase-i-tests:
rebase -i: we allow extra spaces after fixup!/squash!
rebase -i: demonstrate a bug with --autosquash
t3404: add a test for the --gpg-sign option

subtree: fix "git subtree split --rejoin"David Aguilar Tue, 26 Jul 2016 04:14:15 +0000 (21:14 -0700)

subtree: fix "git subtree split --rejoin"

"git merge" in v2.9 prevents merging unrelated histories.

"git subtree split --rejoin" creates unrelated histories when
creating a split repo from a raw sub-directory that did not
originate from an invocation of "git subtree add".

Restore the original behavior by passing --allow-unrelated-histories
when merging subtrees. This ensures that the synthetic history
created by "git subtree split" can be merged.

Add a test to ensure that this feature works as advertised.

Reported-by: Brett Cundal <brett.cundal@iugome.com>
Helped-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7900-subtree.sh: fix quoting and broken && chainsDavid Aguilar Tue, 26 Jul 2016 04:14:14 +0000 (21:14 -0700)

t7900-subtree.sh: fix quoting and broken && chains

Allow whitespace in arguments to subtree_test_create_repo.
Add missing && chains.

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

submodule deinit: remove outdated commentStefan Beller Tue, 26 Jul 2016 00:35:38 +0000 (17:35 -0700)

submodule deinit: remove outdated comment

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

commit: describe that --no-verify skips the commit... Orgad Shaneh Tue, 26 Jul 2016 14:00:15 +0000 (17:00 +0300)

commit: describe that --no-verify skips the commit-msg hook in the help text

This brings the short help in line with the documentation.

Signed-off-by: Orgad Shaneh <orgads@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

config.mak.uname: correct perl path on FreeBSDNguyễn Thái Ngọc Duy Mon, 25 Jul 2016 16:21:25 +0000 (18:21 +0200)

config.mak.uname: correct perl path on FreeBSD

It looks the the symlink /usr/bin/perl (to /usr/local/bin/perl) has
been removed at least on FreeBSD 10.3. See [1] for more information.

[1] https://svnweb.freebsd.org/ports/head/UPDATING?r1=386270&r2=386269&pathrev=386270&diff_format=c

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

Seventh batch of topics for 2.10Junio C Hamano Mon, 25 Jul 2016 21:17:28 +0000 (14:17 -0700)

Seventh batch of topics for 2.10

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

Merge branch 'rs/use-strbuf-addbuf'Junio C Hamano Mon, 25 Jul 2016 21:13:47 +0000 (14:13 -0700)

Merge branch 'rs/use-strbuf-addbuf'

Code cleanup.

* rs/use-strbuf-addbuf:
strbuf: avoid calling strbuf_grow() twice in strbuf_addbuf()
use strbuf_addbuf() for appending a strbuf to another

Merge branch 'ew/autoconf-pthread'Junio C Hamano Mon, 25 Jul 2016 21:13:46 +0000 (14:13 -0700)

Merge branch 'ew/autoconf-pthread'

Existing autoconf generated test for the need to link with pthread
library did not check all the functions from pthread libraries;
recent FreeBSD has some functions in libc but not others, and we
mistakenly thought linking with libc is enough when it is not.

* ew/autoconf-pthread:
configure.ac: stronger test for pthread linkage

Merge branch 'mh/blame-worktree'Junio C Hamano Mon, 25 Jul 2016 21:13:45 +0000 (14:13 -0700)

Merge branch 'mh/blame-worktree'

"git blame file" allowed the lineage of lines in the uncommitted,
unadded contents of "file" to be inspected, but it refused when
"file" did not appear in the current commit. When "file" was
created by renaming an existing file (but the change has not been
committed), this restriction was unnecessarily tight.

* mh/blame-worktree:
t/t8003-blame-corner-cases.sh: Use here documents
blame: allow to blame paths freshly added to the index

Merge branch 'js/fsck-name-object'Junio C Hamano Mon, 25 Jul 2016 21:13:44 +0000 (14:13 -0700)

Merge branch 'js/fsck-name-object'

When "git fsck" reports a broken link (e.g. a tree object contains
a blob that does not exist), both containing object and the object
that is referred to were reported with their 40-hex object names.
The command learned the "--name-objects" option to show the path to
the containing object from existing refs (e.g. "HEAD~24^2:file.txt").

* js/fsck-name-object:
fsck: optionally show more helpful info for broken links
fsck: give the error function a chance to see the fsck_options
fsck_walk(): optionally name objects on the go
fsck: refactor how to describe objects

Merge branch 'nd/cache-tree-ita'Junio C Hamano Mon, 25 Jul 2016 21:13:44 +0000 (14:13 -0700)

Merge branch 'nd/cache-tree-ita'

"git add -N dir/file && git write-tree" produced an incorrect tree
when there are other paths in the same directory that sorts after
"file".

* nd/cache-tree-ita:
cache-tree: do not generate empty trees as a result of all i-t-a subentries
cache-tree.c: fix i-t-a entry skipping directory updates sometimes
test-lib.sh: introduce and use $EMPTY_BLOB
test-lib.sh: introduce and use $EMPTY_TREE

Merge branch 'jk/push-scrub-url'Junio C Hamano Mon, 25 Jul 2016 21:13:43 +0000 (14:13 -0700)

Merge branch 'jk/push-scrub-url'

"git fetch http://user:pass@host/repo..." scrubbed the userinfo
part, but "git push" didn't.

* jk/push-scrub-url:
t5541: fix url scrubbing test when GPG is not set
push: anonymize URL in status output

Merge branch 'nd/test-helpers'Junio C Hamano Mon, 25 Jul 2016 21:13:42 +0000 (14:13 -0700)

Merge branch 'nd/test-helpers'

Build clean-up.

* nd/test-helpers:
t/test-lib.sh: fix running tests with --valgrind
Makefile: use VCSSVN_LIB to refer to svn library
Makefile: drop extra dependencies for test helpers

Merge branch 'jc/doc-diff-filter-exclude'Junio C Hamano Mon, 25 Jul 2016 21:13:41 +0000 (14:13 -0700)

Merge branch 'jc/doc-diff-filter-exclude'

Belated doc update for a feature added in v1.8.5.

* jc/doc-diff-filter-exclude:
diff: document diff-filter exclusion

Merge branch 'ls/travis-enable-httpd-tests'Junio C Hamano Mon, 25 Jul 2016 21:13:39 +0000 (14:13 -0700)

Merge branch 'ls/travis-enable-httpd-tests'

Allow http daemon tests in Travis CI tests.

* ls/travis-enable-httpd-tests:
travis-ci: enable web server tests t55xx on Linux

Merge branch 'jc/renormalize-merge-kill-safer-crlf'Junio C Hamano Mon, 25 Jul 2016 21:13:38 +0000 (14:13 -0700)

Merge branch 'jc/renormalize-merge-kill-safer-crlf'

"git merge" with renormalization did not work well with
merge-recursive, due to "safer crlf" conversion kicking in when it
shouldn't.

* jc/renormalize-merge-kill-safer-crlf:
merge: avoid "safer crlf" during recording of merge results
convert: unify the "auto" handling of CRLF

Merge branch 'rs/worktree-use-strbuf-absolute-path'Junio C Hamano Mon, 25 Jul 2016 21:13:37 +0000 (14:13 -0700)

Merge branch 'rs/worktree-use-strbuf-absolute-path'

Code simplification.

* rs/worktree-use-strbuf-absolute-path:
worktree: use strbuf_add_absolute_path() directly

Merge branch 'rs/rm-strbuf-optim'Junio C Hamano Mon, 25 Jul 2016 21:13:36 +0000 (14:13 -0700)

Merge branch 'rs/rm-strbuf-optim'

The use of strbuf in "git rm" to build filename to remove was a bit
suboptimal, which has been fixed.

* rs/rm-strbuf-optim:
rm: reuse strbuf for all remove_dir_recursively() calls

Merge branch 'rw/make-needs-librt'Junio C Hamano Mon, 25 Jul 2016 21:13:35 +0000 (14:13 -0700)

Merge branch 'rw/make-needs-librt'

Makefile assumed that -lrt is always available on platforms that
want to use clock_gettime() and CLOCK_MONOTONIC, which is not a
case for recent Mac OS X. The necessary symbols are often found in
libc on many modern systems and having -lrt on the command line, as
long as the library exists, had no effect, but when the platform
removes librt.a that is a different matter--having -lrt will break
the linkage.

This change could be seen as a regression for those who do need to
specify -lrt, as they now specifically ask for NEEDS_LIBRT when
building. Hopefully they are in the minority these days.

* rw/make-needs-librt:
config.mak.uname: define NEEDS_LIBRT under Linux, for now
Makefile: add NEEDS_LIBRT to optionally link with librt

Merge branch 'js/ignore-space-at-eol'Junio C Hamano Mon, 25 Jul 2016 21:13:35 +0000 (14:13 -0700)

Merge branch 'js/ignore-space-at-eol'

An age old bug that caused "git diff --ignore-space-at-eol"
misbehave has been fixed.

* js/ignore-space-at-eol:
diff: fix a double off-by-one with --ignore-space-at-eol
diff: demonstrate a bug with --patience and --ignore-space-at-eol

Merge branch 'mh/ref-iterators'Junio C Hamano Mon, 25 Jul 2016 21:13:33 +0000 (14:13 -0700)

Merge branch 'mh/ref-iterators'

The API to iterate over all the refs (i.e. for_each_ref(), etc.)
has been revamped.

* mh/ref-iterators:
for_each_reflog(): reimplement using iterators
dir_iterator: new API for iterating over a directory tree
for_each_reflog(): don't abort for bad references
do_for_each_ref(): reimplement using reference iteration
refs: introduce an iterator interface
ref_resolves_to_object(): new function
entry_resolves_to_object(): rename function from ref_resolves_to_object()
get_ref_cache(): only create an instance if there is a submodule
remote rm: handle symbolic refs correctly
delete_refs(): add a flags argument
refs: use name "prefix" consistently
do_for_each_ref(): move docstring to the header file
refs: remove unnecessary "extern" keywords

Merge branch 'mh/update-ref-errors'Junio C Hamano Mon, 25 Jul 2016 21:13:32 +0000 (14:13 -0700)

Merge branch 'mh/update-ref-errors'

Error handling in the codepaths that updates refs has been
improved.

* mh/update-ref-errors:
lock_ref_for_update(): avoid a symref resolution
lock_ref_for_update(): make error handling more uniform
t1404: add more tests of update-ref error handling
t1404: document function test_update_rejected
t1404: remove "prefix" argument to test_update_rejected
t1404: rename file to t1404-update-ref-errors.sh

Merge branch 'mh/split-under-lock'Junio C Hamano Mon, 25 Jul 2016 21:13:32 +0000 (14:13 -0700)

Merge branch 'mh/split-under-lock'

Further preparatory work on the refs API before the pluggable
backend series can land.

* mh/split-under-lock: (33 commits)
lock_ref_sha1_basic(): only handle REF_NODEREF mode
commit_ref_update(): remove the flags parameter
lock_ref_for_update(): don't resolve symrefs
lock_ref_for_update(): don't re-read non-symbolic references
refs: resolve symbolic refs first
ref_transaction_update(): check refname_is_safe() at a minimum
unlock_ref(): move definition higher in the file
lock_ref_for_update(): new function
add_update(): initialize the whole ref_update
verify_refname_available(): adjust constness in declaration
refs: don't dereference on rename
refs: allow log-only updates
delete_branches(): use resolve_refdup()
ref_transaction_commit(): correctly report close_ref() failure
ref_transaction_create(): disallow recursive pruning
refs: make error messages more consistent
lock_ref_sha1_basic(): remove unneeded local variable
read_raw_ref(): move docstring to header file
read_raw_ref(): improve docstring
read_raw_ref(): rename symref argument to referent
...

git-svn: allow --version to work anywhereEric Wong Fri, 22 Jul 2016 20:17:31 +0000 (20:17 +0000)

git-svn: allow --version to work anywhere

Checking the version of the installed SVN libraries should not
require a git repository at all. This matches the behavior of
"git --version".

Add a test for "git svn help" for the same behavior while we're
at it, too.

Signed-off-by: Eric Wong <e@80x24.org>

Windows: add missing definition of ENOTSOCKJohannes Sixt Thu, 21 Jul 2016 20:59:06 +0000 (22:59 +0200)

Windows: add missing definition of ENOTSOCK

The previous commit introduced the first use of ENOTSOCK. This macro is
not available on Windows. Define it as WSAENOTSOCK because that is the
corresponding error value reported by the Windows versions of socket
functions.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

contrib/persistent-https: use Git version for build... Parker Moore Thu, 21 Jul 2016 01:00:00 +0000 (19:00 -0600)

contrib/persistent-https: use Git version for build label

The previous method simply used the UNIX timestamp of when the binary was
built as its build label.

$ make && ./git-remote-persistent-http -print_label
1469061546

This patch aims to align the label for this binary with the Git version
contained in the GIT-VERSION-FILE. This gives a better sense of the version
of the binary as it can be mapped to a particular revision or release of
Git itself. For example:

$ make && ./git-remote-persistent-http -print_label
2.9.1.275.g75676c8

Discussion of this patch is available on a related thread in the mailing
list surrounding this package called "contrib/persistent-https: update
ldflags syntax for Go 1.7+". The gmane.org link is:
http://article.gmane.org/gmane.comp.version-control.git/299653/

Signed-off-by: Parker Moore <parkrmoore@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

contrib/persistent-https: update ldflags syntax for... Parker Moore Thu, 21 Jul 2016 00:58:57 +0000 (18:58 -0600)

contrib/persistent-https: update ldflags syntax for Go 1.7+

Running `make all` in `contrib/persistent-https` results in a
failure on Go 1.7 and above.

Specifically, the error is:

go build -o git-remote-persistent-https \
-ldflags "-X main._BUILD_EMBED_LABEL 1468613136"
# _/Users/parkr/github/git/contrib/persistent-https
/usr/local/Cellar/go/1.7rc1/libexec/pkg/tool/darwin_amd64/link: -X
flag requires argument of the form importpath.name=value
make: *** [git-remote-persistent-https] Error 2

This `name=value` syntax for the -X flag was introduced in Go v1.5
(released Aug 19, 2015):

- release notes: https://golang.org/doc/go1.5#link
- commit: https://github.com/golang/go/commit/12795c02f3d6fc54ece09a86e70aaa40a94d5131

In Go v1.7, support for the old syntax was removed:

- release notes: https://tip.golang.org/doc/go1.7#compiler
- commit: https://github.com/golang/go/commit/51b624e6a29b135ce0fadb22b678acf4998ff16f

Add '=' between the symbol and its value for recent versions of Go,
while leaving it out for older ones.

Signed-off-by: Parker Moore <parkrmoore@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

strbuf: avoid calling strbuf_grow() twice in strbuf_add... René Scharfe Thu, 21 Jul 2016 16:46:44 +0000 (18:46 +0200)

strbuf: avoid calling strbuf_grow() twice in strbuf_addbuf()

Implement strbuf_addbuf() as a normal function in order to avoid calling
strbuf_grow() twice, with the second callinside strbud_add() being a
no-op. This is slightly faster and also reduces the text size a bit.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5541: fix url scrubbing test when GPG is not setJeff King Wed, 20 Jul 2016 11:32:26 +0000 (05:32 -0600)

t5541: fix url scrubbing test when GPG is not set

When the GPG prereq is not set, we do not run test 34. That
test changes the directory of the test script as a side
effect (something we usually frown on, but which matches the
style of the rest of this script). When test 35 (the
url-scrubbing test) runs, it expects to be in the directory
from test 34. If it's not, the test fails; we are in a
different sub-repo, our test-commit is built on a different
history, and the push becomes a non-fast-forward.

We can fix this by unconditionally moving to the directory
we expect (again, against our usual style but matching how
the rest of the script operates).

As an additional protection, let's also switch from "make a
new commit and push to master" to just "push to a new
branch". We don't care about the branch name; we just want
_some_ ref update to trigger the status output. Pushing to a
new branch is less likely to run into problems with
force-updates, changing the checked-out branch, etc.

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

Sixth batch of topics for 2.10Junio C Hamano Tue, 19 Jul 2016 20:26:16 +0000 (13:26 -0700)

Sixth batch of topics for 2.10

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

Merge branch 'ls/p4-tmp-refs'Junio C Hamano Tue, 19 Jul 2016 20:22:24 +0000 (13:22 -0700)

Merge branch 'ls/p4-tmp-refs'

"git p4" used a location outside $GIT_DIR/refs/ to place its
temporary branches, which has been moved to refs/git-p4-tmp/.

* ls/p4-tmp-refs:
git-p4: place temporary refs used for branch import under refs/git-p4-tmp

Merge branch 'js/am-call-theirs-theirs-in-fallback... Junio C Hamano Tue, 19 Jul 2016 20:22:23 +0000 (13:22 -0700)

Merge branch 'js/am-call-theirs-theirs-in-fallback-3way'

One part of "git am" had an oddball helper function that called
stuff from outside "his" as opposed to calling what we have "ours",
which was not gender-neutral and also inconsistent with the rest of
the system where outside stuff is usuall called "theirs" in
contrast to "ours".

* js/am-call-theirs-theirs-in-fallback-3way:
am: counteract gender bias

Merge branch 'jk/write-file'Junio C Hamano Tue, 19 Jul 2016 20:22:23 +0000 (13:22 -0700)

Merge branch 'jk/write-file'

General code clean-up around a helper function to write a
single-liner to a file.

* jk/write-file:
branch: use write_file_buf instead of write_file
use write_file_buf where applicable
write_file: add format attribute
write_file: add pointer+len variant
write_file: use xopen
write_file: drop "gently" form
branch: use non-gentle write_file for branch description
am: ignore return value of write_file()
config: fix bogus fd check when setting up default config

Merge branch 'jk/printf-format'Junio C Hamano Tue, 19 Jul 2016 20:22:22 +0000 (13:22 -0700)

Merge branch 'jk/printf-format'

Code clean-up to avoid using a variable string that compilers may
feel untrustable as printf-style format given to write_file()
helper function.

* jk/printf-format:
commit.c: remove print_commit_list()
avoid using sha1_to_hex output as printf format
walker: let walker_say take arbitrary formats

Merge branch 'rs/help-c-source-with-gitattributes'Junio C Hamano Tue, 19 Jul 2016 20:22:21 +0000 (13:22 -0700)

Merge branch 'rs/help-c-source-with-gitattributes'

The .c/.h sources are marked as such in our .gitattributes file so
that "git diff -W" and friends would work better.

* rs/help-c-source-with-gitattributes:
.gitattributes: set file type for C files

Merge branch 'nd/fetch-ref-summary'Junio C Hamano Tue, 19 Jul 2016 20:22:21 +0000 (13:22 -0700)

Merge branch 'nd/fetch-ref-summary'

Improve the look of the way "git fetch" reports what happened to
each ref that was fetched.

* nd/fetch-ref-summary:
fetch: reduce duplicate in ref update status lines with placeholder
fetch: align all "remote -> local" output
fetch: change flag code for displaying tag update and deleted ref
fetch: refactor ref update status formatting code
git-fetch.txt: document fetch output

Merge branch 'jk/test-match-signal'Junio C Hamano Tue, 19 Jul 2016 20:22:20 +0000 (13:22 -0700)

Merge branch 'jk/test-match-signal'

The test framework learned a new helper test_match_signal to
check an exit code from getting killed by an expected signal.

* jk/test-match-signal:
t/lib-git-daemon: use test_match_signal
test_must_fail: use test_match_signal
t0005: use test_match_signal as appropriate
tests: factor portable signal check out of t0005

Merge branch 'jk/common-main'Junio C Hamano Tue, 19 Jul 2016 20:22:19 +0000 (13:22 -0700)

Merge branch 'jk/common-main'

There are certain house-keeping tasks that need to be performed at
the very beginning of any Git program, and programs that are not
built-in commands had to do them exactly the same way as "git"
potty does. It was easy to make mistakes in one-off standalone
programs (like test helpers). A common "main()" function that
calls cmd_main() of individual program has been introduced to
make it harder to make mistakes.

* jk/common-main:
mingw: declare main()'s argv as const
common-main: call git_setup_gettext()
common-main: call restore_sigpipe_to_default()
common-main: call sanitize_stdfds()
common-main: call git_extract_argv0_path()
add an extra level of indirection to main()

Merge branch 'ak/lazy-prereq-mktemp'Junio C Hamano Tue, 19 Jul 2016 20:22:18 +0000 (13:22 -0700)

Merge branch 'ak/lazy-prereq-mktemp'

A test that unconditionally used "mktemp" learned that the command
is not necessarily available everywhere.

* ak/lazy-prereq-mktemp:
t7610: test for mktemp before test execution

Merge branch 'nd/icase'Junio C Hamano Tue, 19 Jul 2016 20:22:17 +0000 (13:22 -0700)

Merge branch 'nd/icase'

"git grep -i" has been taught to fold case in non-ascii locales
correctly.

* nd/icase:
grep.c: reuse "icase" variable
diffcore-pickaxe: support case insensitive match on non-ascii
diffcore-pickaxe: Add regcomp_or_die()
grep/pcre: support utf-8
gettext: add is_utf8_locale()
grep/pcre: prepare locale-dependent tables for icase matching
grep: rewrite an if/else condition to avoid duplicate expression
grep/icase: avoid kwsset when -F is specified
grep/icase: avoid kwsset on literal non-ascii strings
test-regex: expose full regcomp() to the command line
test-regex: isolate the bug test code
grep: break down an "if" stmt in preparation for next changes

Merge branch 'bc/cocci'Junio C Hamano Tue, 19 Jul 2016 20:22:16 +0000 (13:22 -0700)

Merge branch 'bc/cocci'

Conversion from unsigned char sha1[20] to struct object_id
continues.

* bc/cocci:
diff: convert prep_temp_blob() to struct object_id
merge-recursive: convert merge_recursive_generic() to object_id
merge-recursive: convert leaf functions to use struct object_id
merge-recursive: convert struct merge_file_info to object_id
merge-recursive: convert struct stage_data to use object_id
diff: rename struct diff_filespec's sha1_valid member
diff: convert struct diff_filespec to struct object_id
coccinelle: apply object_id Coccinelle transformations
coccinelle: convert hashcpy() with null_sha1 to hashclr()
contrib/coccinelle: add basic Coccinelle transforms
hex: add oid_to_hex_r()

Merge branch 'js/log-to-diffopt-file'Junio C Hamano Tue, 19 Jul 2016 20:22:15 +0000 (13:22 -0700)

Merge branch 'js/log-to-diffopt-file'

The commands in the "log/diff" family have had an FILE* pointer in the
data structure they pass around for a long time, but some codepaths
used to always write to the standard output. As a preparatory step
to make "git format-patch" available to the internal callers, these
codepaths have been updated to consistently write into that FILE*
instead.

* js/log-to-diffopt-file:
mingw: fix the shortlog --output=<file> test
diff: do not color output when --color=auto and --output=<file> is given
t4211: ensure that log respects --output=<file>
shortlog: respect the --output=<file> setting
format-patch: use stdout directly
format-patch: avoid freopen()
format-patch: explicitly switch off color when writing to files
shortlog: support outputting to streams other than stdout
graph: respect the diffopt.file setting
line-log: respect diffopt's configured output file stream
log-tree: respect diffopt's configured output file stream
log: prepare log/log-tree to reuse the diffopt.close_file attribute

Merge branch 'sb/submodule-parallel-fetch'Junio C Hamano Tue, 19 Jul 2016 20:22:14 +0000 (13:22 -0700)

Merge branch 'sb/submodule-parallel-fetch'

Fix recently introduced codepaths that are involved in parallel
submodule operations, which gave up on reading too early, and
could have wasted CPU while attempting to write under a corner
case condition.

* sb/submodule-parallel-fetch:
hoist out handle_nonblock function for xread and xwrite
xwrite: poll on non-blocking FDs
xread: retry after poll on EAGAIN/EWOULDBLOCK

Merge branch 'lf/recv-sideband-cleanup'Junio C Hamano Tue, 19 Jul 2016 20:22:14 +0000 (13:22 -0700)

Merge branch 'lf/recv-sideband-cleanup'

Code simplification.

* lf/recv-sideband-cleanup:
sideband.c: small optimization of strbuf usage
sideband.c: refactor recv_sideband()

Merge branch 'dk/blame-move-no-reason-for-1-line-context'Junio C Hamano Tue, 19 Jul 2016 20:22:12 +0000 (13:22 -0700)

Merge branch 'dk/blame-move-no-reason-for-1-line-context'

"git blame -M" missed a single line that was moved within the file.

* dk/blame-move-no-reason-for-1-line-context:
blame: require 0 context lines while finding moved lines with -M

Merge branch 'nd/connect-ssh-command-config'Junio C Hamano Tue, 19 Jul 2016 20:22:12 +0000 (13:22 -0700)

Merge branch 'nd/connect-ssh-command-config'

A new configuration variable core.sshCommand has been added to
specify what value for GIT_SSH_COMMAND to use per repository.

* nd/connect-ssh-command-config:
connect: read $GIT_SSH_COMMAND from config file

use strbuf_addbuf() for appending a strbuf to anotherRené Scharfe Tue, 19 Jul 2016 18:36:29 +0000 (20:36 +0200)

use strbuf_addbuf() for appending a strbuf to another

Use strbuf_addbuf() where possible; it's shorter and more efficient.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: document svn.authorsProg in configEric Wong Tue, 19 Jul 2016 10:02:39 +0000 (10:02 +0000)

git-svn: document svn.authorsProg in config

This has always been supported since we read config variables
based on the command-line option parser. Document it explicitly
since users usually want to maintain the same program across
invocations.

Signed-off-by: Eric Wong <e@80x24.org>

fsck: optionally show more helpful info for broken... Johannes Schindelin Sun, 17 Jul 2016 11:00:02 +0000 (13:00 +0200)

fsck: optionally show more helpful info for broken links

When reporting broken links between commits/trees/blobs, it would be
quite helpful at times if the user would be told how the object is
supposed to be reachable.

With the new --name-objects option, git-fsck will try to do exactly
that: name the objects in a way that shows how they are reachable.

For example, when some reflog got corrupted and a blob is missing that
should not be, the user might want to remove the corresponding reflog
entry. This option helps them find that entry: `git fsck` will now
report something like this:

broken link from tree b5eb6ff... (refs/stash@{<date>}~37:)
to blob ec5cf80...

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t/t8003-blame-corner-cases.sh: Use here documentsMike Hommey Fri, 15 Jul 2016 23:23:46 +0000 (08:23 +0900)

t/t8003-blame-corner-cases.sh: Use here documents

Somehow, this test was using:

{
echo A
echo B
} > file

block to feed file contents. This changes those to the form most common
in git test scripts:

cat >file <<-\EOF
A
B
EOF

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

blame: allow to blame paths freshly added to the indexMike Hommey Fri, 15 Jul 2016 23:23:45 +0000 (08:23 +0900)

blame: allow to blame paths freshly added to the index

When blaming files, changes in the work tree are taken into account
and displayed as being "Not Committed Yet".

However, when blaming a file that is not known to the current HEAD,
git blame fails with `no such path 'foo' in HEAD`, even when the file
was git add'ed.

Allowing such a blame is useful when the new file added to the index
(not yet committed) was created by renaming an existing file. It
also is useful when the new file was created from pieces already in
HEAD, moved or copied from other files and blaming with copy
detection (i.e. "-C").

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

cache-tree: do not generate empty trees as a result... Nguyễn Thái Ngọc Duy Sat, 16 Jul 2016 05:06:27 +0000 (07:06 +0200)

cache-tree: do not generate empty trees as a result of all i-t-a subentries

If a subdirectory contains nothing but i-t-a entries, we generate an
empty tree object and add it to its parent tree. Which is wrong. Such
a subdirectory should not be added.

Note that this has a cascading effect. If subdir 'a/b/c' contains
nothing but i-t-a entries, we ignore it. But then if 'a/b' contains
only (the non-existing) 'a/b/c', then we should ignore 'a/b' while
building 'a' too. And it goes all the way up to top directory.

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

cache-tree.c: fix i-t-a entry skipping directory update... Nguyễn Thái Ngọc Duy Sat, 16 Jul 2016 05:06:26 +0000 (07:06 +0200)

cache-tree.c: fix i-t-a entry skipping directory updates sometimes

Commit 3cf773e (cache-tree: fix writing cache-tree when CE_REMOVE is
present - 2012-12-16) skips i-t-a entries when building trees objects
from the index. Unfortunately it may skip too much.

The code in question checks if an entry is an i-t-a one, then no tree
entry will be written. But it does not take into account that
directories can also be written with the same code. Suppose we have
this in the index.

a-file
subdir/file1
subdir/file2
subdir/file3
the-last-file

We write an entry for a-file as normal and move on to subdir/file1,
where we realize the entry name for this level is simply just
"subdir", write down an entry for "subdir" then jump three items ahead
to the-last-file.

That is what happens normally when the first file in subdir is not an
i-t-a entry. If subdir/file1 is an i-t-a, because of the broken
condition in this code, we still think "subdir" is an i-t-a file and
not writing "subdir" down and jump to the-last-file. The result tree
now only has two items: a-file and the-last-file. subdir should be
there too (even though it only records two sub-entries, file2 and
file3).

If the i-t-a entry is subdir/file2 or subdir/file3, this is not a
problem because we jump over them anyway. Which may explain why the
bug is hidden for nearly four years.

Fix it by making sure we only skip i-t-a entries when the entry in
question is actual an index entry, not a directory.

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

test-lib.sh: introduce and use $EMPTY_BLOBNguyễn Thái Ngọc Duy Sat, 16 Jul 2016 05:06:25 +0000 (07:06 +0200)

test-lib.sh: introduce and use $EMPTY_BLOB

Similar to $EMPTY_TREE this makes it easier to recognize this special
SHA-1 and change hash later.

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

test-lib.sh: introduce and use $EMPTY_TREENguyễn Thái Ngọc Duy Sat, 16 Jul 2016 05:06:24 +0000 (07:06 +0200)

test-lib.sh: introduce and use $EMPTY_TREE

This is a special SHA1. Let's keep it at one place, easier to replace
later when the hash change comes, easier to recognize.

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

fsck: give the error function a chance to see the fsck_... Johannes Schindelin Sun, 17 Jul 2016 10:59:57 +0000 (12:59 +0200)

fsck: give the error function a chance to see the fsck_options

We will need this in the next commit, where fsck will be taught to
optionally name the objects when reporting issues about them.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fsck_walk(): optionally name objects on the goJohannes Schindelin Sun, 17 Jul 2016 10:59:49 +0000 (12:59 +0200)

fsck_walk(): optionally name objects on the go

If fsck_options->name_objects is initialized, and if it already has
name(s) for the object(s) that are to be the starting point(s) for
fsck_walk(), then that function will now add names for the objects
that were walked.

This will be highly useful for teaching git-fsck to identify root causes
for broken links, which is the task for the next patch in this series.

Note that this patch opts for decorating the objects with plain strings
instead of full-blown structs (à la `struct rev_name` in the code of
the `git name-rev` command), for several reasons:

- the code is much simpler than if it had to work with structs that
describe arbitrarily long names such as "master~14^2~5:builtin/am.c",

- the string processing is actually quite light-weight compared to the
rest of fsck's operation,

- the caller of fsck_walk() is expected to provide names for the
starting points, and using plain and simple strings is just the
easiest way to do that.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fsck: refactor how to describe objectsJohannes Schindelin Sun, 17 Jul 2016 10:59:44 +0000 (12:59 +0200)

fsck: refactor how to describe objects

In many places, we refer to objects via their SHA-1s. Let's abstract
that into a function.

For the moment, it does nothing else than what we did previously: print
out the 40-digit hex string. But that will change over the course of the
next patches.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

configure.ac: stronger test for pthread linkageEric Wong Mon, 18 Jul 2016 10:22:08 +0000 (10:22 +0000)

configure.ac: stronger test for pthread linkage

We need to test linkage of pthread_create and pthread_join,
as pthread_mutex_* and pthread_key_* functions do not need
extra linkage under FreeBSD 10.3, leading to a false-positive
of the empty case.

Signed-off-by: Eric Wong <e@80x24.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

daemon: ignore ENOTSOCK from setsockoptEric Wong Mon, 18 Jul 2016 04:59:11 +0000 (04:59 +0000)

daemon: ignore ENOTSOCK from setsockopt

In inetd mode, we are not guaranteed stdin or stdout is a
socket; callers could filter the data through a pipe
or be testing with regular files.

This prevents t5802 from polluting syslog.

Signed-off-by: Eric Wong <e@80x24.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

list: avoid incompatibility with *BSD sys/queue.hEric Wong Sun, 17 Jul 2016 00:25:34 +0000 (00:25 +0000)

list: avoid incompatibility with *BSD sys/queue.h

The OS X build pulls in sys/queue.h, which pollutes the preprocessor
namespace with a macro generically named LIST_HEAD, and clashes with
the name we use here.

ref: http://mid.gmane.org/FB76544F-16F7-45CA-9649-FD62EE44B0DE@gmail.com

Reported-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Eric Wong <e@80x24.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

archive-tar: huge offset and future timestamps would... Junio C Hamano Thu, 14 Jul 2016 20:04:43 +0000 (13:04 -0700)

archive-tar: huge offset and future timestamps would not work on 32-bit

As we are not yet moving everything to size_t but still using ulong
internally when talking about the size of object, platforms with
32-bit long will not be able to produce tar archive with 4GB+ file,
and cannot grok 077777777777UL as a constant. Disable the extended
header feature and do not test it on them.

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

Sync with 2.9.2Junio C Hamano Fri, 15 Jul 2016 17:49:23 +0000 (10:49 -0700)

Sync with 2.9.2

* maint:
Git 2.9.2
t0006: skip "far in the future" test when unsigned long is not long enough

Git 2.9.2 v2.9.2Junio C Hamano Fri, 15 Jul 2016 17:48:16 +0000 (10:48 -0700)

Git 2.9.2

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

Merge branch 'jk/tzoffset-fix' into maintJunio C Hamano Fri, 15 Jul 2016 16:43:42 +0000 (09:43 -0700)

Merge branch 'jk/tzoffset-fix' into maint

Skip tests that are unrunnable on platforms without 64-bit long
to avoid unnecessary test failures.

* jk/tzoffset-fix:
t0006: skip "far in the future" test when unsigned long is not long enough

t0006: skip "far in the future" test when unsigned... Jeff King Mon, 11 Jul 2016 23:54:18 +0000 (19:54 -0400)

t0006: skip "far in the future" test when unsigned long is not long enough

Git's source code refers to timestamps as unsigned longs. On 32-bit
platforms, as well as on Windows, unsigned long is not large enough
to capture dates that are "absurdly far in the future".

While we can fix this issue properly by replacing unsigned long with
a larger type, we want to be a bit more conservative and just skip
those tests on the maint track.

Signed-off-by: Jeff King <peff@peff.net>
Helped-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

add a test for push optionsStefan Beller Thu, 14 Jul 2016 21:49:48 +0000 (14:49 -0700)

add a test for push options

The functions `mk_repo_pair` as well as `test_refs` are borrowed from
t5543-atomic-push, with additional hooks installed.

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>