gitweb.git
Merge branch 'jc/name-rev-exact-ref'Junio C Hamano Mon, 22 Jul 2013 18:24:19 +0000 (11:24 -0700)

Merge branch 'jc/name-rev-exact-ref'

Corrects the longstanding sloppiness in the implementation of
name-rev that conflated "we take commit-ish" and "differences
between tags and commits do not matter".

* jc/name-rev-exact-ref:
describe: fix --contains when a tag is given as input
name-rev: differentiate between tags and commits they point at
describe: use argv-array
name-rev: allow converting the exact object name at the tip of a ref
name-ref: factor out name shortening logic from name_ref()

Merge branch 'rr/send-email-ssl-verify'Junio C Hamano Mon, 22 Jul 2013 18:24:17 +0000 (11:24 -0700)

Merge branch 'rr/send-email-ssl-verify'

Newer Net::SMTP::SSL module does not want the user programs to use
the default behaviour to let server certificate go without
verification, so by default enable the verification with a
mechanism to turn it off if needed.

* rr/send-email-ssl-verify:
send-email: be explicit with SSL certificate verification

Merge branch 'es/check-mailmap'Junio C Hamano Mon, 22 Jul 2013 18:24:14 +0000 (11:24 -0700)

Merge branch 'es/check-mailmap'

A new command to allow scripts to query the mailmap information.

* es/check-mailmap:
t4203: test check-mailmap command invocation
builtin: add git-check-mailmap command

Merge branch 'jx/clean-interactive'Junio C Hamano Mon, 22 Jul 2013 18:24:11 +0000 (11:24 -0700)

Merge branch 'jx/clean-interactive'

Add "interactive" mode to "git clean".

The early part to refactor relative path related helper functions
looked sensible.

* jx/clean-interactive:
test: run testcases with POSIX absolute paths on Windows
test: add t7301 for git-clean--interactive
git-clean: add documentation for interactive git-clean
git-clean: add ask each interactive action
git-clean: add select by numbers interactive action
git-clean: add filter by pattern interactive action
git-clean: use a git-add-interactive compatible UI
git-clean: add colors to interactive git-clean
git-clean: show items of del_list in columns
git-clean: add support for -i/--interactive
git-clean: refactor git-clean into two phases
write_name{_quoted_relative,}(): remove redundant parameters
quote_path_relative(): remove redundant parameter
quote.c: substitute path_relative with relative_path
path.c: refactor relative_path(), not only strip prefix
test: add test cases for relative_path

Merge branch 'hv/config-from-blob'Junio C Hamano Mon, 22 Jul 2013 18:24:09 +0000 (11:24 -0700)

Merge branch 'hv/config-from-blob'

Allow configuration data to be read from in-tree blob objects,
which would help working in a bare repository and submodule
updates.

* hv/config-from-blob:
do not die when error in config parsing of buf occurs
teach config --blob option to parse config from database
config: make parsing stack struct independent from actual data source
config: drop cf validity check in get_next_char()
config: factor out config file stack management

Merge branch 'mk/upload-pack-off-by-one-dead-code-removal'Junio C Hamano Mon, 22 Jul 2013 18:24:05 +0000 (11:24 -0700)

Merge branch 'mk/upload-pack-off-by-one-dead-code-removal'

* mk/upload-pack-off-by-one-dead-code-removal:
upload-pack: remove a piece of dead code

Merge branch 'jk/t0008-sigpipe-fix'Junio C Hamano Mon, 22 Jul 2013 18:24:02 +0000 (11:24 -0700)

Merge branch 'jk/t0008-sigpipe-fix'

Fix for recent test breakage on 'master'.

* jk/t0008-sigpipe-fix:
t0008: avoid SIGPIPE race condition on fifo

Merge branch 'nd/const-struct-cache-entry'Junio C Hamano Mon, 22 Jul 2013 18:24:00 +0000 (11:24 -0700)

Merge branch 'nd/const-struct-cache-entry'

* nd/const-struct-cache-entry:
Convert "struct cache_entry *" to "const ..." wherever possible

Merge branch 'jk/gcc-function-attributes'Junio C Hamano Mon, 22 Jul 2013 18:23:59 +0000 (11:23 -0700)

Merge branch 'jk/gcc-function-attributes'

Use the function attributes extension to catch mistakes in use of
our own variadic functions that use NULL sentinel at the end
(i.e. like execl(3)) and format strings (i.e. like printf(3)).

* jk/gcc-function-attributes:
Add the LAST_ARG_MUST_BE_NULL macro
wt-status: use "format" function attribute for status_printf
use "sentinel" function attribute for variadic lists
add missing "format" function attributes

Merge branch 'db/show-ref-head'Junio C Hamano Mon, 22 Jul 2013 18:23:56 +0000 (11:23 -0700)

Merge branch 'db/show-ref-head'

The "--head" option to "git show-ref" was only to add "HEAD" to the
list of candidate refs to be filtered by the usual rules
(e.g. "--heads" that only show refs under refs/heads). Change the
meaning of the option to always show "HEAD" regardless of what
filtering will be applied to any other ref (this is a backward
incompatible change, so I may need to add an entry to the Release
Notes).

* db/show-ref-head:
show-ref: make --head always show the HEAD ref

Merge branch 'es/blame-L-breakage'Junio C Hamano Mon, 22 Jul 2013 18:23:53 +0000 (11:23 -0700)

