git
11 years agoMerge branch 'maint-1.8.1' into maint
Junio C Hamano [Fri, 12 Apr 2013 18:48:38 +0000 (11:48 -0700)] 
Merge branch 'maint-1.8.1' into maint

* maint-1.8.1:
  fast-export: fix argument name in error messages
  Documentation: distinguish between ref and offset deltas in pack-format

11 years agofast-export: fix argument name in error messages
Paul Price [Fri, 12 Apr 2013 14:05:55 +0000 (10:05 -0400)] 
fast-export: fix argument name in error messages

The --signed-tags argument is plural, while error messages referred
to --signed-tag (singular).  Tweak error messages to correspond to the
argument.

Signed-off-by: Paul Price <price@astro.princeton.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoDocumentation: distinguish between ref and offset deltas in pack-format
Stefan Saasen [Fri, 12 Apr 2013 05:56:24 +0000 (15:56 +1000)] 
Documentation: distinguish between ref and offset deltas in pack-format

eb32d236 introduced the OBJ_OFS_DELTA object that uses a relative offset to
identify the base object instead of the 20-byte SHA1 reference. The pack file
documentation only mentions the SHA1 based reference in its description of the
deltified object entry.

Update the pack format documentation to clarify that the deltified object
representation refers to its base using either a relative negative offset or
the absolute SHA1 identifier.

Signed-off-by: Stefan Saasen <ssaasen@atlassian.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'tb/document-status-u-tradeoff' into maint
Junio C Hamano [Fri, 12 Apr 2013 15:12:47 +0000 (08:12 -0700)] 
Merge branch 'tb/document-status-u-tradeoff' into maint

* tb/document-status-u-tradeoff:
  i18n: make the translation of -u advice in one go

11 years agoi18n: make the translation of -u advice in one go
Jiang Xin [Fri, 12 Apr 2013 03:53:01 +0000 (11:53 +0800)] 
i18n: make the translation of -u advice in one go

The advice (consider use of -u when read_directory takes too long) is
separated into 3 different status_printf_ln() calls, and which brings
trouble for translators.

Since status_vprintf() called by status_printf_ln() can handle eol in
buffer, we could simply join these lines into one paragraph.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Reviewed-by: Eric Sunshine <sunshine@sunshineco.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoTypo fix: replacing it's -> its
Benoit Bourbie [Sat, 13 Apr 2013 16:47:21 +0000 (10:47 -0600)] 
Typo fix: replacing it's -> its

Signed-off-by: Benoit Bourbie <benoit.bourbie@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agot: make PIPE a standard test prerequisite
Adam Spiers [Thu, 11 Apr 2013 02:07:04 +0000 (03:07 +0100)] 
t: make PIPE a standard test prerequisite

The 'PIPE' test prerequisite was already defined identically by t9010
and t9300, therefore it makes sense to make it a predefined
prerequisite.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoarchive: clarify explanation of --worktree-attributes
René Scharfe [Wed, 10 Apr 2013 17:49:57 +0000 (19:49 +0200)] 
archive: clarify explanation of --worktree-attributes

Make it a bit clearer that --worktree-attributes is about files in the
working tree (checked out files, possibly changed) and not the current
working directory ($PWD).  Link to the ATTRIBUTES section, which has
more details.

Reported-by: Amit Bakshi <ambakshi@gmail.com>
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agot/README: --immediate skips cleanup commands for failed tests
Simon Ruderich [Tue, 9 Apr 2013 21:48:36 +0000 (23:48 +0200)] 
t/README: --immediate skips cleanup commands for failed tests

Signed-off-by: Simon Ruderich <simon@ruderich.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoGit 1.8.2.1 v1.8.2.1
Junio C Hamano [Sun, 7 Apr 2013 22:27:23 +0000 (15:27 -0700)] 
Git 1.8.2.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoSync with 1.8.1.6
Junio C Hamano [Sun, 7 Apr 2013 16:10:11 +0000 (09:10 -0700)] 
Sync with 1.8.1.6

11 years agoGit 1.8.1.6 v1.8.1.6
Junio C Hamano [Sun, 7 Apr 2013 15:58:30 +0000 (08:58 -0700)] 
Git 1.8.1.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'jc/directory-attrs-regression-fix' into maint-1.8.1
Junio C Hamano [Sun, 7 Apr 2013 15:45:03 +0000 (08:45 -0700)] 
Merge branch 'jc/directory-attrs-regression-fix' into maint-1.8.1

A pattern "dir" (without trailing slash) in the attributes file
stopped matching a directory "dir" by mistake with an earlier change
that wanted to allow pattern "dir/" to also match.

* jc/directory-attrs-regression-fix:
  t: check that a pattern without trailing slash matches a directory
  dir.c::match_pathname(): pay attention to the length of string parameters
  dir.c::match_pathname(): adjust patternlen when shifting pattern
  dir.c::match_basename(): pay attention to the length of string parameters
  attr.c::path_matches(): special case paths that end with a slash
  attr.c::path_matches(): the basename is part of the pathname

11 years agoremote-helpers/test-bzr.sh: do not use "grep '\s'"
Torsten Bögershausen [Sun, 7 Apr 2013 08:48:30 +0000 (10:48 +0200)] 
remote-helpers/test-bzr.sh: do not use "grep '\s'"

Using grep "devel\s\+3:" to find at least one whitspace is not
portable on all grep versions; not all grep versions understand "\s"
as a "whitespace".

Use a literal TAB followed by SPACE.

The + as a qualifier for "one or more" is not a basic regular
expression; use egrep instead of grep.

Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agomailmap: update Pasky's address
Junio C Hamano [Thu, 4 Apr 2013 20:03:34 +0000 (13:03 -0700)] 
mailmap: update Pasky's address

