git
8 years agoref-filter: introduce parse_align_position()
Karthik Nayak [Wed, 17 Feb 2016 18:06:14 +0000 (23:36 +0530)] 
ref-filter: introduce parse_align_position()

Extract parse_align_position() from populate_value(), which, given a
string, would give us the alignment position. This is a preparatory
patch as to introduce prefixes for the %(align) atom and avoid
redundancy in the code.

Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Karthik Nayak <Karthik.188@gmail.com>
Reviewed-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoref-filter: introduce color_atom_parser()
Karthik Nayak [Wed, 17 Feb 2016 18:06:13 +0000 (23:36 +0530)] 
ref-filter: introduce color_atom_parser()

Introduce color_atom_parser() which will parse a "color" atom and
store its color in the "used_atom" structure for further usage in
populate_value().

Helped-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Karthik Nayak <Karthik.188@gmail.com>
Reviewed-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoref-filter: introduce parsing functions for each valid atom
Karthik Nayak [Wed, 17 Feb 2016 18:06:12 +0000 (23:36 +0530)] 
ref-filter: introduce parsing functions for each valid atom

Parsing atoms is done in populate_value(), this is repetitive and
hence expensive. Introduce a parsing function which would let us parse
atoms beforehand and store the required details into the 'used_atom'
structure for further usage.

Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Helped-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Helped-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Karthik Nayak <Karthik.188@gmail.com>
Reviewed-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoref-filter: introduce struct used_atom
Karthik Nayak [Wed, 17 Feb 2016 18:06:11 +0000 (23:36 +0530)] 
ref-filter: introduce struct used_atom

Introduce the 'used_atom' structure to replace the existing
implementation of 'used_atom' (which is a list of atoms). This helps
us parse atoms beforehand and store required details into the
'used_atom' for future usage.

Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Karthik Nayak <Karthik.188@gmail.com>
Reviewed-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoref-filter: bump 'used_atom' and related code to the top
Karthik Nayak [Wed, 17 Feb 2016 18:06:10 +0000 (23:36 +0530)] 
ref-filter: bump 'used_atom' and related code to the top

Bump code to the top for usage in further patches.

Signed-off-by: Karthik Nayak <Karthik.188@gmail.com>
Reviewed-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoref-filter: use string_list_split over strbuf_split
Jeff King [Wed, 17 Feb 2016 18:06:09 +0000 (23:36 +0530)] 
ref-filter: use string_list_split over strbuf_split

We don't do any post-processing on the resulting strbufs, so it is
simpler to just use string_list_split, which takes care of removing
the delimiter for us.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Karthik Nayak <Karthik.188@gmail.com>
Reviewed-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agotag: do not show ambiguous tag names as "tags/foo"
Jeff King [Tue, 26 Jan 2016 03:00:05 +0000 (22:00 -0500)] 
tag: do not show ambiguous tag names as "tags/foo"

Since b7cc53e9 (tag.c: use 'ref-filter' APIs, 2015-07-11),
git-tag has started showing tags with ambiguous names (i.e.,
when both "heads/foo" and "tags/foo" exists) as "tags/foo"
instead of just "foo". This is both:

  - pointless; the output of "git tag" includes only
    refs/tags, so we know that "foo" means the one in
    "refs/tags".

and

  - ambiguous; in the original output, we know that the line
    "foo" means that "refs/tags/foo" exists. In the new
    output, it is unclear whether we mean "refs/tags/foo" or
    "refs/tags/tags/foo".

The reason this happens is that commit b7cc53e9 switched
git-tag to use ref-filter's "%(refname:short)" output
formatting, which was adapted from for-each-ref. This more
general code does not know that we care only about tags, and
uses shorten_unambiguous_ref to get the short-name. We need
to tell it that we care only about "refs/tags/", and it
should shorten with respect to that value.

In theory, the ref-filter code could figure this out by us
passing FILTER_REFS_TAGS. But there are two complications
there:

  1. The handling of refname:short is deep in formatting
     code that does not even have our ref_filter struct, let
     alone the arguments to the filter_ref struct.

  2. In git v2.7.0, we expose the formatting language to the
     user. If we follow this path, it will mean that
     "%(refname:short)" behaves differently for "tag" versus
     "for-each-ref" (including "for-each-ref refs/tags/"),
     which can lead to confusion.

Instead, let's add a new modifier to the formatting
language, "strip", to remove a specific set of prefix
components. This fixes "git tag", and lets users invoke the
same behavior from their own custom formats (for "tag" or
"for-each-ref") while leaving ":short" with its same
consistent meaning in all places.

We introduce a test in t7004 for "git tag", which fails
without this patch. We also add a similar test in t3203 for
"git branch", which does not actually fail. But since it is
likely that "branch" will eventually use the same formatting
code, the test helps defend against future regressions.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agot6300: use test_atom for some un-modern tests
Jeff King [Sun, 24 Jan 2016 23:08:18 +0000 (18:08 -0500)] 
t6300: use test_atom for some un-modern tests

Because this script has to test so many formatters, we have
the nice "test_atom" helper, but we don't use it
consistently. Let's do so. This is shorter, gets rid of some
tests that have their "expected" setup outside of a
test_expect_success block, and lets us organize the changes
better (e.g., putting "refname:short" near "refname").

We also expand the "%(push)" tests a little to match the
"%(upstream)" ones.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoGit 2.7 v2.7.0
Junio C Hamano [Mon, 4 Jan 2016 22:08:04 +0000 (14:08 -0800)] 
Git 2.7

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoSync with 2.6.5
Junio C Hamano [Mon, 4 Jan 2016 22:06:59 +0000 (14:06 -0800)] 
Sync with 2.6.5