Merge branch 'es/blame-L-breakage'

The refactoring made for parsing "-L" option recently to support
"git log -L" seems to have broken "git blame -L X,-5" to show 5
lines leading to X.

* es/blame-L-breakage:
blame-options.txt: explain that -L <start> and <end> are optional
blame-options.txt: place each -L option variation on its own line
t8001/t8002 (blame): add blame -L :funcname tests
t8001/t8002 (blame): add blame -L tests
t8001/t8002 (blame): modernize style
line-range: fix "blame -L X,-N" regression

Merge branch 'tr/protect-low-3-fds'Junio C Hamano Mon, 22 Jul 2013 18:23:35 +0000 (11:23 -0700)

Merge branch 'tr/protect-low-3-fds'

When "git" is spawned in such a way that any of the low 3 file
descriptors is closed, our first open() may yield file descriptor 2,
and writing error message to it would screw things up in a big way.

* tr/protect-low-3-fds:
git: ensure 0/1/2 are open in main()
daemon/shell: refactor redirection of 0/1/2 from /dev/null

Merge branch 'sb/parse-object-buffer-eaten'Junio C Hamano Mon, 22 Jul 2013 18:23:32 +0000 (11:23 -0700)

Merge branch 'sb/parse-object-buffer-eaten'

* sb/parse-object-buffer-eaten:
parse_object_buffer: correct freeing the buffer

Merge branch 'tr/do-not-call-submodules-subprojects'Junio C Hamano Mon, 22 Jul 2013 18:23:30 +0000 (11:23 -0700)

Merge branch 'tr/do-not-call-submodules-subprojects'

* tr/do-not-call-submodules-subprojects:
show-branch: fix description of --date-order
apply, entry: speak of submodules instead of subprojects

Merge branch 'mm/diff-no-patch-synonym-to-s'Junio C Hamano Mon, 22 Jul 2013 18:23:27 +0000 (11:23 -0700)

Merge branch 'mm/diff-no-patch-synonym-to-s'

"git show -s" was less discoverable than it should be.

* mm/diff-no-patch-synonym-to-s:
Documentation/git-log.txt: capitalize section names
Documentation: move description of -s, --no-patch to diff-options.txt
Documentation/git-show.txt: include common diff options, like git-log.txt
diff: allow --patch & cie to override -s/--no-patch
diff: allow --no-patch as synonym for -s
t4000-diff-format.sh: modernize style

Merge branch 'dw/request-pull-diag'Junio C Hamano Mon, 22 Jul 2013 18:23:24 +0000 (11:23 -0700)

Merge branch 'dw/request-pull-diag'

* dw/request-pull-diag:
request-pull: improve error message for invalid revision args

Merge branch 'jc/mailmap-case-insensitivity'Junio C Hamano Mon, 22 Jul 2013 18:23:16 +0000 (11:23 -0700)

Merge branch 'jc/mailmap-case-insensitivity'

The mailmap mechanism unnecessarily downcased the e-mail addresses
in the output, and also ignored the human name when it is a single
character name.

This now has become Eric Sunshine's series, even though it still is
under jc/ hierarchy.

* jc/mailmap-case-insensitivity:
mailmap: style fixes
mailmap: debug: avoid passing NULL to fprintf() '%s' conversion specification
mailmap: debug: eliminate -Wformat field precision type warning
mailmap: debug: fix malformed fprintf() format conversion specification
mailmap: debug: fix out-of-order fprintf() arguments
mailmap: do not downcase mailmap entries
t4203: demonstrate loss of uppercase characters in canonical email
mailmap: do not lose single-letter names
t4203: demonstrate loss of single-character name in mailmap entry

Merge branch 'tr/fd-gotcha-fixes'Junio C Hamano Mon, 22 Jul 2013 18:23:12 +0000 (11:23 -0700)

Merge branch 'tr/fd-gotcha-fixes'

Two places we did not check return value (expected to be a file
descriptor) correctly.

* tr/fd-gotcha-fixes:
run-command: dup_devnull(): guard against syscalls failing
git_mkstemps: correctly test return value of open()

Merge branch 'mm/color-auto-default'Junio C Hamano Mon, 22 Jul 2013 18:23:10 +0000 (11:23 -0700)

Merge branch 'mm/color-auto-default'

A finishing touch to fix breakage to "add -e" caused by defaulting
ui.color to "auto".

* mm/color-auto-default:
git add -e: Explicitly specify that patch should have no color

Merge branch 'jc/simple-add-must-be-a-no-op'Junio C Hamano Mon, 22 Jul 2013 18:23:06 +0000 (11:23 -0700)

Merge branch 'jc/simple-add-must-be-a-no-op'

This detected a mismerge of one of "add-2.0" topics to the 'jch'
and 'pu' branches.

* jc/simple-add-must-be-a-no-op:
t2202: make sure "git add" (no args) stays a no-op

Sync with maintJunio C Hamano Mon, 22 Jul 2013 06:03:46 +0000 (23:03 -0700)

Sync with maint

* maint:
Update draft release notes to 1.8.3.4
t9801: git-p4: check ignore files with client spec

Update draft release notes to 1.8.3.4Junio C Hamano Mon, 22 Jul 2013 06:02:53 +0000 (23:02 -0700)

Update draft release notes to 1.8.3.4

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