Eric Wong noticed that the address at suse.cz no longer works.
We may want to update in-code addresses as well, but let's do
this first in 'maint'.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'nd/index-pack-threaded-fixes' into maint
Junio C Hamano [Thu, 4 Apr 2013 20:00:41 +0000 (13:00 -0700)] 
Merge branch 'nd/index-pack-threaded-fixes' into maint

* nd/index-pack-threaded-fixes:
  index-pack: guard nr_resolved_deltas reads by lock
  index-pack: protect deepest_delta in multithread code

11 years agoMerge branch 'jk/index-pack-correct-depth-fix' into maint
Junio C Hamano [Thu, 4 Apr 2013 20:00:37 +0000 (13:00 -0700)] 
Merge branch 'jk/index-pack-correct-depth-fix' into maint

* jk/index-pack-correct-depth-fix:
  index-pack: always zero-initialize object_entry list

11 years agoMerge branch 'rs/submodule-summary-limit' into maint
Junio C Hamano [Thu, 4 Apr 2013 20:00:35 +0000 (13:00 -0700)] 
Merge branch 'rs/submodule-summary-limit' into maint

"submodule summary --summary-limit" option did not support
"--option=value" form.

* rs/submodule-summary-limit:
  submodule summary: support --summary-limit=<n>

11 years agoMerge branch 'jk/peel-ref' into maint
Junio C Hamano [Thu, 4 Apr 2013 19:59:55 +0000 (12:59 -0700)] 
Merge branch 'jk/peel-ref' into maint

* jk/peel-ref:
  upload-pack: load non-tip "want" objects from disk
  upload-pack: make sure "want" objects are parsed
  upload-pack: drop lookup-before-parse optimization

11 years agogit-remote-mediawiki: new wiki URL in documentation
Matthieu Moy [Thu, 4 Apr 2013 07:56:03 +0000 (09:56 +0200)] 
git-remote-mediawiki: new wiki URL in documentation

The Bibzball wiki is not maintained anymore.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoUpdate draft release notes to 1.8.2.1
Junio C Hamano [Wed, 3 Apr 2013 16:29:14 +0000 (09:29 -0700)] 
Update draft release notes to 1.8.2.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'mg/gpg-interface-using-status' into maint
Junio C Hamano [Wed, 3 Apr 2013 16:26:27 +0000 (09:26 -0700)] 
Merge branch 'mg/gpg-interface-using-status' into maint

Verification of signed tags were not done correctly when not in C
or en/US locale.

* mg/gpg-interface-using-status:
  pretty: make %GK output the signing key for signed commits
  pretty: parse the gpg status lines rather than the output
  gpg_interface: allow to request status return
  log-tree: rely upon the check in the gpg_interface
  gpg-interface: check good signature in a reliable way

11 years agoMerge branch 'bc/commit-complete-lines-given-via-m-option' into maint
Junio C Hamano [Wed, 3 Apr 2013 16:26:07 +0000 (09:26 -0700)] 
Merge branch 'bc/commit-complete-lines-given-via-m-option' into maint

'git commit -m "$msg"' used to add an extra newline even when
$msg already ended with one.

* bc/commit-complete-lines-given-via-m-option:
  Documentation/git-commit.txt: rework the --cleanup section
  git-commit: only append a newline to -m mesg if necessary
  t7502: demonstrate breakage with a commit message with trailing newlines
  t/t7502: compare entire commit message with what was expected

11 years agoMerge branch 'jc/describe' into maint
Junio C Hamano [Wed, 3 Apr 2013 16:25:52 +0000 (09:25 -0700)] 
Merge branch 'jc/describe' into maint

The "--match=<pattern>" option of "git describe", when used with
"--all" to allow refs that are not annotated tags to be used as a
base of description, did not restrict the output from the command to
those that match the given pattern.

* jc/describe:
  describe: --match=<pattern> must limit the refs even when used with --all

11 years agoMerge branch 'jk/alias-in-bare' into maint
Junio C Hamano [Wed, 3 Apr 2013 16:25:41 +0000 (09:25 -0700)] 
Merge branch 'jk/alias-in-bare' into maint

An aliased command spawned from a bare repository that does not say
it is bare with "core.bare = yes" is treated as non-bare by mistake.

* jk/alias-in-bare:
  setup: suppress implicit "." work-tree for bare repos
  environment: add GIT_PREFIX to local_repo_env
  cache.h: drop LOCAL_REPO_ENV_SIZE

11 years agoMerge branch 'ks/rfc2047-one-char-at-a-time' into maint
Junio C Hamano [Wed, 3 Apr 2013 16:25:29 +0000 (09:25 -0700)] 
Merge branch 'ks/rfc2047-one-char-at-a-time' into maint

When "format-patch" quoted a non-ascii strings on the header files,
it incorrectly applied rfc2047 and chopped a single character in the
middle of it.

* ks/rfc2047-one-char-at-a-time:
  format-patch: RFC 2047 says multi-octet character may not be split

11 years agoMerge branch 'jk/empty-archive' into maint
Junio C Hamano [Wed, 3 Apr 2013 16:25:15 +0000 (09:25 -0700)] 
Merge branch 'jk/empty-archive' into maint

"git archive" reports a failure when asked to create an archive out
of an empty tree.  It would be more intuitive to give an empty
archive back in such a case.

* jk/empty-archive:
  archive: handle commits with an empty tree
  test-lib: factor out $GIT_UNZIP setup

11 years agoMerge branch 'ph/tag-force-no-warn-on-creation' into maint
Junio C Hamano [Wed, 3 Apr 2013 16:24:51 +0000 (09:24 -0700)] 
Merge branch 'ph/tag-force-no-warn-on-creation' into maint

"git tag -f <tag>" always said "Updated tag '<tag>'" even when
creating a new tag (i.e. not overwriting nor updating).

* ph/tag-force-no-warn-on-creation:
  tag: --force does not have to warn when creating tags

11 years agoMerge branch 'lf/setup-prefix-pathspec' into maint
Junio C Hamano [Wed, 3 Apr 2013 16:24:18 +0000 (09:24 -0700)] 
Merge branch 'lf/setup-prefix-pathspec' into maint