8 years agoGit 2.6.5 v2.6.5
Junio C Hamano [Mon, 4 Jan 2016 22:06:00 +0000 (14:06 -0800)] 
Git 2.6.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'jk/pending-keep-tag-name' into maint
Junio C Hamano [Mon, 4 Jan 2016 22:03:07 +0000 (14:03 -0800)] 
Merge branch 'jk/pending-keep-tag-name' into maint

History traversal with "git log --source" that starts with an
annotated tag failed to report the tag as "source", due to an
old regression in the command line parser back in v2.2 days.

* jk/pending-keep-tag-name:
  revision.c: propagate tag names from pending array

8 years agoMerge branch 'jk/symbolic-ref-maint' into maint
Junio C Hamano [Mon, 4 Jan 2016 22:02:58 +0000 (14:02 -0800)] 
Merge branch 'jk/symbolic-ref-maint' into maint

"git symbolic-ref" forgot to report a failure with its exit status.

* jk/symbolic-ref-maint:
  t1401: test reflog creation for git-symbolic-ref
  symbolic-ref: propagate error code from create_symref()

8 years agoMerge branch 'jk/ident-loosen-getpwuid' into maint
Junio C Hamano [Mon, 4 Jan 2016 22:02:57 +0000 (14:02 -0800)] 
Merge branch 'jk/ident-loosen-getpwuid' into maint

When getpwuid() on the system returned NULL (e.g. the user is not
in the /etc/passwd file or other uid-to-name mappings), the
codepath to find who the user is to record it in the reflog barfed
and died.  Loosen the check in this codepath, which already accepts
questionable ident string (e.g. host part of the e-mail address is
obviously bogus), and in general when we operate fmt_ident() function
in non-strict mode.

* jk/ident-loosen-getpwuid:
  ident: loosen getpwuid error in non-strict mode
  ident: keep a flag for bogus default_email
  ident: make xgetpwuid_self() a static local helper

8 years agoMerge branch 'jk/send-email-ssl-errors' into maint
Junio C Hamano [Mon, 4 Jan 2016 22:02:55 +0000 (14:02 -0800)] 
Merge branch 'jk/send-email-ssl-errors' into maint

Improve error reporting when SMTP TLS fails.

* jk/send-email-ssl-errors:
  send-email: enable SSL level 1 debug output

8 years agoMerge branch 'sg/completion-no-column' into maint
Junio C Hamano [Mon, 4 Jan 2016 22:02:45 +0000 (14:02 -0800)] 
Merge branch 'sg/completion-no-column' into maint

The completion script (in contrib/) used to list "git column"
(which is not an end-user facing command) as one of the choices

* sg/completion-no-column:
  completion: remove 'git column' from porcelain commands

8 years agoMerge tag 'l10n-2.7.0-rnd2+de' of git://github.com/git-l10n/git-po
Junio C Hamano [Sat, 2 Jan 2016 19:31:43 +0000 (11:31 -0800)] 
Merge tag 'l10n-2.7.0-rnd2+de' of git://github.com/git-l10n/git-po

l10n-2.7.0-rnd2+de

* tag 'l10n-2.7.0-rnd2+de' of git://github.com/git-l10n/git-po:
  l10n: de.po: translate 68 new messages
  l10n: de.po: improve some translations

8 years agol10n: de.po: translate 68 new messages
Ralf Thielow [Tue, 22 Dec 2015 17:08:06 +0000 (18:08 +0100)] 
l10n: de.po: translate 68 new messages