Merge branch 'rr/maint-fetch-tag-doc-asterisks' into... Junio C Hamano Mon, 22 Jul 2013 05:51:45 +0000 (22:51 -0700)

Merge branch 'rr/maint-fetch-tag-doc-asterisks' into maint

* rr/maint-fetch-tag-doc-asterisks:
fetch-options.txt: prevent a wildcard refspec from getting misformatted

Merge branch 'dk/maint-t5150-dirname' into maintJunio C Hamano Mon, 22 Jul 2013 05:51:43 +0000 (22:51 -0700)

Merge branch 'dk/maint-t5150-dirname' into maint

* dk/maint-t5150-dirname:
tests: allow sha1's as part of the path

Merge branch 'dk/version-gen-gitdir' into maintJunio C Hamano Mon, 22 Jul 2013 05:51:41 +0000 (22:51 -0700)

Merge branch 'dk/version-gen-gitdir' into maint

* dk/version-gen-gitdir:
GIT-VERSION-GEN: support non-standard $GIT_DIR path

Merge branch 'nk/config-local-doc' into maintJunio C Hamano Mon, 22 Jul 2013 05:51:39 +0000 (22:51 -0700)

Merge branch 'nk/config-local-doc' into maint

* nk/config-local-doc:
config: Add description of --local option

Merge branch 'kb/diff-blob-blob-doc' into maintJunio C Hamano Mon, 22 Jul 2013 05:51:37 +0000 (22:51 -0700)

Merge branch 'kb/diff-blob-blob-doc' into maint

* kb/diff-blob-blob-doc:
Documentation: Move "git diff <blob> <blob>"

Merge branch 'mm/merge-in-dirty-worktree-doc' into... Junio C Hamano Mon, 22 Jul 2013 05:51:32 +0000 (22:51 -0700)

Merge branch 'mm/merge-in-dirty-worktree-doc' into maint

* mm/merge-in-dirty-worktree-doc:
Documentation/git-merge.txt: weaken warning about uncommited changes

Merge branch 'ph/builtin-srcs-are-in-subdir-these-days... Junio C Hamano Mon, 22 Jul 2013 05:51:29 +0000 (22:51 -0700)

Merge branch 'ph/builtin-srcs-are-in-subdir-these-days' into maint

* ph/builtin-srcs-are-in-subdir-these-days:
fix "builtin-*" references to be "builtin/*"

Merge branch 'ft/doc-git-transport' into maintJunio C Hamano Mon, 22 Jul 2013 05:51:24 +0000 (22:51 -0700)

Merge branch 'ft/doc-git-transport' into maint

* ft/doc-git-transport:
documentation: add git:// transport security notice

Merge branch 'mh/maint-lockfile-overflow' into maintJunio C Hamano Mon, 22 Jul 2013 05:51:22 +0000 (22:51 -0700)

Merge branch 'mh/maint-lockfile-overflow' into maint

* mh/maint-lockfile-overflow:
lockfile: fix buffer overflow in path handling

Merge branch 'jc/maint-diff-core-safecrlf' into maintJunio C Hamano Mon, 22 Jul 2013 05:48:13 +0000 (22:48 -0700)

Merge branch 'jc/maint-diff-core-safecrlf' into maint

Avoid failing "git diff" when core.safecrlf is set to true, because
the user cannot tell where the breakage is in preparation for fixing
and committing.

* jc/maint-diff-core-safecrlf:
diff: demote core.safecrlf=true to core.safecrlf=warn

t9801: git-p4: check ignore files with client specVitor Antunes Thu, 18 Jul 2013 23:04:53 +0000 (00:04 +0100)

t9801: git-p4: check ignore files with client spec

This test confirms that a file can be ignored during git p4 sync if if is
excluded in P4 client specification.

Signed-off-by: Vitor Antunes <vitor.hda@gmail.com>
Acked-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t2202: make sure "git add" (no args) stays a no-opJunio C Hamano Sat, 20 Jul 2013 03:57:01 +0000 (20:57 -0700)

t2202: make sure "git add" (no args) stays a no-op

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

git add -e: Explicitly specify that patch should have... Andrew Wong Thu, 18 Jul 2013 22:58:04 +0000 (18:58 -0400)

git add -e: Explicitly specify that patch should have no color

After 4c7f1819 (make color.ui default to 'auto', 2013-06-10), the
patch file to be edited during 'git add -e' receives all the color
codes. This is because diffopt.use_color defaults to -1, which
causes want_color to now return 'auto'.

By explicitly setting use_color to 0, we can ensure the diff output
has no color codes in it.

Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
Acked-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Sync with maintJunio C Hamano Fri, 19 Jul 2013 18:15:48 +0000 (11:15 -0700)

Sync with maint

Start preparing for 1.8.3.4Junio C Hamano Fri, 19 Jul 2013 17:59:36 +0000 (10:59 -0700)

Start preparing for 1.8.3.4

Hopefully this will be the final maintenance release before we go to
feature freeze for 1.8.4.

apply.c::find_name_traditional(): do not initialize... Stefan Beller Thu, 18 Jul 2013 21:35:27 +0000 (23:35 +0200)

apply.c::find_name_traditional(): do not initialize len to the line's length

The variable len is set to

len = strchrnul(line, '\n') - line;

unconditionally 9 lines later, hence we can remove the call to strlen.

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

http-push.c::add_send_request(): do not initialize... Stefan Beller Thu, 18 Jul 2013 21:35:26 +0000 (23:35 +0200)