"git cmd -- ':(top'" was not diagnosed as an invalid syntax, and
instead the parser kept reading beyond the end of the string.

* lf/setup-prefix-pathspec:
  setup.c: check that the pathspec magic ends with ")"
  setup.c: stop prefix_pathspec() from looping past the end of string

11 years agoSync with 1.8.1 maintenance track
Junio C Hamano [Wed, 3 Apr 2013 16:18:01 +0000 (09:18 -0700)] 
Sync with 1.8.1 maintenance track

* maint-1.8.1:
  Start preparing for 1.8.1.6
  git-tag(1): we tag HEAD by default
  Fix revision walk for commits with the same dates
  t2003: work around path mangling issue on Windows
  pack-refs: add fully-peeled trait
  pack-refs: write peeled entry for non-tags
  use parse_object_or_die instead of die("bad object")
  avoid segfaults on parse_object failure
  entry: fix filter lookup
  t2003: modernize style
  name-hash.c: fix endless loop with core.ignorecase=true

11 years agoStart preparing for 1.8.1.6
Junio C Hamano [Wed, 3 Apr 2013 16:12:11 +0000 (09:12 -0700)] 
Start preparing for 1.8.1.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'kb/name-hash' into maint-1.8.1
Junio C Hamano [Wed, 3 Apr 2013 15:44:54 +0000 (08:44 -0700)] 
Merge branch 'kb/name-hash' into maint-1.8.1

* kb/name-hash:
  name-hash.c: fix endless loop with core.ignorecase=true

11 years agoMerge branch 'kk/revwalk-slop-too-many-commit-within-a-second' into maint-1.8.1
Junio C Hamano [Wed, 3 Apr 2013 15:44:02 +0000 (08:44 -0700)] 
Merge branch 'kk/revwalk-slop-too-many-commit-within-a-second' into maint-1.8.1

* kk/revwalk-slop-too-many-commit-within-a-second:
  Fix revision walk for commits with the same dates

11 years agoMerge branch 'jk/checkout-attribute-lookup' into maint-1.8.1
Junio C Hamano [Wed, 3 Apr 2013 15:43:40 +0000 (08:43 -0700)] 
Merge branch 'jk/checkout-attribute-lookup' into maint-1.8.1

* jk/checkout-attribute-lookup:
  t2003: work around path mangling issue on Windows
  entry: fix filter lookup
  t2003: modernize style

11 years agoMerge branch 'jk/fully-peeled-packed-ref' into maint-1.8.1
Junio C Hamano [Wed, 3 Apr 2013 15:43:03 +0000 (08:43 -0700)] 
Merge branch 'jk/fully-peeled-packed-ref' into maint-1.8.1

* jk/fully-peeled-packed-ref:
  pack-refs: add fully-peeled trait
  pack-refs: write peeled entry for non-tags
  use parse_object_or_die instead of die("bad object")
  avoid segfaults on parse_object failure

11 years agoMerge branch 'ap/maint-diff-rename-avoid-overlap' into maint-1.8.1
Junio C Hamano [Wed, 3 Apr 2013 15:37:39 +0000 (08:37 -0700)] 
Merge branch 'ap/maint-diff-rename-avoid-overlap' into maint-1.8.1

* ap/maint-diff-rename-avoid-overlap:
  tests: make sure rename pretty print works
  diff: prevent pprint_rename from underrunning input
  diff: Fix rename pretty-print when suffix and prefix overlap

11 years agoMerge branch 'yd/doc-merge-annotated-tag' into maint-1.8.1
Junio C Hamano [Wed, 3 Apr 2013 15:36:52 +0000 (08:36 -0700)] 
Merge branch 'yd/doc-merge-annotated-tag' into maint-1.8.1

* yd/doc-merge-annotated-tag:
  Documentation: merging a tag is a special case

11 years agoMerge branch 'ap/maint-update-index-h-is-for-help' into maint-1.8.1
Junio C Hamano [Wed, 3 Apr 2013 15:36:10 +0000 (08:36 -0700)] 
Merge branch 'ap/maint-update-index-h-is-for-help' into maint-1.8.1

* ap/maint-update-index-h-is-for-help:
  update-index: allow "-h" to also display options

11 years agoMerge branch 'jc/perl-cat-blob' into maint-1.8.1
Junio C Hamano [Wed, 3 Apr 2013 15:35:45 +0000 (08:35 -0700)] 
Merge branch 'jc/perl-cat-blob' into maint-1.8.1

* jc/perl-cat-blob:
  Git.pm: fix cat_blob crashes on large files

11 years agoMerge branch 'ob/imap-send-ssl-verify' into maint-1.8.1
Junio C Hamano [Wed, 3 Apr 2013 15:35:33 +0000 (08:35 -0700)] 
Merge branch 'ob/imap-send-ssl-verify' into maint-1.8.1

* ob/imap-send-ssl-verify:
  imap-send: support Server Name Indication (RFC4366)

11 years agoMerge branch 'nd/index-pack-l10n-buf-overflow' into maint-1.8.1
Junio C Hamano [Wed, 3 Apr 2013 15:35:06 +0000 (08:35 -0700)] 
Merge branch 'nd/index-pack-l10n-buf-overflow' into maint-1.8.1

* nd/index-pack-l10n-buf-overflow:
  index-pack: fix buffer overflow caused by translations

11 years agogit-tag(1): we tag HEAD by default
Thomas Rast [Wed, 3 Apr 2013 14:27:14 +0000 (16:27 +0200)] 
git-tag(1): we tag HEAD by default