Translate 68 new messages came from git.pot update in
f4f2c8f (l10n: git.pot: v2.7.0 round 1 (66 new, 29 removed)) and
2c0ca05 (l10n: git.pot: v2.7.0 round 2 (2 new, 2 removed)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Matthias Rüster <matthias.ruester@gmail.com>
8 years agol10n: de.po: improve some translations
Ralf Thielow [Thu, 29 Oct 2015 21:18:32 +0000 (22:18 +0100)] 
l10n: de.po: improve some translations

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Phillip Sz <phillip.szelat@gmail.com>
8 years agoGit 2.7-rc3 v2.7.0-rc3
Junio C Hamano [Mon, 28 Dec 2015 22:00:52 +0000 (14:00 -0800)] 
Git 2.7-rc3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'sh/p4-multi-depot'
Junio C Hamano [Mon, 28 Dec 2015 21:58:57 +0000 (13:58 -0800)] 
Merge branch 'sh/p4-multi-depot'

"git p4" when interacting with multiple depots at the same time
used to incorrectly drop changes.

* sh/p4-multi-depot:
  git-p4: reduce number of server queries for fetches
  git-p4: support multiple depot paths in p4 submit
  git-p4: failing test case for skipping changes with multiple depots

8 years agoMerge branch 'jk/pending-keep-tag-name'
Junio C Hamano [Mon, 28 Dec 2015 21:58:03 +0000 (13:58 -0800)] 
Merge branch 'jk/pending-keep-tag-name'

History traversal with "git log --source" that starts with an
annotated tag failed to report the tag as "source", due to an
old regression in the command line parser back in v2.2 days.

* jk/pending-keep-tag-name:
  revision.c: propagate tag names from pending array

8 years agoMerge branch 'jk/symbolic-ref-maint'
Junio C Hamano [Mon, 28 Dec 2015 21:57:24 +0000 (13:57 -0800)] 
Merge branch 'jk/symbolic-ref-maint'

"git symbolic-ref" forgot to report a failure with its exit status.

* jk/symbolic-ref-maint:
  t1401: test reflog creation for git-symbolic-ref
  symbolic-ref: propagate error code from create_symref()

8 years agoMerge tag 'l10n-2.7.0-rnd2' of git://github.com/git-l10n/git-po
Junio C Hamano [Mon, 28 Dec 2015 21:53:47 +0000 (13:53 -0800)] 
Merge tag 'l10n-2.7.0-rnd2' of git://github.com/git-l10n/git-po

l10n-2.7.0-rnd2

* tag 'l10n-2.7.0-rnd2' of git://github.com/git-l10n/git-po:
  l10n: ru.po: update Russian translation
  l10n: Updated Bulgarian translation of git (2477t,0f,0u)
  l10n: ca.po: update translation
  l10n: zh_CN: for git v2.7.0 l10n round 2
  l10n: sv.po: Update Swedish translation (2477t0f0u)
  l10n: sv: Fix bad translation
  l10n: fr.po v2.7.0 round 2 (2477t)
  l10n: git.pot: v2.7.0 round 2 (2 new, 2 removed)
  l10n: zh_CN: for git v2.7.0 l10n round 1
  l10n: ca.po: update translation
  l10n: fr v2.7.0 round 1 (2477t)
  l10n: Updated Bulgarian translation of git (2477t,0f,0u)
  l10n: sv.po: Update Swedish translation (2477t0f0u)
  l10n: vi.po: Updated translation (2477t)
  l10n: git.pot: v2.7.0 round 1 (66 new, 29 removed)
  l10n: fr.po: Fix typo
  l10n: fr.po: Fix typo

8 years agol10n: ru.po: update Russian translation
Dimitriy Ryazantcev [Fri, 25 Dec 2015 12:02:48 +0000 (14:02 +0200)] 
l10n: ru.po: update Russian translation

Signed-off-by: Dimitriy Ryazantcev <dimitriy.ryazantcev@gmail.com>
8 years agoMerge branch 'master' of git://github.com/alshopov/git-po
Jiang Xin [Mon, 28 Dec 2015 15:13:15 +0000 (23:13 +0800)] 
Merge branch 'master' of git://github.com/alshopov/git-po

* 'master' of git://github.com/alshopov/git-po:
  l10n: Updated Bulgarian translation of git (2477t,0f,0u)

8 years agol10n: Updated Bulgarian translation of git (2477t,0f,0u)
Alexander Shopov [Mon, 28 Dec 2015 09:33:41 +0000 (11:33 +0200)] 
l10n: Updated Bulgarian translation of git (2477t,0f,0u)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>
8 years agol10n: ca.po: update translation
Alex Henrie [Mon, 28 Dec 2015 04:42:59 +0000 (21:42 -0700)] 
l10n: ca.po: update translation

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
8 years agol10n: zh_CN: for git v2.7.0 l10n round 2
Jiang Xin [Tue, 22 Dec 2015 15:06:59 +0000 (23:06 +0800)] 
l10n: zh_CN: for git v2.7.0 l10n round 2

Update 2 translations (2477t0f0u) for git v2.7.0-rc1.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
8 years agoMerge branch 'master' of git://github.com/nafmo/git-l10n-sv
Jiang Xin [Sat, 26 Dec 2015 13:22:30 +0000 (21:22 +0800)] 
Merge branch 'master' of git://github.com/nafmo/git-l10n-sv

* 'master' of git://github.com/nafmo/git-l10n-sv:
  l10n: sv.po: Update Swedish translation (2477t0f0u)
  l10n: sv: Fix bad translation

8 years agol10n: sv.po: Update Swedish translation (2477t0f0u)
Peter Krefting [Sat, 26 Dec 2015 11:27:15 +0000 (12:27 +0100)] 
l10n: sv.po: Update Swedish translation (2477t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
8 years agol10n: sv: Fix bad translation
Peter Krefting [Sat, 7 Nov 2015 14:48:20 +0000 (15:48 +0100)] 
l10n: sv: Fix bad translation

Found-by: Sebastian Rasmussen <sebras@gmail.com>
Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
8 years agol10n: fr.po v2.7.0 round 2 (2477t)
Jean-Noel Avila [Thu, 24 Dec 2015 06:38:22 +0000 (07:38 +0100)] 
l10n: fr.po v2.7.0 round 2 (2477t)

Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
8 years agoGit 2.7-rc2 v2.7.0-rc2
Junio C Hamano [Tue, 22 Dec 2015 22:46:01 +0000 (14:46 -0800)] 
Git 2.7-rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'js/emu-write-epipe-on-windows'
Junio C Hamano [Tue, 22 Dec 2015 22:45:16 +0000 (14:45 -0800)] 
Merge branch 'js/emu-write-epipe-on-windows'

The write(2) emulation for Windows learned to set errno to EPIPE
when necessary.

* js/emu-write-epipe-on-windows:
  mingw: emulate write(2) that fails with a EPIPE

8 years agopush: don't mark options of recurse-submodules for translation
Ralf Thielow [Tue, 22 Dec 2015 17:53:00 +0000 (18:53 +0100)] 
push: don't mark options of recurse-submodules for translation

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agol10n: git.pot: v2.7.0 round 2 (2 new, 2 removed)
Jiang Xin [Tue, 22 Dec 2015 14:51:43 +0000 (22:51 +0800)] 
l10n: git.pot: v2.7.0 round 2 (2 new, 2 removed)

Generate po/git.pot from v2.7.0-rc1-44-g1d88dab for git v2.7.0 l10n round 2.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
8 years agoMerge branch 'master' of git://github.com/git-l10n/git-po
Jiang Xin [Tue, 22 Dec 2015 14:50:24 +0000 (22:50 +0800)] 
Merge branch 'master' of git://github.com/git-l10n/git-po

* 'master' of git://github.com/git-l10n/git-po:
  l10n: zh_CN: for git v2.7.0 l10n round 1
  l10n: ca.po: update translation
  l10n: fr v2.7.0 round 1 (2477t)
  l10n: Updated Bulgarian translation of git (2477t,0f,0u)
  l10n: sv.po: Update Swedish translation (2477t0f0u)
  l10n: vi.po: Updated translation (2477t)
  l10n: git.pot: v2.7.0 round 1 (66 new, 29 removed)
  l10n: fr.po: Fix typo
  l10n: fr.po: Fix typo

8 years agot1401: test reflog creation for git-symbolic-ref
Jeff King [Sun, 20 Dec 2015 07:27:23 +0000 (02:27 -0500)] 
t1401: test reflog creation for git-symbolic-ref

The current code writes a reflog entry whenever we update a
symbolic ref, but we never test that this is so. Let's add a
test to make sure upcoming refactoring doesn't cause a
regression.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agosymbolic-ref: propagate error code from create_symref()
Jeff King [Sun, 20 Dec 2015 07:27:18 +0000 (02:27 -0500)] 
symbolic-ref: propagate error code from create_symref()

If create_symref() fails, git-symbolic-ref will still exit
with code 0, and our caller has no idea that the command did
nothing.

This appears to have been broken since the beginning of time
(e.g., it is not a regression where create_symref() stopped
calling die() or something similar).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agogit-p4: reduce number of server queries for fetches
Sam Hocevar [Sat, 19 Dec 2015 09:39:40 +0000 (09:39 +0000)] 
git-p4: reduce number of server queries for fetches

When fetching changes from a depot using a full client spec, there
is no need to perform as many queries as there are top-level paths
in the client spec.  Instead we query all changes in chronological
order, also getting rid of the need to sort the results and remove
duplicates.

Signed-off-by: Sam Hocevar <sam@hocevar.net>
Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agogit-p4: support multiple depot paths in p4 submit
Sam Hocevar [Sat, 19 Dec 2015 09:39:39 +0000 (09:39 +0000)] 
git-p4: support multiple depot paths in p4 submit

When submitting from a repository that was cloned using a client spec,
use the full list of paths when ruling out files that are outside the
view.  This fixes a bug where only files pertaining to the first path
would be included in the p4 submit.

Signed-off-by: Sam Hocevar <sam@hocevar.net>
Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoUpdate release notes to 2.7
Junio C Hamano [Mon, 21 Dec 2015 19:08:20 +0000 (11:08 -0800)] 
Update release notes to 2.7

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'bc/format-patch-null-from-line'
Junio C Hamano [Mon, 21 Dec 2015 18:59:07 +0000 (10:59 -0800)] 
Merge branch 'bc/format-patch-null-from-line'

"format-patch" has learned a new option to zero-out the commit
object name on the mbox "From " line.

* bc/format-patch-null-from-line:
  format-patch: check that header line has expected format
  format-patch: add an option to suppress commit hash
  sha1_file.c: introduce a null_oid constant

8 years agoMerge branch 'jk/ident-loosen-getpwuid'
Junio C Hamano [Mon, 21 Dec 2015 18:59:07 +0000 (10:59 -0800)] 
Merge branch 'jk/ident-loosen-getpwuid'

When getpwuid() on the system returned NULL (e.g. the user is not
in the /etc/passwd file or other uid-to-name mappings), the
codepath to find who the user is to record it in the reflog barfed
and died.  Loosen the check in this codepath, which already accepts
questionable ident string (e.g. host part of the e-mail address is
obviously bogus), and in general when we operate fmt_ident() function
in non-strict mode.

* jk/ident-loosen-getpwuid:
  ident: loosen getpwuid error in non-strict mode
  ident: keep a flag for bogus default_email
  ident: make xgetpwuid_self() a static local helper

8 years agoMerge branch 'jk/send-email-ssl-errors'
Junio C Hamano [Mon, 21 Dec 2015 18:59:06 +0000 (10:59 -0800)] 
Merge branch 'jk/send-email-ssl-errors'

Improve error reporting when SMTP TLS fails.

* jk/send-email-ssl-errors:
  send-email: enable SSL level 1 debug output

8 years agoMerge branch 'sg/completion-no-column'
Junio C Hamano [Mon, 21 Dec 2015 18:59:06 +0000 (10:59 -0800)] 
Merge branch 'sg/completion-no-column'

The completion script (in contrib/) used to list "git column"
(which is not an end-user facing command) as one of the choices

* sg/completion-no-column:
  completion: remove 'git column' from porcelain commands

8 years agoMerge branch 'mc/push-recurse-submodules-config'
Junio C Hamano [Mon, 21 Dec 2015 18:59:05 +0000 (10:59 -0800)] 
Merge branch 'mc/push-recurse-submodules-config'

Add new config to avoid typing "--recurse-submodules" on each push.

* mc/push-recurse-submodules-config:
  push: follow the "last one wins" convention for --recurse-submodules
  push: test that --recurse-submodules on command line overrides config
  push: add recurseSubmodules config option

8 years agomingw: emulate write(2) that fails with a EPIPE
Johannes Schindelin [Thu, 17 Dec 2015 17:08:15 +0000 (18:08 +0100)] 
mingw: emulate write(2) that fails with a EPIPE

On Windows, when writing to a pipe fails, errno is always
EINVAL. However, Git expects it to be EPIPE.

According to the documentation, there are two cases in which write()
triggers EINVAL: the buffer is NULL, or the length is odd but the mode
is 16-bit Unicode (the broken pipe is not mentioned as possible cause).
Git never sets the file mode to anything but binary, therefore we know
that errno should actually be EPIPE if it is EINVAL and the buffer is
not NULL.

See https://msdn.microsoft.com/en-us/library/1570wh78.aspx for more
details.

This works around t5571.11 failing with v2.6.4 on Windows.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge git://ozlabs.org/~paulus/gitk
Junio C Hamano [Mon, 21 Dec 2015 16:56:16 +0000 (08:56 -0800)] 
Merge git://ozlabs.org/~paulus/gitk

* git://ozlabs.org/~paulus/gitk:
  gitk: sv.po: Update Swedish translation (311t)
  gitk: Let .bleft.mid widgets 'breathe'
  gitk: Match ttk fonts to gitk fonts
  gitk: Update revision date in Japanese PO file
  gitk: Update "Language:" header
  gitk: Improve translation message
  gitk: Remove unused line
  gitk: Update year
  gitk: Change last translator line
  gitk: Update fuzzy messages
  gitk: Update Japanese translation
  gitk: Fix translation around copyright sign
  gitk: Update Japanese translation
  gitk: Fix wrong translation
  gitk: Translate Japanese catalog
  gitk: Translate more to Japanese catalog
  gitk: Update Japanese message catalog
  gitk: Re-sync line number in Japanese message catalogue
  gitk: Color name update

8 years agol10n: zh_CN: for git v2.7.0 l10n round 1
Jiang Xin [Sun, 15 Nov 2015 23:02:11 +0000 (07:02 +0800)] 
l10n: zh_CN: for git v2.7.0 l10n round 1

Update 66 translations (2477t0f0u) for git v2.7.0-rc0.

Reviewed-by: Ray Chen <oldsharp@gmail.com>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
8 years agoMerge branch 'master' of git://github.com/alexhenrie/git-po
Jiang Xin [Sun, 20 Dec 2015 11:32:26 +0000 (19:32 +0800)] 
Merge branch 'master' of git://github.com/alexhenrie/git-po

* 'master' of git://github.com/alexhenrie/git-po:
  l10n: ca.po: update translation

8 years agoMerge branch 'fr_v2.7.0' of git://github.com/jnavila/git
Jiang Xin [Sun, 20 Dec 2015 11:31:47 +0000 (19:31 +0800)] 
Merge branch 'fr_v2.7.0' of git://github.com/jnavila/git

* 'fr_v2.7.0' of git://github.com/jnavila/git:
  l10n: fr v2.7.0 round 1 (2477t)

8 years agoMerge branch 'master' of git://github.com/alshopov/git-po
Jiang Xin [Sun, 20 Dec 2015 11:30:52 +0000 (19:30 +0800)] 
Merge branch 'master' of git://github.com/alshopov/git-po

* 'master' of git://github.com/alshopov/git-po:
  l10n: Updated Bulgarian translation of git (2477t,0f,0u)

8 years agol10n: ca.po: update translation
Alex Henrie [Sat, 19 Dec 2015 06:38:23 +0000 (23:38 -0700)] 
l10n: ca.po: update translation

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
8 years agoMerge branch 'ja.po' of https://github.com/qykth-git/gitk
Paul Mackerras [Sat, 19 Dec 2015 02:33:16 +0000 (13:33 +1100)] 
Merge branch 'ja.po' of https://github.com/qykth-git/gitk

8 years agoMerge branch 'color-fix' of https://github.com/qykth-git/gitk
Paul Mackerras [Sat, 19 Dec 2015 02:29:35 +0000 (13:29 +1100)] 
Merge branch 'color-fix' of https://github.com/qykth-git/gitk

8 years agol10n: fr v2.7.0 round 1 (2477t)
Jean-Noel Avila [Fri, 18 Dec 2015 21:00:37 +0000 (22:00 +0100)] 
l10n: fr v2.7.0 round 1 (2477t)

Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
8 years agol10n: Updated Bulgarian translation of git (2477t,0f,0u)
Alexander Shopov [Sun, 13 Dec 2015 16:55:45 +0000 (18:55 +0200)] 
l10n: Updated Bulgarian translation of git (2477t,0f,0u)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>
8 years agol10n: sv.po: Update Swedish translation (2477t0f0u)
Peter Krefting [Fri, 18 Dec 2015 08:09:41 +0000 (09:09 +0100)] 
l10n: sv.po: Update Swedish translation (2477t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
8 years agorevision.c: propagate tag names from pending array
Jeff King [Thu, 17 Dec 2015 06:47:07 +0000 (01:47 -0500)] 
revision.c: propagate tag names from pending array

When we unwrap a tag to find its commit for a traversal, we
do not propagate the "name" field of the tag in the pending
array (i.e., the ref name the user gave us in the first
place) to the commit (instead, we use an empty string). This
means that "git log --source" will never show the tag-name
for commits we reach through it.

This was broken in 2073949 (traverse_commit_list: support
pending blobs/trees with paths, 2014-10-15). That commit
tried to be careful and avoid propagating the path
information for a tag (which would be nonsensical) to trees
and blobs. But it should not have cut off the "name" field,
which should carry forward to children.

Note that this does mean that the "name" field will carry
forward to blobs and trees, too. Whereas prior to 2073949,
we always gave them an empty string. This is the right thing
to do, but in practice no callers probably use it (since now
we have an explicit separate "path" field, which was the
point of 2073949).

We add tests here not only for the broken case, but also a
basic sanity test of "log --source" in general, which did
not have any coverage in the test suite.

Reported-by: Raymundo <gypark@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'fr/rebase-i-continue-preserve-options'
Junio C Hamano [Wed, 16 Dec 2015 22:42:52 +0000 (14:42 -0800)] 
Merge branch 'fr/rebase-i-continue-preserve-options'

"git rebase -i" started with merge strategy options did not
propagate them upon "git rebase --continue".

* fr/rebase-i-continue-preserve-options:
  rebase -i: remember merge options beyond continue actions

8 years agoMerge branch 'maint'
Junio C Hamano [Wed, 16 Dec 2015 22:40:30 +0000 (14:40 -0800)] 
Merge branch 'maint'

* maint:
  credential-store: don't pass strerror to die_errno()

8 years agoMerge branch 'sg/lock-file-commit-error' into maint
Junio C Hamano [Wed, 16 Dec 2015 18:27:22 +0000 (10:27 -0800)] 
Merge branch 'sg/lock-file-commit-error' into maint

* sg/lock-file-commit-error:
  credential-store: don't pass strerror to die_errno()

8 years agocredential-store: don't pass strerror to die_errno()
SZEDER Gábor [Wed, 16 Dec 2015 11:22:55 +0000 (12:22 +0100)] 
credential-store: don't pass strerror to die_errno()

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoformat-patch: check that header line has expected format
brian m. carlson [Tue, 15 Dec 2015 01:52:05 +0000 (01:52 +0000)] 
format-patch: check that header line has expected format

The format of the "From " header line is very specific to allow
utilities to detect Git-style patches.  Add a test that the patches
created are in the expected format.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoformat-patch: add an option to suppress commit hash
brian m. carlson [Tue, 15 Dec 2015 01:52:04 +0000 (01:52 +0000)] 
format-patch: add an option to suppress commit hash

Oftentimes, patches created by git format-patch will be stored in
version control or compared with diff.  In these cases, two otherwise
identical patches can have different commit hashes, leading to diff
noise.  Teach git format-patch a --zero-commit option that instead
produces an all-zero hash to avoid this diff noise.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoGit 2.7-rc1 v2.7.0-rc1
Junio C Hamano [Tue, 15 Dec 2015 17:47:11 +0000 (09:47 -0800)] 
Git 2.7-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoSync with maint
Junio C Hamano [Tue, 15 Dec 2015 17:45:06 +0000 (09:45 -0800)] 
Sync with maint

8 years agoUpdate draft release notes to 2.6.5
Junio C Hamano [Tue, 15 Dec 2015 17:43:01 +0000 (09:43 -0800)] 
Update draft release notes to 2.6.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'dt/fsck-verify-pack-error' into maint
Junio C Hamano [Tue, 15 Dec 2015 17:42:16 +0000 (09:42 -0800)] 
Merge branch 'dt/fsck-verify-pack-error' into maint

The exit code of git-fsck didnot reflect some types of errors found
in packed objects, which has been corrected.

* dt/fsck-verify-pack-error:
  verify_pack: do not ignore return value of verification function

8 years agoMerge branch 'ep/ident-with-getaddrinfo' into maint
Junio C Hamano [Tue, 15 Dec 2015 17:42:01 +0000 (09:42 -0800)] 
Merge branch 'ep/ident-with-getaddrinfo' into maint

A fix-up for recent topic.

* ep/ident-with-getaddrinfo:
  ident: fix undefined variable when NO_IPV6 is set
  ident.c: add support for IPv6

8 years agoMerge branch 'ls/p4-keep-empty-commits' into maint
Junio C Hamano [Tue, 15 Dec 2015 17:34:18 +0000 (09:34 -0800)] 
Merge branch 'ls/p4-keep-empty-commits' into maint

"git p4" used to import Perforce CLs that touch only paths outside
the client spec as empty commits.  It has been corrected to ignore
them instead, with a new configuration git-p4.keepEmptyCommits as a
backward compatibility knob.

* ls/p4-keep-empty-commits:
  git-p4: add option to keep empty commits

8 years agoMerge branch 'jk/send-email-complete-aliases'
Junio C Hamano [Tue, 15 Dec 2015 17:33:19 +0000 (09:33 -0800)] 
Merge branch 'jk/send-email-complete-aliases'

A fix-up for recent topic.

* jk/send-email-complete-aliases:
  completion: fix completing unstuck email alias arguments

8 years agoMerge branch 'ep/ident-with-getaddrinfo'
Junio C Hamano [Tue, 15 Dec 2015 17:33:19 +0000 (09:33 -0800)] 
Merge branch 'ep/ident-with-getaddrinfo'

A fix-up for recent topic.

* ep/ident-with-getaddrinfo:
  ident: fix undefined variable when NO_IPV6 is set

8 years agoMerge branch 'jk/prune-mtime' into maint
Junio C Hamano [Tue, 15 Dec 2015 17:27:11 +0000 (09:27 -0800)] 
Merge branch 'jk/prune-mtime' into maint

The helper used to iterate over loose object directories to prune
stale objects did not closedir() immediately when it is done with a
directory--a callback such as the one used for "git prune" may want
to do rmdir(), but it would fail on open directory on platforms
such as WinXP.

* jk/prune-mtime:
  prune: close directory earlier during loose-object directory traversal

8 years agoMerge branch 'ls/p4-keep-empty-commits'
Junio C Hamano [Tue, 15 Dec 2015 16:02:18 +0000 (08:02 -0800)] 
Merge branch 'ls/p4-keep-empty-commits'

"git p4" used to import Perforce CLs that touch only paths outside
the client spec as empty commits.  It has been corrected to ignore
them instead, with a new configuration git-p4.keepEmptyCommits as a
backward compatibility knob.

* ls/p4-keep-empty-commits:
  git-p4: add option to keep empty commits

8 years agoMerge branch 'jk/prune-mtime'
Junio C Hamano [Tue, 15 Dec 2015 16:02:13 +0000 (08:02 -0800)] 
Merge branch 'jk/prune-mtime'

The helper used to iterate over loose object directories to prune
stale objects did not closedir() immediately when it is done with a
directory--a callback such as the one used for "git prune" may want
to do rmdir(), but it would fail on open directory on platforms
such as WinXP.

* jk/prune-mtime:
  prune: close directory earlier during loose-object directory traversal

8 years agogit-p4: failing test case for skipping changes with multiple depots
Luke Diamand [Sun, 13 Dec 2015 20:07:13 +0000 (20:07 +0000)] 
git-p4: failing test case for skipping changes with multiple depots

James Farwell reported that with multiple depots git-p4 would
skip changes.

http://article.gmane.org/gmane.comp.version-control.git/282297

Add a failing test case demonstrating the problem.

Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agocompletion: fix completing unstuck email alias arguments
SZEDER Gábor [Sat, 12 Dec 2015 00:18:18 +0000 (01:18 +0100)] 
completion: fix completing unstuck email alias arguments

Completing unstuck form of email aliases doesn't quite work:

  $ git send-email --to <TAB>
  alice   bob     cecil
  $ git send-email --to a<TAB>
  alice   bob     cecil

While listing email aliases works as expected, the second case should
just complete to 'alice', but it keeps offering all email aliases
instead.

The cause for this behavior is that in this case we mistakenly tell
__gitcomp() explicitly that the current word to be completed is empty,
while in reality it is not.  As a result __gitcomp() doesn't filter
out non-matching aliases, so all aliases end up being offered over and
over again.

Fix this by not passing the current word to be completed to
__gitcomp() and letting it go the default route and grab it from the
'$cur' variable.  Don't pass empty prefix either, because it's assumed
to be empty when unspecified, so it's not necessary.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agosha1_file.c: introduce a null_oid constant
brian m. carlson [Sun, 6 Dec 2015 22:16:35 +0000 (22:16 +0000)] 
sha1_file.c: introduce a null_oid constant

null_oid is the struct object_id equivalent to null_sha1.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoident: fix undefined variable when NO_IPV6 is set
Jeff King [Mon, 14 Dec 2015 20:52:41 +0000 (15:52 -0500)] 
ident: fix undefined variable when NO_IPV6 is set

Commit 00bce77 (ident.c: add support for IPv6, 2015-11-27)
moved the "gethostbyname" call out of "add_domainname" and
into the helper function "canonical_name". But when moving
the code, it forgot that the "buf" variable is passed as
"host" in the helper.

Reported-by: johan defries <johandefries@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoident: loosen getpwuid error in non-strict mode
Jeff King [Thu, 10 Dec 2015 21:41:29 +0000 (16:41 -0500)] 
ident: loosen getpwuid error in non-strict mode

If the user has not specified an identity and we have to
turn to getpwuid() to find the username or gecos field, we
die immediately when getpwuid fails (e.g., because the user
does not exist). This is OK for making a commit, where we
have set IDENT_STRICT and would want to bail on bogus input.

But for something like a reflog, where the ident is "best
effort", it can be pain. For instance, even running "git
clone" with a UID that is not in /etc/passwd will result in
git barfing, just because we can't find an ident to put in
the reflog.

Instead of dying in xgetpwuid_self, we can instead return a
fallback value, and set a "bogus" flag. For the username in
an email, we already have a "default_email_is_bogus" flag.
For the name field, we introduce (and check) a matching
"default_name_is_bogus" flag. As a bonus, this means you now
get the usual "tell me who you are" advice instead of just a
"no such user" error.

No tests, as this is dependent on configuration outside of
git's control. However, I did confirm that it behaves
sensibly when I delete myself from the local /etc/passwd
(reflogs get written, and commits complain).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agol10n: vi.po: Updated translation (2477t)
Tran Ngoc Quan [Sat, 12 Dec 2015 07:34:08 +0000 (14:34 +0700)] 
l10n: vi.po: Updated translation (2477t)

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
8 years agogitk: sv.po: Update Swedish translation (311t)
Peter Krefting [Fri, 11 Dec 2015 08:49:21 +0000 (09:49 +0100)] 
gitk: sv.po: Update Swedish translation (311t)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Signed-off-by: Paul Mackerras <paulus@samba.org>
8 years agogitk: Let .bleft.mid widgets 'breathe'
Giuseppe Bilotta [Tue, 8 Dec 2015 07:05:51 +0000 (08:05 +0100)] 
gitk: Let .bleft.mid widgets 'breathe'

The widgets on top of the diff window are very tightly packed. Make
them breathe a little by adding an 'i'-spaced padding between them.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
8 years agogitk: Match ttk fonts to gitk fonts
Giuseppe Bilotta [Tue, 8 Dec 2015 07:05:50 +0000 (08:05 +0100)] 
gitk: Match ttk fonts to gitk fonts

The fonts set in setoptions aren't consistently picked up by ttk, which
uses its own predefined fonts. This is noticeable when switching
between using and not using ttk with custom fonts or in HiDPI settings
(where the default TTK fonts do _not_ respect tk sclaing).

Fix by mapping the ttk fontset to the one used by gitk internally.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
8 years agorebase -i: remember merge options beyond continue actions
Fabian Ruch [Fri, 11 Dec 2015 20:30:36 +0000 (21:30 +0100)] 
rebase -i: remember merge options beyond continue actions

If the user explicitly specified a merge strategy or strategy
options, continue to use that strategy/option after
"rebase --continue".  Add a test of the corrected behavior.

If --merge is specified or implied by -s or -X, then "strategy and
"strategy_opts" are set to values from which "strategy_args" can be
derived; otherwise they are set to empty strings.  Either way,
their values are propagated from one step of an interactive rebase
to the next via state files.

"do_merge", on the other hand, is *not* propagated to later steps of
an interactive rebase.  Therefore, making the initialization of
"strategy_args" conditional on "do_merge" being set prevents later
steps of an interactive rebase from setting it correctly.

Luckily, we don't need the "do_merge" guard at all.  If the rebase
was started without --merge, then "strategy" and "strategy_opts"
are both the empty string, which results in "strategy_args" also
being set to the empty string, which is just what we want in that
situation.  So remove the "do_merge" guard and derive
"strategy_args" from "strategy" and "strategy_opts" every time.

Reported-by: Diogo de Campos <campos@esss.com.br>
Signed-off-by: Fabian Ruch <bafain@gmail.com>
Helped-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agocompletion: remove 'git column' from porcelain commands
SZEDER Gábor [Fri, 11 Dec 2015 12:05:00 +0000 (13:05 +0100)] 
completion: remove 'git column' from porcelain commands

'git column' is an internal helper, so it should not be offered on
'git <TAB>' along with porcelain commands.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoUpdate release notes to 2.7
Junio C Hamano [Fri, 11 Dec 2015 18:45:44 +0000 (10:45 -0800)] 
Update release notes to 2.7

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'maint'
Junio C Hamano [Fri, 11 Dec 2015 19:19:43 +0000 (11:19 -0800)] 
Merge branch 'maint'

* maint:
  Prepare for 2.6.5

8 years agoPrepare for 2.6.5
Junio C Hamano [Fri, 11 Dec 2015 19:17:47 +0000 (11:17 -0800)] 
Prepare for 2.6.5

This back-merges hopefully the last batch of trivially correct fixes
to the 2.6.x maintenance track from the master branch.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'sn/null-pointer-arith-in-mark-tree-uninteresting' into maint
Junio C Hamano [Fri, 11 Dec 2015 19:14:38 +0000 (11:14 -0800)] 
Merge branch 'sn/null-pointer-arith-in-mark-tree-uninteresting' into maint

mark_tree_uninteresting() has code to handle the case where it gets
passed a NULL pointer in its 'tree' parameter, but the function had
'object = &tree->object' assignment before checking if tree is
NULL.  This gives a compiler an excuse to declare that tree will
never be NULL and apply a wrong optimization.  Avoid it.

* sn/null-pointer-arith-in-mark-tree-uninteresting:
  revision.c: fix possible null pointer arithmetic

8 years agoMerge branch 'sg/lock-file-commit-error' into maint
Junio C Hamano [Fri, 11 Dec 2015 19:14:18 +0000 (11:14 -0800)] 
Merge branch 'sg/lock-file-commit-error' into maint

Cosmetic improvement to lock-file error messages.

* sg/lock-file-commit-error:
  Make error message after failing commit_lock_file() less confusing

8 years agoMerge branch 'cb/t3404-shellquote' into maint
Junio C Hamano [Fri, 11 Dec 2015 19:14:18 +0000 (11:14 -0800)] 
Merge branch 'cb/t3404-shellquote' into maint

* cb/t3404-shellquote:
  t3404: fix quoting of redirect for some versions of bash

8 years agoMerge branch 'sb/doc-submodule-sync-recursive' into maint
Junio C Hamano [Fri, 11 Dec 2015 19:14:17 +0000 (11:14 -0800)] 
Merge branch 'sb/doc-submodule-sync-recursive' into maint

* sb/doc-submodule-sync-recursive:
  document submodule sync --recursive

8 years agoMerge branch 'nd/doc-check-ref-format-typo' into maint
Junio C Hamano [Fri, 11 Dec 2015 19:14:15 +0000 (11:14 -0800)] 
Merge branch 'nd/doc-check-ref-format-typo' into maint

* nd/doc-check-ref-format-typo:
  git-check-ref-format.txt: typo, s/avoids/avoid/

8 years agoMerge branch 'rs/show-branch-argv-array' into maint
Junio C Hamano [Fri, 11 Dec 2015 19:14:13 +0000 (11:14 -0800)] 
Merge branch 'rs/show-branch-argv-array' into maint

Code simplification.

* rs/show-branch-argv-array:
  show-branch: use argv_array for default arguments

8 years agoMerge branch 'rs/pop-commit' into maint
Junio C Hamano [Fri, 11 Dec 2015 19:14:12 +0000 (11:14 -0800)] 
Merge branch 'rs/pop-commit' into maint

Code simplification.

* rs/pop-commit:
  use pop_commit() for consuming the first entry of a struct commit_list

8 years agoMerge branch 'as/subtree-with-spaces' into maint
Junio C Hamano [Fri, 11 Dec 2015 19:14:11 +0000 (11:14 -0800)] 
Merge branch 'as/subtree-with-spaces' into maint

Update "git subtree" (in contrib/) so that it can take whitespaces
in the pathnames, not only in the in-tree pathname but the name of
the directory that the repository is in.

* as/subtree-with-spaces:
  contrib/subtree: respect spaces in a repository path
  t7900-subtree: test the "space in a subdirectory name" case