http-push.c::add_send_request(): do not initialize transfer_request

That pointer will be assigned to new memory via

request = xmalloc(sizeof(*request));

20 lines later unconditionally anyway, so it's safe to not assign it
to an arbitrary variable.

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

Merge branch 'tr/test-lint-no-export-assignment-in... Junio C Hamano Fri, 19 Jul 2013 17:43:13 +0000 (10:43 -0700)

Merge branch 'tr/test-lint-no-export-assignment-in-shell' into maint

* tr/test-lint-no-export-assignment-in-shell:
test-lint: detect 'export FOO=bar'
t9902: fix 'test A == B' to use = operator

Merge branch 'rr/name-rev-stdin-doc' into maintJunio C Hamano Fri, 19 Jul 2013 17:43:08 +0000 (10:43 -0700)

Merge branch 'rr/name-rev-stdin-doc' into maint

* rr/name-rev-stdin-doc:
name-rev doc: rewrite --stdin paragraph

Merge branch 'ft/diff-rename-default-score-is-half... Junio C Hamano Fri, 19 Jul 2013 17:43:05 +0000 (10:43 -0700)

Merge branch 'ft/diff-rename-default-score-is-half' into maint

* ft/diff-rename-default-score-is-half:
diff-options: document default similarity index

Merge branch 'jc/t1512-fix' into maintJunio C Hamano Fri, 19 Jul 2013 17:43:01 +0000 (10:43 -0700)

Merge branch 'jc/t1512-fix' into maint

* jc/t1512-fix:
get_short_sha1(): correctly disambiguate type-limited abbreviation
t1512: correct leftover constants from earlier edition

Merge branch 'vl/typofix' into maintJunio C Hamano Fri, 19 Jul 2013 17:42:57 +0000 (10:42 -0700)

Merge branch 'vl/typofix' into maint

* vl/typofix:
random typofixes (committed missing a 't', successful missing an 's')

Merge branch 'wk/doc-git-has-grown' into maintJunio C Hamano Fri, 19 Jul 2013 17:42:52 +0000 (10:42 -0700)

Merge branch 'wk/doc-git-has-grown' into maint

* wk/doc-git-has-grown:
user-manual: Update download size for Git and the kernel

Merge branch 'ys/cygstart' into maintJunio C Hamano Fri, 19 Jul 2013 17:42:49 +0000 (10:42 -0700)

Merge branch 'ys/cygstart' into maint

* ys/cygstart:
web--browse: support /usr/bin/cygstart on Cygwin

Merge branch 'mm/push-force-is-dangerous' into maintJunio C Hamano Fri, 19 Jul 2013 17:42:46 +0000 (10:42 -0700)

Merge branch 'mm/push-force-is-dangerous' into maint

* mm/push-force-is-dangerous:
Documentation/git-push.txt: explain better cases where --force is dangerous

Merge branch 'rs/logical-vs-binary-or' into maintJunio C Hamano Fri, 19 Jul 2013 17:42:18 +0000 (10:42 -0700)

Merge branch 'rs/logical-vs-binary-or' into maint

* rs/logical-vs-binary-or:
use logical OR (||) instead of binary OR (|) in logical context

Merge branch 'js/test-ln-s-add' into maintJunio C Hamano Fri, 19 Jul 2013 17:41:22 +0000 (10:41 -0700)

Merge branch 'js/test-ln-s-add' into maint

* js/test-ln-s-add:
t4011: remove SYMLINKS prerequisite
t6035: use test_ln_s_add to remove SYMLINKS prerequisite
t3509, t4023, t4114: use test_ln_s_add to remove SYMLINKS prerequisite
t3100: use test_ln_s_add to remove SYMLINKS prerequisite
t3030: use test_ln_s_add to remove SYMLINKS prerequisite
t0000: use test_ln_s_add to remove SYMLINKS prerequisite
tests: use test_ln_s_add to remove SYMLINKS prerequisite (trivial cases)
tests: introduce test_ln_s_add
t3010: modernize style
test-chmtime: Fix exit code on Windows

Merge branch 'jk/apache-test-for-2.4' into maintJunio C Hamano Fri, 19 Jul 2013 17:41:01 +0000 (10:41 -0700)

Merge branch 'jk/apache-test-for-2.4' into maint

Allow our tests to run with newer Apache.

* jk/apache-test-for-2.4:
lib-httpd/apache.conf: check version only after mod_version loads
t/lib-httpd/apache.conf: configure an MPM module for apache 2.4
t/lib-httpd/apache.conf: load compat access module in apache 2.4
t/lib-httpd/apache.conf: load extra auth modules in apache 2.4
t/lib-httpd/apache.conf: do not use LockFile in apache >= 2.4

Merge branch 'tr/test-commit-only-on-orphan' into maintJunio C Hamano Fri, 19 Jul 2013 17:40:57 +0000 (10:40 -0700)

Merge branch 'tr/test-commit-only-on-orphan' into maint

* tr/test-commit-only-on-orphan:
Test 'commit --only' after 'checkout --orphan'

Merge branch 'sb/archive-zip-double-assignment-fix... Junio C Hamano Fri, 19 Jul 2013 17:40:53 +0000 (10:40 -0700)

Merge branch 'sb/archive-zip-double-assignment-fix' into maint