The <commit>|<object> argument is actually not explained anywhere
(except implicitly in the description of an unannotated tag).  Write a
little explanation, in particular to cover the default.

Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoUpdate draft release notes to 1.8.2.1
Junio C Hamano [Mon, 1 Apr 2013 16:23:05 +0000 (09:23 -0700)] 
Update draft release notes to 1.8.2.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'ap/maint-diff-rename-avoid-overlap' into maint
Junio C Hamano [Mon, 1 Apr 2013 16:19:46 +0000 (09:19 -0700)] 
Merge branch 'ap/maint-diff-rename-avoid-overlap' into maint

* ap/maint-diff-rename-avoid-overlap:
  tests: make sure rename pretty print works
  diff: prevent pprint_rename from underrunning input
  diff: Fix rename pretty-print when suffix and prefix overlap

11 years agoMerge branch 'rr/tests-dedup-test-config' into maint
Junio C Hamano [Mon, 1 Apr 2013 16:19:41 +0000 (09:19 -0700)] 
Merge branch 'rr/tests-dedup-test-config' into maint

* rr/tests-dedup-test-config:
  t4018,7810,7811: remove test_config() redefinition

11 years agoMerge branch 'yd/doc-is-in-asciidoc' into maint
Junio C Hamano [Mon, 1 Apr 2013 16:19:40 +0000 (09:19 -0700)] 
Merge branch 'yd/doc-is-in-asciidoc' into maint

* yd/doc-is-in-asciidoc:
  CodingGuidelines: our documents are in AsciiDoc

11 years agoMerge branch 'yd/doc-merge-annotated-tag' into maint
Junio C Hamano [Mon, 1 Apr 2013 16:19:37 +0000 (09:19 -0700)] 
Merge branch 'yd/doc-merge-annotated-tag' into maint

* yd/doc-merge-annotated-tag:
  Documentation: merging a tag is a special case

11 years agoMerge branch 'tb/document-status-u-tradeoff' into maint
Junio C Hamano [Mon, 1 Apr 2013 16:19:30 +0000 (09:19 -0700)] 
Merge branch 'tb/document-status-u-tradeoff' into maint

* tb/document-status-u-tradeoff:
  status: advise to consider use of -u when read_directory takes too long
  git status: document trade-offs in choosing parameters to the -u option

11 years agoMerge branch 'da/downcase-u-in-usage' into maint
Junio C Hamano [Mon, 1 Apr 2013 16:19:04 +0000 (09:19 -0700)] 
Merge branch 'da/downcase-u-in-usage' into maint

* da/downcase-u-in-usage:
  contrib/mw-to-git/t/install-wiki.sh: use a lowercase "usage:" string
  contrib/examples/git-remote.perl: use a lowercase "usage:" string
  tests: use a lowercase "usage:" string
  git-svn: use a lowercase "usage:" string
  Documentation/user-manual.txt: use a lowercase "usage:" string
  templates/hooks--update.sample: use a lowercase "usage:" string
  contrib/hooks/setgitperms.perl: use a lowercase "usage:" string
  contrib/examples: use a lowercase "usage:" string
  contrib/fast-import/import-zips.py: use spaces instead of tabs
  contrib/fast-import/import-zips.py: fix broken error message
  contrib/fast-import: use a lowercase "usage:" string
  contrib/credential: use a lowercase "usage:" string
  git-cvsimport: use a lowercase "usage:" string
  git-cvsimport: use a lowercase "usage:" string
  git-cvsexportcommit: use a lowercase "usage:" string
  git-archimport: use a lowercase "usage:" string
  git-merge-one-file: use a lowercase "usage:" string
  git-relink: use a lowercase "usage:" string
  git-svn: use a lowercase "usage:" string
  git-sh-setup: use a lowercase "usage:" string

11 years agosubmodule summary: support --summary-limit=<n>
René Scharfe [Mon, 1 Apr 2013 13:06:27 +0000 (15:06 +0200)] 
submodule summary: support --summary-limit=<n>

In addition to "--summary-limit <n>" support the form "--summary-limit=<n>",
for consistency with other parameters and commands.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agocat-file: Fix an gcc -Wuninitialized warning
Ramsay Jones [Tue, 26 Mar 2013 19:20:11 +0000 (19:20 +0000)] 
cat-file: Fix an gcc -Wuninitialized warning

