git/git.git
7 years agoMerge 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

7 years agoMerge 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

7 years agoMerge 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

7 years agoMerge 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

7 years agoMerge 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

7 years agoMerge 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

7 years agoMerge 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

7 years agoMerge 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

7 years agoMerge 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

7 years agoMerge 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()

7 years agoMerge 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

7 years agoMerge 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

7 years agoSync with maint
Junio 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

7 years agoUpdate draft release notes to 1.8.3.4
Junio 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>
7 years agoMerge branch 'rr/maint-fetch-tag-doc-asterisks' into maint
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

7 years agoMerge branch 'dk/maint-t5150-dirname' into maint
Junio 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

7 years agoMerge branch 'dk/version-gen-gitdir' into maint
Junio 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

7 years agoMerge branch 'nk/config-local-doc' into maint
Junio 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

7 years agoMerge branch 'kb/diff-blob-blob-doc' into maint
Junio 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>"

7 years agoMerge branch 'mm/merge-in-dirty-worktree-doc' into maint
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

7 years agoMerge branch 'ph/builtin-srcs-are-in-subdir-these-days' into maint
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/*"

7 years agoMerge branch 'ft/doc-git-transport' into maint
Junio 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

7 years agoMerge branch 'mh/maint-lockfile-overflow' into maint
Junio 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

7 years agoMerge branch 'jc/maint-diff-core-safecrlf' into maint
Junio 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

7 years agot9801: git-p4: check ignore files with client spec
Vitor 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>
7 years agot2202: make sure "git add" (no args) stays a no-op
Junio 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>
7 years agogit add -e: Explicitly specify that patch should have no color
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>
7 years agoSync with maint
Junio C Hamano [Fri, 19 Jul 2013 18:15:48 +0000 (11:15 -0700)]
Sync with maint

7 years agoStart preparing for 1.8.3.4
Junio 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.

7 years agoapply.c::find_name_traditional(): do not initialize len to the line's length
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>
7 years agohttp-push.c::add_send_request(): do not initialize transfer_request
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>
7 years agoMerge branch 'tr/test-lint-no-export-assignment-in-shell' into maint
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

7 years agoMerge branch 'rr/name-rev-stdin-doc' into maint
Junio 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

7 years agoMerge branch 'ft/diff-rename-default-score-is-half' into maint
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

7 years agoMerge branch 'jc/t1512-fix' into maint
Junio 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

7 years agoMerge branch 'vl/typofix' into maint
Junio 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')

7 years agoMerge branch 'wk/doc-git-has-grown' into maint
Junio 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

7 years agoMerge branch 'ys/cygstart' into maint
Junio 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

7 years agoMerge branch 'mm/push-force-is-dangerous' into maint
Junio 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

7 years agoMerge branch 'rs/logical-vs-binary-or' into maint
Junio 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

7 years agoMerge branch 'js/test-ln-s-add' into maint
Junio 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

7 years agoMerge branch 'jk/apache-test-for-2.4' into maint
Junio 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

7 years agoMerge branch 'tr/test-commit-only-on-orphan' into maint
Junio 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'

7 years agoMerge branch 'sb/archive-zip-double-assignment-fix' into maint
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.

7 years agoMerge branch 'th/bisect-skip-report-range-fix' into maint
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

7 years agoMerge branch 'rs/tar-tests' into maint
Junio 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

7 years agoMerge branch 'rr/column-doc' into maint
Junio 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

7 years agoMerge branch 'rs/discard-index-discard-array' into maint
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

7 years agoMerge branch 'tr/coverage' into maint
Junio 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

7 years agoDocumentation: "git reset <tree-ish> <pathspec>" takes a tree-ish, not tree-sh
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>
7 years agoAdd the LAST_ARG_MUST_BE_NULL macro
Ramsay 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>
7 years agoUpdate draft release notes to 1.8.4
Junio 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>
7 years agoMerge branch 'jc/revert-clone-doc-update-for-push-from-shallow'
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"

7 years agoMerge 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

7 years agoMerge 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

7 years agoMerge 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

7 years agoMerge 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

7 years agoMerge 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

7 years agoMerge 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

7 years agoMerge branch 'jk/maint-clone-shared-no-connectivity-validation'
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

7 years agoMerge 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

7 years agoMerge 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

7 years agoshow-branch: fix description of --date-order
Thomas 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>
7 years agoapply, entry: speak of submodules instead of subprojects
Thomas 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>
7 years ago.mailmap: combine more (email, name) to individual persons
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>
7 years agoparse_object_buffer: correct freeing the buffer
Stefan 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>
7 years agoblame-options.txt: explain that -L <start> and <end> are optional
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>
7 years agoblame-options.txt: place each -L option variation on its own line
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>
7 years agot8001/t8002 (blame): add blame -L :funcname tests
Eric 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>
7 years agot8001/t8002 (blame): add blame -L tests
Eric 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>
7 years agot8001/t8002 (blame): modernize style
Eric 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>
7 years agoline-range: fix "blame -L X,-N" regression
Eric 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>
7 years ago.mailmap: René Scharfe has a new email address
René 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>
7 years agoshow-ref: make --head always show the HEAD ref
Doug 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>
7 years agoDocumentation/git-log.txt: capitalize section names
Matthieu 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>
7 years agoDocumentation: move description of -s, --no-patch to diff-options.txt
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>
7 years agoDocumentation/git-show.txt: include common diff options, like git-log.txt
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>
7 years agodiff: allow --patch & cie to override -s/--no-patch
Matthieu 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>
7 years agodiff: allow --no-patch as synonym for -s
Matthieu 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>
7 years agot4000-diff-format.sh: modernize style
Matthieu 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>
7 years agogit-log.txt: fix typesetting of example "git-log -L" invocation
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>
7 years agogit: 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>
7 years agodaemon/shell: refactor redirection of 0/1/2 from /dev/null
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>
7 years agorequest-pull: improve error message for invalid revision args
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>
7 years agoUpdate draft release notes to 1.8.4
Junio 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>
7 years agoSync with 1.8.3.3
Junio 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>
7 years agoGit 1.8.3.3 v1.8.3.3
Junio 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>
7 years agoMerge branch 'tr/maint-apply-non-git-patch-parsefix' into maint
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

7 years agoMerge branch 'bc/http-keep-memory-given-to-curl' into maint
Junio C Hamano [Mon, 15 Jul 2013 17:36:01 +0000 (10:36 -0700)]
Merge branch 'bc/http-keep-memory-given-to-curl' into maint

Older cURL wanted piece of memory we call it with to be stable, but
we updated the auth material after handing it to a call.

* bc/http-keep-memory-given-to-curl:
  http.c: don't rewrite the user:passwd string multiple times

7 years agoMerge branch 'jk/pull-into-dirty-unborn' into maint
Junio C Hamano [Mon, 15 Jul 2013 17:35:43 +0000 (10:35 -0700)]
Merge branch 'jk/pull-into-dirty-unborn' into maint

"git pull" into nothing trashed "local changes" that were in the
index.

* jk/pull-into-dirty-unborn:
  pull: merge into unborn by fast-forwarding from empty tree
  pull: update unborn branch tip after index

7 years agoMerge branch 'fg/submodule-non-ascii-path' into maint
Junio C Hamano [Mon, 15 Jul 2013 17:35:17 +0000 (10:35 -0700)]
Merge branch 'fg/submodule-non-ascii-path' into maint

Many "git submodule" operations did not work on a submodule at a
path whose name is not in ASCII.

* fg/submodule-non-ascii-path:
  t7400: test of UTF-8 submodule names pass under Mac OS
  handle multibyte characters in name

7 years agoMerge branch 'fc/sequencer-plug-leak' into maint
Junio C Hamano [Mon, 15 Jul 2013 17:35:04 +0000 (10:35 -0700)]
Merge branch 'fc/sequencer-plug-leak' into maint

"cherry-pick" had a small leak in its error codepath.

* fc/sequencer-plug-leak:
  sequencer: avoid leaking message buffer when refusing to create an empty commit
  sequencer: remove useless indentation

7 years agoMerge branch 'mt/send-email-cc-match-fix' into maint
Junio C Hamano [Mon, 15 Jul 2013 17:34:36 +0000 (10:34 -0700)]
Merge branch 'mt/send-email-cc-match-fix' into maint

Logic used by git-send-email to suppress cc mishandled names like "A
U. Thor" <author@example.xz>, where the human readable part needs to
be quoted (the user input may not have the double quotes around the
name, and comparison was done between quoted and unquoted strings).
It also mishandled names that need RFC2047 quoting.

* mt/send-email-cc-match-fix:
  send-email: sanitize author when writing From line
  send-email: add test for duplicate utf8 name
  test-send-email: test for pre-sanitized self name
  t/send-email: test suppress-cc=self with non-ascii
  t/send-email: add test with quoted sender
  send-email: make --suppress-cc=self sanitize input
  t/send-email: test suppress-cc=self on cccmd
  send-email: fix suppress-cc=self on cccmd
  t/send-email.sh: add test for suppress-cc=self

7 years agoMerge branch 'bc/send-email-use-port-as-separate-param'
Junio C Hamano [Mon, 15 Jul 2013 17:28:50 +0000 (10:28 -0700)]
Merge branch 'bc/send-email-use-port-as-separate-param'

Pass port number as a separate argument when send-email initializes
Net::SMTP, instead of as a part of the hostname, i.e. host:port.
This allows GSSAPI codepath to match with the hostname given.

* bc/send-email-use-port-as-separate-param:
  send-email: provide port separately from hostname

7 years agoMerge branch 'fg/submodule-clone-depth'
Junio C Hamano [Mon, 15 Jul 2013 17:28:48 +0000 (10:28 -0700)]
Merge branch 'fg/submodule-clone-depth'

Allow shallow-cloning of submodules with "git submodule update".

* fg/submodule-clone-depth:
  Add --depth to submodule update/add

7 years agoMerge branch 'cp/submodule-custom-update'
Junio C Hamano [Mon, 15 Jul 2013 17:28:44 +0000 (10:28 -0700)]
Merge branch 'cp/submodule-custom-update'

In addition to the choice from "rebase, merge, or checkout-detach",
allow a custom command to be used in "submodule update" to update
the working tree of submodules.

* cp/submodule-custom-update:
  submodule update: allow custom command to update submodule working tree

7 years agoMerge branch 'jk/format-patch-from'
Junio C Hamano [Mon, 15 Jul 2013 17:28:39 +0000 (10:28 -0700)]
Merge branch 'jk/format-patch-from'

"git format-patch" learned "--from[=whom]" option, which sets the
"From: " header to the specified person (or the person who runs the
command, if "=whom" part is missing) and move the original author
information to an in-body From: header as necessary.

* jk/format-patch-from:
  teach format-patch to place other authors into in-body "From"
  pretty.c: drop const-ness from pretty_print_context

7 years agoMerge branch 'mv/merge-ff-tristate'
Junio C Hamano [Mon, 15 Jul 2013 17:28:34 +0000 (10:28 -0700)]
Merge branch 'mv/merge-ff-tristate'

The configuration variable "merge.ff" was cleary a tri-state to
choose one from "favor fast-forward when possible", "always create
a merge even when the history could fast-forward" and "do not
create any merge, only update when the history fast-forwards", but
the command line parser did not implement the usual convention of
"last one wins, and command line overrides the configuration"
correctly.

* mv/merge-ff-tristate:
  merge: handle --ff/--no-ff/--ff-only as a tri-state option

7 years agoMerge branch 'jk/fetch-pack-many-refs'
Junio C Hamano [Mon, 15 Jul 2013 17:28:31 +0000 (10:28 -0700)]
Merge branch 'jk/fetch-pack-many-refs'

Fetching between repositories with many refs employed O(n^2)
algorithm to match up the common objects, which has been corrected.

* jk/fetch-pack-many-refs:
  fetch-pack: avoid quadratic behavior in rev_list_push
  commit.c: make compare_commits_by_commit_date global
  fetch-pack: avoid quadratic list insertion in mark_complete

7 years agoRevert "git-clone.txt: remove the restriction on pushing from a shallow clone"
Junio C Hamano [Mon, 15 Jul 2013 15:31:52 +0000 (08:31 -0700)]
Revert "git-clone.txt: remove the restriction on pushing from a shallow clone"

This reverts commit dacd2bcc414e0b7aac36aaa400da0a743c4741cc.

"It fails reliably without corrupting the receiving repository when
it should fail" may be better than the situation before the receiving
end was hardened recently, but the fact that sometimes the push does
not go through still remains.  It is better to advice the users that
they cannot push from a shallow repository as a limitation before
they decide to use (or not to use) a shallow clone.

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