* sb/archive-zip-double-assignment-fix:
archive-zip:write_zip_entry: Remove second reset of size variable to zero.

Merge branch 'th/bisect-skip-report-range-fix' into... Junio C Hamano Fri, 19 Jul 2013 17:39:12 +0000 (10:39 -0700)

Merge branch 'th/bisect-skip-report-range-fix' into maint

The bisect log listed incorrect commits when bisection ends with
only skipped ones.

* th/bisect-skip-report-range-fix:
bisect: Fix log output for multi-parent skip ranges

Merge branch 'rs/tar-tests' into maintJunio C Hamano Fri, 19 Jul 2013 17:39:09 +0000 (10:39 -0700)

Merge branch 'rs/tar-tests' into maint

* rs/tar-tests:
t5000: test long filenames
t5000: simplify tar-tree tests
t5000: use check_tar for prefix test
t5000: factor out check_tar
t5000, t5003: create directories for extracted files lazily
t5000: integrate export-subst tests into regular tests

Merge branch 'rr/column-doc' into maintJunio C Hamano Fri, 19 Jul 2013 17:39:06 +0000 (10:39 -0700)

Merge branch 'rr/column-doc' into maint

* rr/column-doc:
column doc: rewrite documentation for column.ui

Merge branch 'rs/discard-index-discard-array' into... Junio C Hamano Fri, 19 Jul 2013 17:39:01 +0000 (10:39 -0700)

Merge branch 'rs/discard-index-discard-array' into maint

* rs/discard-index-discard-array:
read-cache: free cache in discard_index
read-cache: add simple performance test

Merge branch 'tr/coverage' into maintJunio C Hamano Fri, 19 Jul 2013 17:38:18 +0000 (10:38 -0700)

Merge branch 'tr/coverage' into maint

The test coverage framework was left broken for some time.

* tr/coverage:
coverage: build coverage-untested-functions by default
coverage: set DEFAULT_TEST_TARGET to avoid using prove
coverage: do not delete .gcno files before building
coverage: split build target into compile and test

Documentation: "git reset <tree-ish> <pathspec>" takes... Stefan Beller Fri, 19 Jul 2013 16:26:24 +0000 (18:26 +0200)

Documentation: "git reset <tree-ish> <pathspec>" takes a tree-ish, not tree-sh

Reported-By: Ibrahim M. Ghazal <imgx64@gmail.com>
Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add the LAST_ARG_MUST_BE_NULL macroRamsay Jones Thu, 18 Jul 2013 20:02:12 +0000 (21:02 +0100)

Add the LAST_ARG_MUST_BE_NULL macro

The sentinel function attribute is not understood by versions of
the gcc compiler prior to v4.0. At present, for earlier versions
of gcc, the build issues 108 warnings related to the unknown
attribute. In order to suppress the warnings, we conditionally
define the LAST_ARG_MUST_BE_NULL macro to provide the sentinel attribute
for gcc v4.0 and newer.

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

send-email: be explicit with SSL certificate verificationRamkumar Ramachandra Thu, 18 Jul 2013 16:53:11 +0000 (09:53 -0700)

send-email: be explicit with SSL certificate verification

When initiating an SSL connection without explicitly specifying the
SSL certificate verification mode, Net::SMTP::SSL defaults to no
verification, but recent versions of the module gives a warning
against this use of the default.

Enable certificate verification by default, using /etc/ssl/certs as
the default path for certificates of certificate authorities. This
path can be overriden by the --smtp-ssl-cert-path command line
option and the sendemail.smtpSSLCertPath configuration variable.

Passing an empty string as the path for CA certificates path disables
the SSL certificate verification explicitly, which does not trigger
the warning from recent versions of Net::SMTP::SSL.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Helped-by: Brian M. Carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

describe: fix --contains when a tag is given as inputJunio C Hamano Thu, 18 Jul 2013 21:46:51 +0000 (14:46 -0700)

describe: fix --contains when a tag is given as input

"git describe" takes a commit and gives it a name based on tags in
its neighbourhood. The command does take a commit-ish but when
given a tag that points at a commit, it should dereference the tag
before computing the name for the commit.

As the whole processing is internally delegated to name-rev, if we
unwrap tags down to the underlying commit when invoking name-rev, it
will make the name-rev issue an error message based on the unwrapped
object name (i.e. either 40-hex object name, or "$tag^0") that is
different from what the end-user gave to the command when the commit
cannot be described. Introduce an internal option --peel-tag to the
name-rev to tell it to unwrap a tag in its input from the command
line.

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

name-rev: differentiate between tags and commits they... Junio C Hamano Thu, 18 Jul 2013 21:11:35 +0000 (14:11 -0700)

name-rev: differentiate between tags and commits they point at

"git name-rev --stdin" has been fixed to convert an object name that
points at a tag to a refname of the tag. The codepath to handle its
command line arguments, however, fed the commit that the tag points
at to the underlying naming machinery.

With this fix, you will get this:

$ git name-rev --refs=tags/\* --name-only $(git rev-parse v1.8.3 v1.8.3^0)
v1.8.3
v1.8.3^0

which is the same as what you would get from the fixed "--stdin" variant:

$ git rev-parse v1.8.3 v1.8.3^0 | git name-rev --refs=tags/\* --name-only
v1.8.3
v1.8.3^0

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

Update draft release notes to 1.8.4Junio C Hamano Thu, 18 Jul 2013 19:57:38 +0000 (12:57 -0700)