After commit cbfd5e1c ("drop some obsolete "x = x" compiler warning
hacks", 21-03-2013) removed a gcc specific hack, older versions of
gcc now issue an "'contents' might be used uninitialized" warning.
In order to suppress the warning, we simply initialize the variable
to NULL in it's declaration.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agofast-import: Fix an gcc -Wuninitialized warning
Ramsay Jones [Tue, 26 Mar 2013 19:09:44 +0000 (19:09 +0000)] 
fast-import: Fix an gcc -Wuninitialized warning

Commit cbfd5e1c ("drop some obsolete "x = x" compiler warning hacks",
21-03-2013) removed a gcc hack that suppressed an "might be used
uninitialized" warning issued by older versions of gcc.

However, commit 3aa99df8 ('fast-import: clarify "inline" logic in
file_change_m', 21-03-2013) addresses an (almost) identical issue
(with very similar code), but includes additional code in it's
resolution. The solution used by this commit, unlike that used by
commit cbfd5e1c, also suppresses the -Wuninitialized warning on
older versions of gcc.

In order to suppress the warning (against the 'oe' symbol) in the
note_change_n() function, we adopt the same solution used by commit
3aa99df8.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agot: check that a pattern without trailing slash matches a directory
Jeff King [Thu, 28 Mar 2013 21:50:04 +0000 (17:50 -0400)] 
t: check that a pattern without trailing slash matches a directory

Prior to v1.8.1.1, with:

  git init
  echo content >foo &&
  mkdir subdir &&
  echo content >subdir/bar &&
  echo "subdir export-ignore" >.gitattributes
  git add . &&
  git commit -m one &&
  git archive HEAD | tar tf -

the resulting archive would contain only "foo" and ".gitattributes",
not subdir.  This was broken with a recent change that intended to
allow "subdir/ export-ignore" to also exclude the directory, but
instead ended up _requiring_ the trailing slash by mistake.

A pattern "subdir" should match any path "subdir", whether it is a
directory or a non-directory.  A pattern "subdir/" insists that a
path "subdir" must be a directory for it to match.

This patch adds test not just for this simple case, but also for
deeper cross-directory cases, as well as cases with wildcards.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agodir.c::match_pathname(): pay attention to the length of string parameters
Jeff King [Thu, 28 Mar 2013 21:48:21 +0000 (17:48 -0400)] 
dir.c::match_pathname(): pay attention to the length of string parameters

This function takes two counted strings: a <pattern, patternlen> pair
and a <pathname, pathlen> pair. But we end up feeding the result to
fnmatch, which expects NUL-terminated strings.

We can fix this by calling the fnmatch_icase_mem function, which
handles re-allocating into a NUL-terminated string if necessary.

While we're at it, we can avoid even calling fnmatch in some cases. In
addition to patternlen, we get "prefix", the size of the pattern that
contains no wildcard characters. We do a straight match of the prefix
part first, and then use fnmatch to cover the rest. But if there are
no wildcards in the pattern at all, we do not even need to call
fnmatch; we would simply be comparing two empty strings.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agodir.c::match_pathname(): adjust patternlen when shifting pattern
Jeff King [Thu, 28 Mar 2013 21:47:47 +0000 (17:47 -0400)] 
dir.c::match_pathname(): adjust patternlen when shifting pattern

If we receive a pattern that starts with "/", we shift it
forward to avoid looking at the "/" part. Since the prefix
and patternlen parameters are counts of what is in the
pattern, we must decrement them as we increment the pointer.

We remembered to handle prefix, but not patternlen. This
didn't cause any bugs, though, because the patternlen
parameter is not actually used. Since it will be used in
future patches, let's correct this oversight.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agodir.c::match_basename(): pay attention to the length of string parameters
Junio C Hamano [Thu, 28 Mar 2013 21:47:28 +0000 (17:47 -0400)] 
dir.c::match_basename(): pay attention to the length of string parameters

The function takes two counted strings (<basename, basenamelen> and
<pattern, patternlen>) as parameters, together with prefix (the
length of the prefix in pattern that is to be matched literally
without globbing against the basename) and EXC_* flags that tells it
how to match the pattern against the basename.

However, it did not pay attention to the length of these counted
strings.  Update them to do the following:

 * When the entire pattern is to be matched literally, the pattern
   matches the basename only when the lengths of them are the same,
   and they match up to that length.

 * When the pattern is "*" followed by a string to be matched
   literally, make sure that the basenamelen is equal or longer than
   the "literal" part of the pattern, and the tail of the basename
   string matches that literal part.

 * Otherwise, use the new fnmatch_icase_mem helper to make
   sure we only lookmake sure we use only look at the
   counted part of the strings.  Because these counted strings are
   full strings most of the time, we check for termination
   to avoid unnecessary allocation.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoattr.c::path_matches(): special case paths that end with a slash
Junio C Hamano [Thu, 28 Mar 2013 21:49:13 +0000 (17:49 -0400)] 
attr.c::path_matches(): special case paths that end with a slash

The function is given a string that ends with a slash to signal that
the path is a directory to make sure that a pattern that ends with a
slash (i.e. MUSTBEDIR) can tell directories and non-directories
apart.  However, the pattern itself (pat->pattern and
pat->patternlen) that came from such a MUSTBEDIR pattern is
represented as a string that ends with a slash, but patternlen does
not count that trailing slash. A MUSTBEDIR pattern "element/" is
represented as a counted string <"element/", 7> and this must match
match pathname "element/".

Because match_basename() and match_pathname() want to see pathname
"element" to match against the pattern <"element/", 7>, reduce the
length of the path to exclude the trailing slash when calling
these functions.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'maint-1.8.1' into maint
Junio C Hamano [Thu, 28 Mar 2013 21:34:07 +0000 (14:34 -0700)] 
Merge branch 'maint-1.8.1' into maint

* maint-1.8.1:
  git help config: s/insn/instruction/

11 years agogit help config: s/insn/instruction/
Matthias Krüger [Wed, 27 Mar 2013 22:53:50 +0000 (23:53 +0100)] 
git help config: s/insn/instruction/

"insn" appears to be an in-code abbreviation and should not appear
in manual/help pages.

Signed-off-by: Matthias Krüger <matthias.krueger@famsik.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMore fixes for 1.8.2.1
Junio C Hamano [Wed, 27 Mar 2013 17:57:57 +0000 (10:57 -0700)] 
More fixes for 1.8.2.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'maint-1.8.1' into maint
Junio C Hamano [Wed, 27 Mar 2013 17:51:10 +0000 (10:51 -0700)] 
Merge branch 'maint-1.8.1' into maint

* maint-1.8.1:
  merge-tree: fix typo in merge-tree.c::unresolved
  git-commit doc: describe use of multiple `-m` options
  git-pull doc: fix grammo ("conflicts" is plural)

11 years agomerge-tree: fix typo in merge-tree.c::unresolved
John Keeping [Wed, 27 Mar 2013 15:58:50 +0000 (15:58 +0000)] 
merge-tree: fix typo in merge-tree.c::unresolved

When calculating whether there is a d/f conflict, the calculation of
whether both sides are directories generates an incorrect references
mask because it does not use the loop index to set the correct bit.
Fix this typo.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agogit-commit doc: describe use of multiple `-m` options
Christian Helmuth [Wed, 27 Mar 2013 14:19:35 +0000 (15:19 +0100)] 
git-commit doc: describe use of multiple `-m` options

The text is copied from Documentation/git-tag.txt.

Signed-off-by: Christian Helmuth <christian.helmuth@genode-labs.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agogit-pull doc: fix grammo ("conflicts" is plural)
Mihai Capotă [Wed, 27 Mar 2013 11:04:51 +0000 (12:04 +0100)] 
git-pull doc: fix grammo ("conflicts" is plural)

Signed-off-by: Mihai Capotă <mihai@mihaic.ro>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMore corrections for 1.8.2.1
Junio C Hamano [Tue, 26 Mar 2013 19:53:49 +0000 (12:53 -0700)] 
More corrections for 1.8.2.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'maint-1.8.1' into maint
Junio C Hamano [Tue, 26 Mar 2013 20:14:11 +0000 (13:14 -0700)] 
Merge branch 'maint-1.8.1' into maint

* maint-1.8.1:
  Correct the docs about GIT_SSH.

11 years agoMerge branch 'we/submodule-update-prefix-output' into maint
Junio C Hamano [Tue, 26 Mar 2013 19:44:26 +0000 (12:44 -0700)] 
Merge branch 'we/submodule-update-prefix-output' into maint

"git submodule update", when recursed into sub-submodules, did not
acccumulate the prefix paths.

* we/submodule-update-prefix-output:
  submodule update: when using recursion, show full path

11 years agoMerge branch 'jk/mailsplit-maildir-muttsort' into maint
Junio C Hamano [Tue, 26 Mar 2013 19:44:11 +0000 (12:44 -0700)] 
Merge branch 'jk/mailsplit-maildir-muttsort' into maint

Sort filenames read from the maildir/ in a way that is more likely
to sort messages in the order the writing MUA meant to, by sorting
numeric segment in numeric order and non-numeric segment in
alphabetical order.

* jk/mailsplit-maildir-muttsort:
  mailsplit: sort maildir filenames more cleverly

11 years agoMerge branch 'rs/zip-compresssed-size-with-export-subst' into maint
Junio C Hamano [Tue, 26 Mar 2013 19:43:49 +0000 (12:43 -0700)] 
Merge branch 'rs/zip-compresssed-size-with-export-subst' into maint

When export-subst is used, "zip" output recorded incorrect
size of the file.

* rs/zip-compresssed-size-with-export-subst:
  archive-zip: fix compressed size for stored export-subst files

11 years agoMerge branch 'jk/utf-8-can-be-spelled-differently' into maint
Junio C Hamano [Tue, 26 Mar 2013 19:43:25 +0000 (12:43 -0700)] 
Merge branch 'jk/utf-8-can-be-spelled-differently' into maint

Some platforms and users spell UTF-8 differently; retry with the
most official "UTF-8" when the system does not understand the
user-supplied encoding name that are the common alternative
spellings of UTF-8.

* jk/utf-8-can-be-spelled-differently:
  utf8: accept alternate spellings of UTF-8

11 years agoMerge branch 'nd/branch-error-cases' into maint
Junio C Hamano [Tue, 26 Mar 2013 19:43:05 +0000 (12:43 -0700)] 
Merge branch 'nd/branch-error-cases' into maint

"git branch" had more cases where it did not bother to check
nonsense command line parameters.

* nd/branch-error-cases:
  branch: segfault fixes and validation

11 years agoMerge branch 'ap/maint-update-index-h-is-for-help' into maint
Junio C Hamano [Tue, 26 Mar 2013 19:42:42 +0000 (12:42 -0700)] 
Merge branch 'ap/maint-update-index-h-is-for-help' into maint

"git update-index -h" did not do the usual "-h(elp)" thing.

* ap/maint-update-index-h-is-for-help:
  update-index: allow "-h" to also display options

11 years agoMerge branch 'jc/perl-cat-blob' into maint
Junio C Hamano [Tue, 26 Mar 2013 19:42:24 +0000 (12:42 -0700)] 
Merge branch 'jc/perl-cat-blob' into maint

perl/Git.pm::cat_blob slurped everything in core only to write it
out to a file descriptor, which was not a very smart thing to do.

* jc/perl-cat-blob:
  Git.pm: fix cat_blob crashes on large files

11 years agoMerge branch 'ob/imap-send-ssl-verify' into maint
Junio C Hamano [Tue, 26 Mar 2013 19:41:59 +0000 (12:41 -0700)] 
Merge branch 'ob/imap-send-ssl-verify' into maint

Correctly connect to SSL/TLS sites that serve multiple hostnames on
a single IP by including Server Name Indication in the client-hello.

* ob/imap-send-ssl-verify:
  imap-send: support Server Name Indication (RFC4366)

11 years agoMerge branch 'nd/index-pack-l10n-buf-overflow' into maint
Junio C Hamano [Tue, 26 Mar 2013 19:40:19 +0000 (12:40 -0700)] 
Merge branch 'nd/index-pack-l10n-buf-overflow' into maint

* nd/index-pack-l10n-buf-overflow:
  index-pack: fix buffer overflow caused by translations

11 years agoMerge branch 'jc/maint-push-refspec-default-doc' into maint
Junio C Hamano [Tue, 26 Mar 2013 19:40:13 +0000 (12:40 -0700)] 
Merge branch 'jc/maint-push-refspec-default-doc' into maint

* jc/maint-push-refspec-default-doc:
  Documentation/git-push: clarify the description of defaults

11 years agoMerge branch 'wk/user-manual-literal-format' into maint
Junio C Hamano [Tue, 26 Mar 2013 19:40:11 +0000 (12:40 -0700)] 
Merge branch 'wk/user-manual-literal-format' into maint

* wk/user-manual-literal-format:
  user-manual: Standardize backtick quoting

11 years agoMerge branch 'gp/avoid-explicit-mention-of-dot-git-refs' into maint
Junio C Hamano [Tue, 26 Mar 2013 19:40:04 +0000 (12:40 -0700)] 
Merge branch 'gp/avoid-explicit-mention-of-dot-git-refs' into maint

* gp/avoid-explicit-mention-of-dot-git-refs:
  Fix ".git/refs" stragglers

11 years agoMerge branch 'jc/maint-reflog-expire-clean-mark-typofix' into maint
Junio C Hamano [Tue, 26 Mar 2013 19:39:51 +0000 (12:39 -0700)] 
Merge branch 'jc/maint-reflog-expire-clean-mark-typofix' into maint

In "git reflog expire", REACHABLE bit was not cleared from the
correct objects.

* jc/maint-reflog-expire-clean-mark-typofix:
  reflog: fix typo in "reflog expire" clean-up codepath

11 years agoattr.c::path_matches(): the basename is part of the pathname
Junio C Hamano [Tue, 26 Mar 2013 17:28:07 +0000 (10:28 -0700)] 
attr.c::path_matches(): the basename is part of the pathname

The function takes two strings (pathname and basename) as if they
are independent strings, but in reality, the latter is always
pointing into a substring in the former.

Clarify this relationship by expressing the latter as an offset into
the former.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoCorrect the docs about GIT_SSH.
Dan Bornstein [Thu, 21 Mar 2013 23:06:40 +0000 (23:06 +0000)] 
Correct the docs about GIT_SSH.

In particular, it can get called with four arguments if you happen to
be referring to a repo using the ssh:// scheme with a non-default port
number.

Signed-off-by: Dan Bornstein <danfuzz@milk.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoStart preparing for 1.8.2.1
Junio C Hamano [Mon, 25 Mar 2013 20:51:13 +0000 (13:51 -0700)] 
Start preparing for 1.8.2.1

... at the same time, preparation for 1.8.1.6 also has started ;-)

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'jk/graph-c-expose-symbols-for-cgit' into maint
Junio C Hamano [Mon, 25 Mar 2013 20:48:39 +0000 (13:48 -0700)] 
Merge branch 'jk/graph-c-expose-symbols-for-cgit' into maint

In the v1.8.0 era, we changed symbols that do not have to be global
to file scope static, but a few functions in graph.c were used by
CGit from sideways bypassing the entry points of the API the
in-tree users use.

* jk/graph-c-expose-symbols-for-cgit:
  Revert "graph.c: mark private file-scope symbols as static"

11 years agoMerge branch 'maint-1.8.1' into maint
Junio C Hamano [Mon, 25 Mar 2013 20:46:42 +0000 (13:46 -0700)] 
Merge branch 'maint-1.8.1' into maint

* maint-1.8.1:
  bundle: Add colons to list headings in "verify"
  bundle: Fix "verify" output if history is complete
  Documentation: filter-branch env-filter example
  git-filter-branch.txt: clarify ident variables usage
  git-compat-util.h: Provide missing netdb.h definitions
  describe: Document --match pattern format
  Documentation/githooks: Explain pre-rebase parameters
  update-index: list supported idx versions and their features
  diff-options: unconfuse description of --color
  read-cache.c: use INDEX_FORMAT_{LB,UB} in verify_hdr()
  index-format.txt: mention of v4 is missing in some places

11 years agoMerge branch 'lf/bundle-verify-list-prereqs' into maint-1.8.1
Junio C Hamano [Mon, 25 Mar 2013 20:46:02 +0000 (13:46 -0700)] 
Merge branch 'lf/bundle-verify-list-prereqs' into maint-1.8.1

"git bundle verify" did not say "records a complete history" for a
bundle that does not have any prerequisites.

* lf/bundle-verify-list-prereqs:
  bundle: Add colons to list headings in "verify"
  bundle: Fix "verify" output if history is complete

11 years agoMerge branch 'tk/doc-filter-branch' into maint-1.8.1
Junio C Hamano [Mon, 25 Mar 2013 20:45:53 +0000 (13:45 -0700)] 
Merge branch 'tk/doc-filter-branch' into maint-1.8.1

Add an example use of "--env-filter" in "filter-branch"
documentation.

* tk/doc-filter-branch:
  Documentation: filter-branch env-filter example
  git-filter-branch.txt: clarify ident variables usage

11 years agoMerge branch 'dm/ni-maxhost-may-be-missing' into maint-1.8.1
Junio C Hamano [Mon, 25 Mar 2013 20:45:42 +0000 (13:45 -0700)] 
Merge branch 'dm/ni-maxhost-may-be-missing' into maint-1.8.1

Some sources failed to compile on systems that lack NI_MAXHOST in
their system header.

* dm/ni-maxhost-may-be-missing:
  git-compat-util.h: Provide missing netdb.h definitions

11 years agoMerge branch 'gp/describe-match-uses-glob-pattern' into maint-1.8.1
Junio C Hamano [Mon, 25 Mar 2013 20:45:33 +0000 (13:45 -0700)] 
Merge branch 'gp/describe-match-uses-glob-pattern' into maint-1.8.1

The "--match=<pattern>" argument "git describe" takes uses glob
pattern but it wasn't obvious from the documentation.

* gp/describe-match-uses-glob-pattern:
  describe: Document --match pattern format

11 years agoMerge branch 'nd/doc-index-format' into maint-1.8.1
Junio C Hamano [Mon, 25 Mar 2013 20:45:26 +0000 (13:45 -0700)] 
Merge branch 'nd/doc-index-format' into maint-1.8.1

The v4 index format was not documented.

* nd/doc-index-format:
  update-index: list supported idx versions and their features
  read-cache.c: use INDEX_FORMAT_{LB,UB} in verify_hdr()
  index-format.txt: mention of v4 is missing in some places

11 years agoMerge branch 'wk/doc-pre-rebase' into maint-1.8.1
Junio C Hamano [Mon, 25 Mar 2013 20:45:14 +0000 (13:45 -0700)] 
Merge branch 'wk/doc-pre-rebase' into maint-1.8.1

The arguments given to pre-rebase hook were not documented.

* wk/doc-pre-rebase:
  Documentation/githooks: Explain pre-rebase parameters

11 years agoMerge branch 'jc/color-diff-doc' into maint-1.8.1
Junio C Hamano [Mon, 25 Mar 2013 20:44:53 +0000 (13:44 -0700)] 
Merge branch 'jc/color-diff-doc' into maint-1.8.1

The "--color=<when>" argument to the commands in the diff family
was described poorly.

* jc/color-diff-doc:
  diff-options: unconfuse description of --color

11 years agotransport.c: help gcc 4.6.3 users by squelching compiler warning
Junio C Hamano [Mon, 25 Mar 2013 19:51:50 +0000 (12:51 -0700)] 
transport.c: help gcc 4.6.3 users by squelching compiler warning

To a human reader, it is quite obvious that cmp is assigned before
it is used, but gcc 4.6.3 that ships with Ubuntu 12.04 is among
those that do not get this right.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoFix revision walk for commits with the same dates
Kacper Kornet [Fri, 22 Mar 2013 18:38:19 +0000 (19:38 +0100)] 
Fix revision walk for commits with the same dates

Logic in still_interesting function allows to stop the commits
traversing if the oldest processed commit is not older then the
youngest commit on the list to process and the list contains only
commits marked as not interesting ones. It can be premature when dealing
with a set of coequal commits. For example git rev-list A^! --not B
provides wrong answer if all commits in the range A..B had the same
commit time and there are more then 7 of them.

To fix this problem the relevant part of the logic in still_interesting
is changed to: the walk can be stopped if the oldest processed commit is
younger then the youngest commit on the list to processed.

Signed-off-by: Kacper Kornet <draenog@pld-linux.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoDocumentation: merging a tag is a special case
Junio C Hamano [Thu, 21 Mar 2013 21:57:48 +0000 (22:57 +0100)] 
Documentation: merging a tag is a special case

When asking Git to merge a tag (such as a signed tag or annotated tag),
it will always create a merge commit even if fast-forward was possible.
It's like having --no-ff present on the command line.

It's a difference from the default behavior described in git-merge.txt.
It should be documented as an exception of "FAST-FORWARD MERGE" section
and "--ff" option description.

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Reviewed-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoCodingGuidelines: our documents are in AsciiDoc
Junio C Hamano [Thu, 21 Mar 2013 21:17:32 +0000 (14:17 -0700)] 
CodingGuidelines: our documents are in AsciiDoc

Before talking about notations such as optional [--option] enclosed
in brackets, state that the documents are in AsciiDoc and processed
into other formats.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agodiff.c: diff.renamelimit => diff.renameLimit in message
Max Nanasy [Thu, 21 Mar 2013 19:53:38 +0000 (12:53 -0700)] 
diff.c: diff.renamelimit => diff.renameLimit in message

In the warning message printed when rename or unmodified copy
detection was skipped due to too many files, change "diff.renamelimit"
to "diff.renameLimit", in order to make it consistent with git
documentation, which consistently uses "diff.renameLimit".

Signed-off-by: Max Nanasy <max.nanasy@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agowt-status: fix possible use of uninitialized variable
Jeff King [Thu, 21 Mar 2013 11:05:28 +0000 (07:05 -0400)] 
wt-status: fix possible use of uninitialized variable

In wt_status_print_change_data, we accept a change_type flag
that is meant to be either WT_STATUS_UPDATED or
WT_STATUS_CHANGED.  We then switch() on this value to set
the local variable "status" for each case, but do not
provide a fallback "default" label to the switch statement.

As a result, the compiler realizes that "status" might be
unset, and complains with a warning. To silence this
warning, we use the "int status = status" trick.  This is
correct with the current code, as all callers provide one of
the two expected change_type flags. However, it's also a
maintenance trap, as there is nothing to prevent future
callers from passing another flag, nor to document this
assumption.

Instead of using the "x = x" hack, let's handle the default
case in the switch() statement with a die("BUG"). That tells
the compiler and any readers of the code exactly what the
function's input assumptions are.

We could also convert the flag to an enum, which would
provide a compile-time check on the function input. However,
since these flags are part of a larger enum, that would make
the code unnecessarily complex (we would have to make a new
enum with just the two flags, and then convert it to the old
enum for passing to sub-functions).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agofast-import: clarify "inline" logic in file_change_m
Jeff King [Thu, 21 Mar 2013 15:44:39 +0000 (11:44 -0400)] 
fast-import: clarify "inline" logic in file_change_m

When we read a fast-import line like:

  M 100644 :1 foo.c

we point the local object_entry variable "oe" to the object
named by the mark ":1". When the input uses the "inline"
construct, however, we do not have such an object_entry.

The current code is careful not to access "oe" in the inline
case, but we can make the assumption even more obvious (and
catch violations of it) by setting oe to NULL and adding a
comment. As a bonus, this also squelches an over-zealous gcc
-Wuninitialized warning, which means we can drop the "oe =
oe" initialization hack.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agorun-command: always set failed_errno in start_command
Jeff King [Thu, 21 Mar 2013 15:45:00 +0000 (11:45 -0400)] 
run-command: always set failed_errno in start_command

When we fail to fork, we set the failed_errno variable to
the value of errno so it is not clobbered by later syscalls.
However, we do so in a conditional, and it is hard to see
later under what conditions the variable has a valid value.

Instead of setting it only when fork fails, let's just
always set it after forking. This is more obvious for human
readers (as we are no longer setting it as a side effect of
a strerror call), and it is more obvious to gcc, which no
longer generates a spurious -Wuninitialized warning. It also
happens to match what the WIN32 half of the #ifdef does.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agotransport: drop "int cmp = cmp" hack
Jeff King [Thu, 21 Mar 2013 11:13:33 +0000 (07:13 -0400)] 
transport: drop "int cmp = cmp" hack

According to 47ec794, this initialization is meant to
squelch an erroneous uninitialized variable warning from gcc
4.0.1.  That version is quite old at this point, and gcc 4.1
and up handle it fine, with one exception. There seems to be
a regression in gcc 4.6.3, which produces the warning;
however, gcc versions 4.4.7 and 4.7.2 do not.

Signed-off-by: Jeff King <peff@peff.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>