Update draft release notes to 1.8.4

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

Merge branch 'jc/revert-clone-doc-update-for-push-from... Junio C Hamano Thu, 18 Jul 2013 19:59:59 +0000 (12:59 -0700)

Merge branch 'jc/revert-clone-doc-update-for-push-from-shallow'

* jc/revert-clone-doc-update-for-push-from-shallow:
Revert "git-clone.txt: remove the restriction on pushing from a shallow clone"

Merge branch 'rs/mailmap-himself'Junio C Hamano Thu, 18 Jul 2013 19:59:58 +0000 (12:59 -0700)

Merge branch 'rs/mailmap-himself'

* rs/mailmap-himself:
.mailmap: René Scharfe has a new email address

Merge branch 'sb/mailmap-updates'Junio C Hamano Thu, 18 Jul 2013 19:59:56 +0000 (12:59 -0700)

Merge branch 'sb/mailmap-updates'

* sb/mailmap-updates:
.mailmap: combine more (email, name) to individual persons
.mailmap: Combine more (email, name) to individual persons
.mailmap: Map email addresses to names

Merge branch 'jk/in-pack-size-measurement'Junio C Hamano Thu, 18 Jul 2013 19:59:41 +0000 (12:59 -0700)

Merge branch 'jk/in-pack-size-measurement'

"git cat-file --batch-check=<format>" is added, primarily to allow
on-disk footprint of objects in packfiles (often they are a lot
smaller than their true size, when expressed as deltas) to be
reported.

* jk/in-pack-size-measurement:
pack-revindex: radix-sort the revindex
pack-revindex: use unsigned to store number of objects
cat-file: split --batch input lines on whitespace
cat-file: add %(objectsize:disk) format atom
cat-file: add --batch-check=<format>
cat-file: refactor --batch option parsing
cat-file: teach --batch to stream blob objects
t1006: modernize output comparisons
teach sha1_object_info_extended a "disk_size" query
zero-initialize object_info structs

Merge branch 'bp/mediawiki-preview'Junio C Hamano Thu, 18 Jul 2013 19:59:34 +0000 (12:59 -0700)

Merge branch 'bp/mediawiki-preview'

Add a command to allow previewing the contents locally before
pushing it out, when working with a MediaWiki remote.

I personally do not think this belongs to Git. If you are working
on a set of AsciiDoc source files, you sure do want to locally
format to preview what you will be pushing out, and if you are
working on a set of C or Java source files, you do want to test it
before pushing it out, too. That kind of thing belongs to your
build script, not to your SCM.

But I'll let it pass, as this is only a contrib/ thing.

* bp/mediawiki-preview:
git-remote-mediawiki: add preview subcommand into git mw
git-remote-mediawiki: add git-mw command
git-remote-mediawiki: factoring code between git-remote-mediawiki and Git::Mediawiki
git-remote-mediawiki: update tests to run with the new bin-wrapper
git-remote-mediawiki: add a git bin-wrapper for developement
wrap-for-bin: make bin-wrappers chainable
git-remote-mediawiki: introduction of Git::Mediawiki.pm

Merge branch 'bc/commit-invalid-utf8'Junio C Hamano Thu, 18 Jul 2013 19:58:19 +0000 (12:58 -0700)

Merge branch 'bc/commit-invalid-utf8'

Logic to auto-detect character encodings in the commit log message
did not reject overlong and invalid UTF-8 characters.

* bc/commit-invalid-utf8:
commit: reject non-characters
commit: reject overlong UTF-8 sequences
commit: reject invalid UTF-8 codepoints

Merge branch 'es/overlapping-range-set'Junio C Hamano Thu, 18 Jul 2013 19:58:17 +0000 (12:58 -0700)

Merge branch 'es/overlapping-range-set'

* es/overlapping-range-set:
range_set: fix coalescing bug when range is a subset of another
t4211: fix broken test when one -L range is subset of another

Merge branch 'jk/maint-clone-shared-no-connectivity... Junio C Hamano Thu, 18 Jul 2013 19:48:28 +0000 (12:48 -0700)

Merge branch 'jk/maint-clone-shared-no-connectivity-validation'

"git clone -s/-l" is a filesystem level copy and does not offer any
protection against source repository being corrupt. While the
connectivity validation checks commits and trees being readable, it
made the otherwise instantaneous local modes of clone much more
expensive, without protecting blob data from bitflips.

* jk/maint-clone-shared-no-connectivity-validation:
clone: drop connectivity check for local clones

Merge branch 'bc/push-match-many-refs'Junio C Hamano Thu, 18 Jul 2013 19:48:25 +0000 (12:48 -0700)

Merge branch 'bc/push-match-many-refs'

Pushing to repositories with many refs employed O(m*n) algorithm
where n is the number of refs on the receiving end.

* bc/push-match-many-refs:
remote.c: avoid O(m*n) behavior in match_push_refs

Merge branch 'rr/rebase-reflog-message-reword'Junio C Hamano Thu, 18 Jul 2013 19:48:20 +0000 (12:48 -0700)

Merge branch 'rr/rebase-reflog-message-reword'

"git rebase [-i]" used to leave just "rebase" as its reflog message
for some operations. This rewords them to be more informative.

* rr/rebase-reflog-message-reword:
rebase -i: use a better reflog message
rebase: use a better reflog message

show-branch: fix description of --date-orderThomas Rast Thu, 18 Jul 2013 12:26:56 +0000 (14:26 +0200)

show-branch: fix description of --date-order

The existing description reads as if it somehow applies a filter.
Change it to explain that it is merely about the ordering.

Message-proposed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

apply, entry: speak of submodules instead of subprojectsThomas Rast Thu, 18 Jul 2013 12:26:55 +0000 (14:26 +0200)

apply, entry: speak of submodules instead of subprojects

There are only four (with some generous rounding) instances in the
current source code where we speak of "subproject" instead of
"submodule". They are as follows:

* one error message in git-apply and two in entry.c

* the patch format for submodule changes

The latter was introduced in 0478675 (Expose subprojects as special
files to "git diff" machinery, 2007-04-15), apparently before the
terminology was settled. We can of course not change the patch
format.

Let's at least change the error messages to consistently call them
"submodule".

Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

.mailmap: combine more (email, name) to individual... Stefan Beller Wed, 17 Jul 2013 20:16:31 +0000 (22:16 +0200)

.mailmap: combine more (email, name) to individual persons

I got more responses from people regarding the .mailmap file.
All added persons gave permission to add them to the .mailmap file.

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

parse_object_buffer: correct freeing the bufferStefan Beller Wed, 17 Jul 2013 22:09:42 +0000 (00:09 +0200)

parse_object_buffer: correct freeing the buffer

If we exit early in the function parse_object_buffer, we did not
write to *eaten_p. Then the calling function parse_object, which looks
like the following with respect to the eaten variable, cannot rely on a
proper value set in eaten, hence the freeing of the buffer depends
on random values in memory.

struct object *parse_object(const unsigned char *sha1)
{
int eaten;
...
obj = parse_object_buffer(sha1, type, size, buffer, &eaten);
if (!eaten)
free(buffer);
}

This change makes sure, the buffer freeing condition is deterministic.

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

blame-options.txt: explain that -L <start> and <end... Eric Sunshine Wed, 17 Jul 2013 21:25:32 +0000 (17:25 -0400)

blame-options.txt: explain that -L <start> and <end> are optional

The ability to omit either end of the -L range is a handy but
undocumented shortcut, and is thus not easily discovered. Fix this
shortcoming.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

blame-options.txt: place each -L option variation on... Eric Sunshine Wed, 17 Jul 2013 21:25:31 +0000 (17:25 -0400)

blame-options.txt: place each -L option variation on its own line

Standard practice in Git documentation is for each variation of an
option (such as: -p / --porcelain) to be placed on its own line in the
OPTIONS table. The -L option does not follow suit. It cuddles
"-L <start>,<end>" and "-L :<regex>", separated by a comma. This is
inconsistent and potentially confusing since the comma separating them
is typeset the same as the comma in "<start>,<end>". Fix this by placing
each variation on its own line.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t8001/t8002 (blame): add blame -L :funcname testsEric Sunshine Wed, 17 Jul 2013 21:25:30 +0000 (17:25 -0400)

t8001/t8002 (blame): add blame -L :funcname tests

git-blame inherited "-L :funcname" support when "-L :funcname:file" was
implemented for git-log. Add tests.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t8001/t8002 (blame): add blame -L testsEric Sunshine Wed, 17 Jul 2013 21:25:29 +0000 (17:25 -0400)

t8001/t8002 (blame): add blame -L tests

With the exception of a couple "corner case" checks in t8003 (and some
indirect tests in t4211 of -L parsing code shared by log -L), there is
no systematic checking of blame -L. Add tests to check blame -L
directly.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t8001/t8002 (blame): modernize styleEric Sunshine Wed, 17 Jul 2013 21:25:28 +0000 (17:25 -0400)

t8001/t8002 (blame): modernize style

In particular,

- indent with tabs
- cuddle test description and opening body quote with test_expect_foo
- normalize test descriptions and case
- remove whitepsace following redirection operator
- use standardized filenames (such as "actual", "expected")

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

line-range: fix "blame -L X,-N" regressionEric Sunshine Wed, 17 Jul 2013 21:25:27 +0000 (17:25 -0400)

line-range: fix "blame -L X,-N" regression

"blame -L X,-N" is documented as blaming "N lines ending at X". In
practice, the behavior is achieved by swapping the two range endpoints
if the second is less than the first. 25ed3412 (Refactor parse_loc;
2013-03-28) broke this interpretation by removing the swapping code from
blame.c and failing to add it to line-range.c along with other code
relocated from blame.c. Thus, such a range is effectively treated as
empty. Fix this regression.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

.mailmap: René Scharfe has a new email addressRené Scharfe Wed, 17 Jul 2013 19:54:25 +0000 (21:54 +0200)

.mailmap: René Scharfe has a new email address

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

show-ref: make --head always show the HEAD refDoug Bell Wed, 17 Jul 2013 00:05:14 +0000 (19:05 -0500)

show-ref: make --head always show the HEAD ref

The docs seem to say that doing

git show-ref --head --tags

would show both the HEAD ref and all the tag refs. However, doing
both --head and either of --tags or --heads would filter out the HEAD
ref.

Also update the documentation to describe the new behavior and add
tests for the show-ref command.

[jc: Doug did proofread the tests, but it was done by me and bugs in
it are mine].

Signed-off-by: Doug Bell <madcityzen@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/git-log.txt: capitalize section namesMatthieu Moy Tue, 16 Jul 2013 08:05:40 +0000 (10:05 +0200)

Documentation/git-log.txt: capitalize section names

This is the convention in most other files and even at the beginning of
git-log.txt

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: move description of -s, --no-patch to... Matthieu Moy Tue, 16 Jul 2013 08:05:39 +0000 (10:05 +0200)

Documentation: move description of -s, --no-patch to diff-options.txt

Technically, "-s, --no-patch" is implemented in diff.c ("git diff
--no-patch" is essentially useless, but valid). From the user point of
view, this allows the documentation to show up in "git show --help",
which is one of the most useful use of the option.

While we're there, add a sentence explaining why the option can be
useful.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/git-show.txt: include common diff options... Matthieu Moy Tue, 16 Jul 2013 08:05:38 +0000 (10:05 +0200)

Documentation/git-show.txt: include common diff options, like git-log.txt

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff: allow --patch & cie to override -s/--no-patchMatthieu Moy Tue, 16 Jul 2013 08:05:37 +0000 (10:05 +0200)

diff: allow --patch & cie to override -s/--no-patch

All options that trigger a patch output now override --no-patch.

The case of --binary deserves extra attention: the name may suggest that
it turns a normal patch into a binary patch, but it actually already
enables patch output when normally disabled (e.g. "git log --binary"
displays a patch), hence it makes sense for "git show --no-patch
--binary" to display the binary patch.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff: allow --no-patch as synonym for -sMatthieu Moy Tue, 16 Jul 2013 08:05:36 +0000 (10:05 +0200)

diff: allow --no-patch as synonym for -s

This follows the usual convention of having a --no-foo option to negate
--foo.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t4000-diff-format.sh: modernize styleMatthieu Moy Tue, 16 Jul 2013 08:05:35 +0000 (10:05 +0200)

t4000-diff-format.sh: modernize style

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-log.txt: fix typesetting of example "git-log -L... Eric Sunshine Tue, 16 Jul 2013 00:10:36 +0000 (20:10 -0400)

git-log.txt: fix typesetting of example "git-log -L" invocation

All surrounding examples are typeset as monospaced text. Follow suit.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Acked-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git: ensure 0/1/2 are open in main()Thomas Rast Tue, 16 Jul 2013 09:27:37 +0000 (11:27 +0200)

git: ensure 0/1/2 are open in main()

Not having an open FD in the 0--2 range can lead to strange results,
for example, a subsequent open() may return 2 (stderr) and then a
die() would clobber this file.

git-daemon and git-shell already guarded against this, but apparently
users also manage to trip over it in other git commands. So we call
sanitize_stdfds() during main git startup.

Since these FDs are inherited, this covers all use of 'git foo ...',
and all internal C commands when called directly. It does not fix
shell/perl commands called directly.

Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

daemon/shell: refactor redirection of 0/1/2 from /dev... Thomas Rast Tue, 16 Jul 2013 09:27:36 +0000 (11:27 +0200)

daemon/shell: refactor redirection of 0/1/2 from /dev/null

Both daemon.c and shell.c contain logic to open FDs 0/1/2 from
/dev/null if they are not already open. Move the function in daemon.c
to setup.c and use it in shell.c, too.

While there, remove a 'not' that inverted the meaning of the comment.
The point is indeed to *avoid* messing up.

Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

request-pull: improve error message for invalid revisio... Dirk Wallenstein Wed, 17 Jul 2013 17:28:11 +0000 (19:28 +0200)

request-pull: improve error message for invalid revision args

Currently, when an invalid revision is specified, the error message is:

fatal: Needed a single revision

This is misleading because, you might think there is something wrong
with the command line as a whole.

Now the user gets a more meaningful error message, showing the invalid
revision.

Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

upload-pack: remove a piece of dead codeMatthijs Kooijman Thu, 11 Jul 2013 11:25:52 +0000 (13:25 +0200)

upload-pack: remove a piece of dead code

Commit 682c7d2 (upload-pack: fix off-by-one depth calculation in shallow
clone) introduced a new check in get_shallow_commits to decide when to
stop traversing the history and mark the current commit as a shallow
root.

With this new check in place, the old check can no longer be true, since
the first check always fires first. This commit removes that check,
making the code a bit more simple again.

Signed-off-by: Matthijs Kooijman <matthijs@stdin.nl>
Acked-by: Duy Nguyen <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.8.4Junio C Hamano Mon, 15 Jul 2013 17:33:21 +0000 (10:33 -0700)

Update draft release notes to 1.8.4

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

Sync with 1.8.3.3Junio C Hamano Mon, 15 Jul 2013 17:45:02 +0000 (10:45 -0700)

Sync with 1.8.3.3

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

Git 1.8.3.3 v1.8.3.3Junio C Hamano Mon, 15 Jul 2013 17:39:43 +0000 (10:39 -0700)

Git 1.8.3.3

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

Merge branch 'tr/maint-apply-non-git-patch-parsefix... Junio C Hamano Mon, 15 Jul 2013 17:36:14 +0000 (10:36 -0700)

Merge branch 'tr/maint-apply-non-git-patch-parsefix' into maint

"git apply" parsed patches that add new files, generated by programs
other than Git, incorrectly. This is an old breakage in v1.7.11.

* tr/maint-apply-non-git-patch-parsefix:
apply: carefully strdup a possibly-NULL name