git/git.git
5 years agoMerge branch 'sb/submodule-helper'
Junio C Hamano [Mon, 5 Oct 2015 19:30:19 +0000 (12:30 -0700)]
Merge branch 'sb/submodule-helper'

The infrastructure to rewrite "git submodule" in C is being built
incrementally.  Let's polish these early parts well enough and make
them graduate to 'next' and 'master', so that the more involved
follow-up can start cooking on a solid ground.

* sb/submodule-helper:
  submodule: rewrite `module_clone` shell function in C
  submodule: rewrite `module_name` shell function in C
  submodule: rewrite `module_list` shell function in C

5 years agoMerge branch 'kn/for-each-tag'
Junio C Hamano [Mon, 5 Oct 2015 19:30:18 +0000 (12:30 -0700)]
Merge branch 'kn/for-each-tag'

The "ref-filter" code was taught about many parts of what "tag -l"
does and then "tag -l" is being reimplemented in terms of "ref-filter".

* kn/for-each-tag:
  tag.c: implement '--merged' and '--no-merged' options
  tag.c: implement '--format' option
  tag.c: use 'ref-filter' APIs
  tag.c: use 'ref-filter' data structures
  ref-filter: add option to match literal pattern
  ref-filter: add support to sort by version
  ref-filter: add support for %(contents:lines=X)
  ref-filter: add option to filter out tags, branches and remotes
  ref-filter: implement an `align` atom
  ref-filter: introduce match_atom_name()
  ref-filter: introduce handler function for each atom
  utf8: add function to align a string into given strbuf
  ref-filter: introduce ref_formatting_state and ref_formatting_stack
  ref-filter: move `struct atom_value` to ref-filter.c
  strtoul_ui: reject negative values

5 years agoMerge branch 'jk/test-lint-forbid-when-finished-in-subshell'
Junio C Hamano [Mon, 5 Oct 2015 19:30:17 +0000 (12:30 -0700)]
Merge branch 'jk/test-lint-forbid-when-finished-in-subshell'

Because "test_when_finished" in our test framework queues the
clean-up tasks to be done in a shell variable, it should not be
used inside a subshell.  Add a mechanism to allow 'bash' to catch
such uses, and fix the ones that were found.

* jk/test-lint-forbid-when-finished-in-subshell:
  test-lib-functions: detect test_when_finished in subshell
  t7800: don't use test_config in a subshell
  test-lib-functions: support "test_config -C <dir> ..."
  t5801: don't use test_when_finished in a subshell
  t7610: don't use test_config in a subshell

5 years agoMerge branch 'jk/interpret-trailers-outside-a-repository'
Junio C Hamano [Mon, 5 Oct 2015 19:30:16 +0000 (12:30 -0700)]
Merge branch 'jk/interpret-trailers-outside-a-repository'

Allow "git interpret-trailers" to run outside of a Git repository.

* jk/interpret-trailers-outside-a-repository:
  interpret-trailers: allow running outside a repository

5 years agoMerge branch 'as/subtree-with-spaces'
Junio C Hamano [Mon, 5 Oct 2015 19:30:15 +0000 (12:30 -0700)]
Merge branch 'as/subtree-with-spaces'

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

5 years agoMerge branch 'jk/connect-clear-env'
Junio C Hamano [Mon, 5 Oct 2015 19:30:14 +0000 (12:30 -0700)]
Merge branch 'jk/connect-clear-env'

The ssh transport, just like any other transport over the network,
did not clear GIT_* environment variables, but it is possible to
use SendEnv and AcceptEnv to leak them to the remote invocation of
Git, which is not a good idea at all.  Explicitly clear them just
like we do for the local transport.

* jk/connect-clear-env:
  git_connect: clarify conn->use_shell flag
  git_connect: clear GIT_* environment for ssh

5 years agoMerge branch 'jk/date-local'
Junio C Hamano [Mon, 5 Oct 2015 19:30:12 +0000 (12:30 -0700)]
Merge branch 'jk/date-local'

"git log --date=local" used to only show the normal (default)
format in the local timezone.  The command learned to take 'local'
as an instruction to use the local timezone with other formats,
e.g. "git show --date=rfc-local".

* jk/date-local:
  t6300: add tests for "-local" date formats
  t6300: make UTC and local dates different
  date: make "local" orthogonal to date format
  date: check for "local" before anything else
  t6300: add test for "raw" date format
  t6300: introduce test_date() helper
  fast-import: switch crash-report date to iso8601
  Documentation/rev-list: don't list date formats
  Documentation/git-for-each-ref: don't list date formats
  Documentation/config: don't list date formats
  Documentation/blame-options: don't list date formats

5 years agoMerge branch 'dt/refs-bisection'
Junio C Hamano [Mon, 5 Oct 2015 19:30:11 +0000 (12:30 -0700)]
Merge branch 'dt/refs-bisection'

Move the refs used during a "git bisect" session to per-worktree
hierarchy refs/worktree/* so that independent bisect sessions can
be done in different worktrees.

* dt/refs-bisection:
  refs: make refs/bisect/* per-worktree
  path: optimize common dir checking
  refs: clean up common_list

5 years agoMerge branch 'nk/stash-show-config'
Junio C Hamano [Mon, 5 Oct 2015 19:30:10 +0000 (12:30 -0700)]
Merge branch 'nk/stash-show-config'

Users who are too busy to type three extra keystrokes to ask for
"git stash show -p" can now set stash.showPatch configuration
varible to true to always see the actual patch, not just the list
of paths affected with feel for the extent of damage via diffstat.

* nk/stash-show-config:
  stash: allow "stash show" diff output configurable

5 years agoMerge branch 'jk/async-pkt-line'
Junio C Hamano [Mon, 5 Oct 2015 19:30:09 +0000 (12:30 -0700)]
Merge branch 'jk/async-pkt-line'

The debugging infrastructure for pkt-line based communication has
been improved to mark the side-band communication specifically.

* jk/async-pkt-line:
  pkt-line: show packets in async processes as "sideband"
  run-command: provide in_async query function

5 years agoMerge branch 'jh/quiltimport-explicit-series-file'
Junio C Hamano [Mon, 5 Oct 2015 19:30:08 +0000 (12:30 -0700)]
Merge branch 'jh/quiltimport-explicit-series-file'

"quiltimport" allows to specify the series file by honoring the
$QUILT_SERIES environment and also --series command line option.

* jh/quiltimport-explicit-series-file:
  git-quiltimport: add commandline option --series <file>

5 years agoMerge branch 'ld/p4-import-labels'
Junio C Hamano [Mon, 5 Oct 2015 19:30:07 +0000 (12:30 -0700)]
Merge branch 'ld/p4-import-labels'

Correct "git p4 --detect-labels" so that it does not fail to create
a tag that points at a commit that is also being imported.

* ld/p4-import-labels:
  git-p4: fix P4 label import for unprocessed commits
  git-p4: do not terminate creating tag for unknown commit
  git-p4: failing test for ignoring invalid p4 labels

5 years agoMerge branch 'ad/bisect-terms'
Junio C Hamano [Mon, 5 Oct 2015 19:30:06 +0000 (12:30 -0700)]
Merge branch 'ad/bisect-terms'

The use of 'good/bad' in "git bisect" made it confusing to use when
hunting for a state change that is not a regression (e.g. bugfix).
The command learned 'old/new' and then allows the end user to
say e.g. "bisect start --term-old=fast --term=new=slow" to find a
performance regression.

Michael's idea to make 'good/bad' more intelligent does have
certain attractiveness ($gname/272867), and makes some of the work
on this topic a moot point.

* ad/bisect-terms:
  bisect: allow setting any user-specified in 'git bisect start'
  bisect: add 'git bisect terms' to view the current terms
  bisect: add the terms old/new
  bisect: sanity check on terms

5 years agoMerge branch 'jc/rerere'
Junio C Hamano [Mon, 5 Oct 2015 19:30:04 +0000 (12:30 -0700)]
Merge branch 'jc/rerere'

Code clean-up and minor fixes.

* jc/rerere: (21 commits)
  rerere: un-nest merge() further
  rerere: use "struct rerere_id" instead of "char *" for conflict ID
  rerere: call conflict-ids IDs
  rerere: further clarify do_rerere_one_path()
  rerere: further de-dent do_plain_rerere()
  rerere: refactor "replay" part of do_plain_rerere()
  rerere: explain the remainder
  rerere: explain "rerere forget" codepath
  rerere: explain the primary codepath
  rerere: explain MERGE_RR management helpers
  rerere: fix benign off-by-one non-bug and clarify code
  rerere: explain the rerere I/O abstraction
  rerere: do not leak mmfile[] for a path with multiple stage #1 entries
  rerere: stop looping unnecessarily
  rerere: drop want_sp parameter from is_cmarker()
  rerere: report autoupdated paths only after actually updating them
  rerere: write out each record of MERGE_RR in one go
  rerere: lift PATH_MAX limitation
  rerere: plug conflict ID leaks
  rerere: handle conflicts with multiple stage #1 entries
  ...

5 years agoMerge branch 'kn/for-each-tag-branch'
Junio C Hamano [Mon, 5 Oct 2015 19:30:02 +0000 (12:30 -0700)]
Merge branch 'kn/for-each-tag-branch'

Some features from "git tag -l" and "git branch -l" have been made
available to "git for-each-ref" so that eventually the unified
implementation can be shared across all three, in a follow-up
series or two.

* kn/for-each-tag-branch:
  for-each-ref: add '--contains' option
  ref-filter: implement '--contains' option
  parse-options.h: add macros for '--contains' option
  parse-option: rename parse_opt_with_commit()
  for-each-ref: add '--merged' and '--no-merged' options
  ref-filter: implement '--merged' and '--no-merged' options
  ref-filter: add parse_opt_merge_filter()
  for-each-ref: add '--points-at' option
  ref-filter: implement '--points-at' option
  tag: libify parse_opt_points_at()
  t6302: for-each-ref tests for ref-filter APIs

5 years agoGit 2.6 v2.6.0
Junio C Hamano [Mon, 28 Sep 2015 20:18:01 +0000 (13:18 -0700)]
Git 2.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoGit 2.6-rc3 v2.6.0-rc3
Junio C Hamano [Mon, 21 Sep 2015 20:26:13 +0000 (13:26 -0700)]
Git 2.6-rc3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge branch 'rj/mailmap-ramsay'
Junio C Hamano [Mon, 21 Sep 2015 19:58:35 +0000 (12:58 -0700)]
Merge branch 'rj/mailmap-ramsay'

* rj/mailmap-ramsay:
  mailmap: update my entry with new email address

5 years agoMerge branch 'bn/send-email-smtp-auth-error-message-fix'
Junio C Hamano [Mon, 21 Sep 2015 19:27:15 +0000 (12:27 -0700)]
Merge branch 'bn/send-email-smtp-auth-error-message-fix'

Fix a minor regression brought in to "git send-email" by a recent
addition of the "--smtp-auth" option.

* bn/send-email-smtp-auth-error-message-fix:
  send-email: fix uninitialized var warning for $smtp_auth

5 years agoMerge tag 'l10n-2.6.0-rnd2+de' of git://github.com/git-l10n/git-po
Junio C Hamano [Mon, 21 Sep 2015 17:54:07 +0000 (10:54 -0700)]
Merge tag 'l10n-2.6.0-rnd2+de' of git://github.com/git-l10n/git-po

l10n-2.6.0-rnd2 plus de

* tag 'l10n-2.6.0-rnd2+de' of git://github.com/git-l10n/git-po: (25 commits)
  l10n: de.po: better language for one string
  l10n: de.po: translate 2 messages
  l10n: Update and review Vietnamese translation (2440t)
  l10n: fr.po v2.6.0 round 2 (2440t)
  l10n: zh_CN: for git v2.6.0 l10n round 2
  l10n: ca.po: update translation
  l10n: git.pot: v2.6.0 round 2 (3 improvements)
  l10n: de.po: translate 123 new messages
  l10n: fr.po v2.6.0 round 1 (2441t)
  l10n: sv.po: Update Swedish translation (2441t0f0u)
  l10n: zh_CN: for git v2.6.0 l10n round 1
  l10n: Updated Vietnamese translation (2441t)
  l10n: git.pot: v2.6.0 round 1 (123 new, 41 removed)
  l10n: zh_CN: Update Git Glossary: "commit message"
  l10n: zh_CN: Update Git Glossary: pickaxe
  l10n: zh_CN: Update Git Glossary: fork
  l10n: zh_CN: Update Git Glossary: tag
  l10n: zh_CN: Update Git Glossary: "dumb", "smart"
  l10n: zh_CN: Update Git Glossary: SHA-1
  l10n: zh_CN: Add Surrounding Spaces
  ...

5 years agosend-email: fix uninitialized var warning for $smtp_auth
Brian Norris [Fri, 18 Sep 2015 22:12:50 +0000 (15:12 -0700)]
send-email: fix uninitialized var warning for $smtp_auth

On the latest version of git-send-email, I see this error just before
running SMTP auth (I didn't provide any --smtp-auth= parameter):

  Use of uninitialized value $smtp_auth in pattern match (m//) at \
  /home/briannorris/git/git/git-send-email.perl line 1139.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Reviewed-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agol10n: de.po: better language for one string
Phillip Sz [Thu, 17 Sep 2015 15:50:32 +0000 (17:50 +0200)]
l10n: de.po: better language for one string

Just one string I think we could translate better.

Signed-off-by: Phillip Sz <phillip.szelat@gmail.com>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
5 years agol10n: de.po: translate 2 messages
Ralf Thielow [Wed, 16 Sep 2015 17:28:07 +0000 (19:28 +0200)]
l10n: de.po: translate 2 messages

Translate 2 messages came from git.pot update in e447091
(l10n: git.pot: v2.6.0 round 2 (3 improvements)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Phillip Sz <phillip.szelat@gmail.com>
5 years agol10n: Update and review Vietnamese translation (2440t)
Tran Ngoc Quan [Tue, 15 Sep 2015 00:17:53 +0000 (07:17 +0700)]
l10n: Update and review Vietnamese translation (2440t)

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
5 years agol10n: fr.po v2.6.0 round 2 (2440t)
Jean-Noel Avila [Tue, 15 Sep 2015 18:22:52 +0000 (20:22 +0200)]
l10n: fr.po v2.6.0 round 2 (2440t)

Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
5 years agol10n: zh_CN: for git v2.6.0 l10n round 2
Jiang Xin [Tue, 15 Sep 2015 13:51:26 +0000 (21:51 +0800)]
l10n: zh_CN: for git v2.6.0 l10n round 2

Update 2 translations (2440t0f0u) for git v2.6.0-rc2.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
5 years agol10n: ca.po: update translation
Alex Henrie [Tue, 15 Sep 2015 03:05:50 +0000 (21:05 -0600)]
l10n: ca.po: update translation

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
5 years agol10n: git.pot: v2.6.0 round 2 (3 improvements)
Jiang Xin [Mon, 14 Sep 2015 22:57:19 +0000 (06:57 +0800)]
l10n: git.pot: v2.6.0 round 2 (3 improvements)

Introduce three i18n improvements from the following commits:

* tag, update-ref: improve description of option "create-reflog"
* pull: don't mark values for option "rebase" for translation
* show-ref: place angle brackets around variables in usage string

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
5 years agoMerge branch 'master' of git://github.com/git-l10n/git-po
Jiang Xin [Mon, 14 Sep 2015 22:45:32 +0000 (06:45 +0800)]
Merge branch 'master' of git://github.com/git-l10n/git-po

* 'master' of git://github.com/git-l10n/git-po:
  l10n: de.po: translate 123 new messages
  l10n: fr.po v2.6.0 round 1 (2441t)
  l10n: sv.po: Update Swedish translation (2441t0f0u)
  l10n: zh_CN: for git v2.6.0 l10n round 1
  l10n: Updated Vietnamese translation (2441t)
  l10n: git.pot: v2.6.0 round 1 (123 new, 41 removed)
  l10n: zh_CN: Update Git Glossary: "commit message"
  l10n: zh_CN: Update Git Glossary: pickaxe
  l10n: zh_CN: Update Git Glossary: fork
  l10n: zh_CN: Update Git Glossary: tag
  l10n: zh_CN: Update Git Glossary: "dumb", "smart"
  l10n: zh_CN: Update Git Glossary: SHA-1
  l10n: zh_CN: Add Surrounding Spaces
  l10n: zh_CN: Add translations for Git glossary
  l10n: TEAMS: stash inactive zh_CN team members
  l10n: zh_CN: Update Translation of "tag"
  l10n: zh_CN: Unify Translation of "packfile"
  l10n: zh_CN: Update Translation: "tag object"

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
5 years agol10n: de.po: translate 123 new messages
Ralf Thielow [Tue, 8 Sep 2015 07:31:34 +0000 (09:31 +0200)]
l10n: de.po: translate 123 new messages

Translate 123 new messages came from git.pot update in df0617b
(l10n: git.pot: v2.6.0 round 1 (123 new, 41 removed)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Phillip Sz <phillip.szelat@gmail.com>
Acked-by: Matthias Rüster <matthias.ruester@gmail.com>
5 years agol10n: fr.po v2.6.0 round 1 (2441t)
Jean-Noel Avila [Wed, 9 Sep 2015 20:55:10 +0000 (22:55 +0200)]
l10n: fr.po v2.6.0 round 1 (2441t)

Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
5 years agoUpdate RelNotes to 2.6
Junio C Hamano [Thu, 17 Sep 2015 19:32:58 +0000 (12:32 -0700)]
Update RelNotes to 2.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoSync with 2.5.3
Junio C Hamano [Thu, 17 Sep 2015 19:29:49 +0000 (12:29 -0700)]
Sync with 2.5.3

* maint:
  Git 2.5.3

5 years agoMerge branch 'po/doc-branch-desc'
Junio C Hamano [Thu, 17 Sep 2015 19:29:03 +0000 (12:29 -0700)]
Merge branch 'po/doc-branch-desc'

The branch descriptions that are set with "git branch --edit-description"
option were used in many places but they weren't clearly documented.

* po/doc-branch-desc:
  doc: show usage of branch description

5 years agoMerge branch 'et/win32-poll-timeout'
Junio C Hamano [Thu, 17 Sep 2015 19:29:02 +0000 (12:29 -0700)]
Merge branch 'et/win32-poll-timeout'

* et/win32-poll-timeout:
  poll: honor the timeout on Win32

5 years agoMerge branch 'as/config-doc-markup-fix'
Junio C Hamano [Thu, 17 Sep 2015 19:29:01 +0000 (12:29 -0700)]
Merge branch 'as/config-doc-markup-fix'

* as/config-doc-markup-fix:
  Documentation/config: fix formatting for branch.*.rebase and pull.rebase

5 years agoGit 2.5.3 v2.5.3
Junio C Hamano [Thu, 17 Sep 2015 19:16:10 +0000 (12:16 -0700)]
Git 2.5.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge branch 'dt/untracked-subdir' into maint
Junio C Hamano [Thu, 17 Sep 2015 19:12:29 +0000 (12:12 -0700)]
Merge branch 'dt/untracked-subdir' into maint

The experimental untracked-cache feature were buggy when paths with
a few levels of subdirectories are involved.

* dt/untracked-subdir:
  untracked cache: fix entry invalidation
  untracked-cache: fix subdirectory handling
  t7063: use --force-untracked-cache to speed up a bit
  untracked-cache: support sparse checkout

5 years agoMerge branch 'br/svn-doc-include-paths-config' into maint
Junio C Hamano [Thu, 17 Sep 2015 19:11:46 +0000 (12:11 -0700)]
Merge branch 'br/svn-doc-include-paths-config' into maint

* br/svn-doc-include-paths-config:
  git-svn doc: mention "svn-remote.<name>.include-paths"

5 years agoMerge branch 'ah/submodule-typofix-in-error' into maint
Junio C Hamano [Thu, 17 Sep 2015 19:11:06 +0000 (12:11 -0700)]
Merge branch 'ah/submodule-typofix-in-error' into maint

Error string fix.

* ah/submodule-typofix-in-error:
  git-submodule: remove extraneous space from error message

5 years agoMerge branch 'js/maint-am-skip-performance-regression' into maint
Junio C Hamano [Thu, 17 Sep 2015 19:03:02 +0000 (12:03 -0700)]
Merge branch 'js/maint-am-skip-performance-regression' into maint

* js/maint-am-skip-performance-regression:
  am --skip/--abort: merge HEAD/ORIG_HEAD tree into index

5 years agotag.c: implement '--merged' and '--no-merged' options
Karthik Nayak [Thu, 10 Sep 2015 16:22:49 +0000 (21:52 +0530)]
tag.c: implement '--merged' and '--no-merged' options

Use 'ref-filter' APIs to implement the '--merged' and '--no-merged'
options into 'tag.c'. The '--merged' option lets the user to only list
tags merged into the named commit. The '--no-merged' option lets the
user to only list tags not merged into the named commit.  If no object
is provided it assumes HEAD as the object.

Add documentation and tests for the same.

Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotag.c: implement '--format' option
Karthik Nayak [Fri, 11 Sep 2015 15:06:46 +0000 (20:36 +0530)]
tag.c: implement '--format' option

Implement the '--format' option provided by 'ref-filter'.
This lets the user list tags as per desired format similar
to the implementation in 'git for-each-ref'.

Add tests and documentation for the same.

Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotag.c: use 'ref-filter' APIs
Karthik Nayak [Fri, 11 Sep 2015 15:06:16 +0000 (20:36 +0530)]
tag.c: use 'ref-filter' APIs

Make 'tag.c' use 'ref-filter' APIs for iterating through refs, sorting
and printing of refs. This removes most of the code used in 'tag.c'
replacing it with calls to the 'ref-filter' library.

Make 'tag.c' use the 'filter_refs()' function provided by 'ref-filter'
to filter out tags based on the options set.

For printing tags we use 'show_ref_array_item()' function provided by
'ref-filter'.

We improve the sorting option provided by 'tag.c' by using the sorting
options provided by 'ref-filter'. This causes the test 'invalid sort
parameter on command line' in t7004 to fail, as 'ref-filter' throws an
error for all sorting fields which are incorrect. The test is changed
to reflect the same.

Modify documentation for the same.

Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotag.c: use 'ref-filter' data structures
Karthik Nayak [Thu, 10 Sep 2015 15:48:27 +0000 (21:18 +0530)]
tag.c: use 'ref-filter' data structures

Make 'tag.c' use 'ref-filter' data structures and make changes to
support the new data structures. This is a part of the process
of porting 'tag.c' to use 'ref-filter' APIs.

This is a temporary step before porting 'tag.c' to use 'ref-filter'
completely. As this is a temporary step, most of the code
introduced here will be removed when 'tag.c' is ported over to use
'ref-filter' APIs.

Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoref-filter: add option to match literal pattern
Karthik Nayak [Thu, 10 Sep 2015 15:48:26 +0000 (21:18 +0530)]
ref-filter: add option to match literal pattern

Since 'ref-filter' only has an option to match path names add an
option for plain fnmatch pattern-matching.

This is to support the pattern matching options which are used in `git
tag -l` and `git branch -l` where we can match patterns like `git tag
-l foo*` which would match all tags which has a "foo*" pattern.

Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoref-filter: add support to sort by version
Karthik Nayak [Thu, 10 Sep 2015 15:48:25 +0000 (21:18 +0530)]
ref-filter: add support to sort by version

Add support to sort by version using the "v:refname" and
"version:refname" option. This is achieved by using the 'versioncmp()'
function as the comparing function for qsort.

This option is included to support sorting by versions in `git tag -l`
which will eventually be ported to use ref-filter APIs.

Add documentation and tests for the same.

Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoref-filter: add support for %(contents:lines=X)
Karthik Nayak [Fri, 11 Sep 2015 15:04:16 +0000 (20:34 +0530)]
ref-filter: add support for %(contents:lines=X)

In 'tag.c' we can print N lines from the annotation of the tag using
the '-n<num>' option. Copy code from 'tag.c' to 'ref-filter' and
modify it to support appending of N lines from the annotation of tags
to the given strbuf.

Implement %(contents:lines=X) where X lines of the given object are
obtained.

While we're at it, remove unused "contents:<suboption>" atoms from
the `valid_atom` array.

Add documentation and test for the same.

Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoref-filter: add option to filter out tags, branches and remotes
Karthik Nayak [Thu, 10 Sep 2015 15:48:23 +0000 (21:18 +0530)]
ref-filter: add option to filter out tags, branches and remotes

Add a function called 'for_each_fullref_in()' to refs.{c,h} which
iterates through each ref for the given path without trimming the path
and also accounting for broken refs, if mentioned.

Add 'filter_ref_kind()' in ref-filter.c to check the kind of ref being
handled and return the kind to 'ref_filter_handler()', where we
discard refs which we do not need and assign the kind to needed refs.

Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoref-filter: implement an `align` atom
Karthik Nayak [Fri, 11 Sep 2015 15:03:07 +0000 (20:33 +0530)]
ref-filter: implement an `align` atom

Implement an `align` atom which left-, middle-, or right-aligns the
content between %(align:...) and %(end).

The "align:" is followed by `<width>` and `<position>` in any order
separated by a comma, where the `<position>` is either left, right or
middle, default being left and `<width>` is the total length of the
content with alignment. If the contents length is more than the width
then no alignment is performed.  e.g. to align a refname atom to the
middle with a total width of 40 we can do:
--format="%(align:middle,40)%(refname)%(end)".

We introduce an `at_end` function for each element of the stack which
is to be called when the `end` atom is encountered. Using this we
implement end_align_handler() for the `align` atom, this aligns the
final strbuf by calling `strbuf_utf8_align()` from utf8.c.

Ensure that quote formatting is performed on the whole of
%(align:...)...%(end) rather than individual atoms inside. We skip
quote formatting for individual atoms when the current stack element
is handling an %(align:...) atom and perform quote formatting at the
end when we encounter the %(end) atom of the second element of then
stack.

Add documentation and tests for the same.

Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoref-filter: introduce match_atom_name()
Karthik Nayak [Fri, 11 Sep 2015 14:59:47 +0000 (20:29 +0530)]
ref-filter: introduce match_atom_name()

Introduce match_atom_name() which helps in checking if a particular
atom is the atom we're looking for and if it has a value attached to
it or not.

Use it instead of starts_with() for checking the value of %(color:...)
atom. Write a test for the same.

Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Thanks-to: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoref-filter: introduce handler function for each atom
Karthik Nayak [Thu, 10 Sep 2015 15:48:20 +0000 (21:18 +0530)]
ref-filter: introduce handler function for each atom

Introduce a handler function for each atom, which is called when the
atom is processed in show_ref_array_item().

In this context make append_atom() as the default handler function and
extract quote_formatting() out of append_atom(). Bump this to the top.

Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoutf8: add function to align a string into given strbuf
Karthik Nayak [Thu, 10 Sep 2015 15:48:19 +0000 (21:18 +0530)]
utf8: add function to align a string into given strbuf

Add strbuf_utf8_align() which will align a given string into a strbuf
as per given align_type and width. If the width is greater than the
string length then no alignment is performed.

Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoref-filter: introduce ref_formatting_state and ref_formatting_stack
Karthik Nayak [Thu, 10 Sep 2015 15:48:18 +0000 (21:18 +0530)]
ref-filter: introduce ref_formatting_state and ref_formatting_stack

Introduce ref_formatting_state which will hold the formatted output
strbuf instead of directly printing to stdout. This will help us in
creating modifier atoms which modify the format specified before
printing to stdout.

Implement a stack machinery for ref_formatting_state, this allows us
to push and pop elements onto the stack. Whenever we pop an element
from the stack, the strbuf from that element is appended to the strbuf
of the next element on the stack, this will allow us to support
nesting of modifier atoms.

Rename some functions to reflect the changes made:
print_value() -> append_atom()
emit()        -> append_literal()

Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoref-filter: move `struct atom_value` to ref-filter.c
Karthik Nayak [Sat, 22 Aug 2015 03:39:37 +0000 (09:09 +0530)]
ref-filter: move `struct atom_value` to ref-filter.c

Since atom_value is only required for the internal working of
ref-filter it doesn't belong in the public header.

Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agostrtoul_ui: reject negative values
Matthieu Moy [Thu, 17 Sep 2015 16:28:33 +0000 (18:28 +0200)]
strtoul_ui: reject negative values

strtoul_ui uses strtoul to get a long unsigned, then checks that casting
to unsigned does not lose information and return the casted value.

On 64 bits architecture, checking that the cast does not change the value
catches most errors, but when sizeof(int) == sizeof(long) (e.g. i386),
the check does nothing. Unfortunately, strtoul silently accepts negative
values, and as a result strtoul_ui("-1", ...) raised no error.

This patch catches negative values before it's too late, i.e. before
calling strtoul.

Reported-by: Max Kirillov <max@max630.net>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agomailmap: update my entry with new email address
Ramsay Jones [Tue, 1 Sep 2015 15:50:06 +0000 (16:50 +0100)]
mailmap: update my entry with new email address

My 'demon' email address is no longer functional since, after 16+
years with demon, I have had to change my ISP. :(

Also, take the opportunity to remove my middle name, which I only
use on official documents (or in the GECOS field when creating a
user account on unix).

Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoUpdate RelNotes to 2.6 to describe leftover bits since -rc2
Junio C Hamano [Mon, 14 Sep 2015 22:00:41 +0000 (15:00 -0700)]
Update RelNotes to 2.6 to describe leftover bits since -rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge branch 'js/maint-am-skip-performance-regression'
Junio C Hamano [Mon, 14 Sep 2015 21:59:07 +0000 (14:59 -0700)]
Merge branch 'js/maint-am-skip-performance-regression'

Recent versions of scripted "git am" has a performance regression in
"git am --skip" codepath, which no longer exists in the built-in
version on the 'master' front.  Fix the regression in the last
scripted version that appear in 2.5.x maintenance track and older.

* js/maint-am-skip-performance-regression:
  am --skip/--abort: merge HEAD/ORIG_HEAD tree into index

5 years agoMerge branch 'ah/show-ref-usage-string'
Junio C Hamano [Mon, 14 Sep 2015 21:59:06 +0000 (14:59 -0700)]
Merge branch 'ah/show-ref-usage-string'

Both "git show-ref -h" and "git show-ref --help" illustrated that the
"--exclude-existing" option makes the command read list of refs
from its standard input.  Change only the "show-ref -h" output to
have a pair of "<>" around the placeholder that designate an input
file, i.e. "git show-ref --exclude-existing < <ref-list>".

* ah/show-ref-usage-string:
  show-ref: place angle brackets around variables in usage string

5 years agoMerge branch 'sg/help-group'
Junio C Hamano [Mon, 14 Sep 2015 21:59:05 +0000 (14:59 -0700)]
Merge branch 'sg/help-group'

* sg/help-group:
  Makefile: use SHELL_PATH when running generate-cmdlist.sh

5 years agoMerge branch 'rt/help-strings-fix'
Junio C Hamano [Mon, 14 Sep 2015 21:59:04 +0000 (14:59 -0700)]
Merge branch 'rt/help-strings-fix'

* rt/help-strings-fix:
  tag, update-ref: improve description of option "create-reflog"
  pull: don't mark values for option "rebase" for translation

5 years agoGit 2.6-rc2 v2.6.0-rc2
Junio C Hamano [Mon, 14 Sep 2015 20:17:56 +0000 (13:17 -0700)]
Git 2.6-rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agopoll: honor the timeout on Win32
Edward Thomson [Sat, 12 Sep 2015 17:50:26 +0000 (17:50 +0000)]
poll: honor the timeout on Win32

Ensure that when passing a pipe, the gnulib poll replacement will not
return 0 before the timeout has passed.

Not obeying the timeout (and merely returning 0) causes pathological
behavior when preparing a packfile for a repository and taking a
long time to do so.  If poll were to return 0 immediately, this would
cause keep-alives to get sent as quickly as possible until the packfile
was created.  Such deviance from the standard would cause megabytes (or
more) of keep-alive packets to be sent.

GetTickCount is used as it is efficient, stable and monotonically
increasing.  (Neither GetSystemTime nor QueryPerformanceCounter have
all three of these properties.)

Signed-off-by: Edward Thomson <ethomson@microsoft.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agodoc: show usage of branch description
Philip Oakley [Mon, 14 Sep 2015 14:10:53 +0000 (15:10 +0100)]
doc: show usage of branch description

The branch description will be included in 'git format-patch
--cover-letter' and in 'git pull-request' emails. It can also
be used in the automatic merge message. Tell the reader.

While here, clarify that the description may be a multi-line
explanation of the purpose of the branch's patch series.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge git://ozlabs.org/~paulus/gitk
Junio C Hamano [Mon, 14 Sep 2015 18:50:21 +0000 (11:50 -0700)]
Merge git://ozlabs.org/~paulus/gitk

* git://ozlabs.org/~paulus/gitk:
  gitk: Accelerators for the main menu
  gitk: Adjust the menu line numbers to compensate for the new entry
  gitk: Add a "Copy commit summary" command
  gitk: Update Bulgarian translation (307t)
  gitk: Update .po files
  gitk: Update Bulgarian translation (304t)
  gitk: Use translated version of "Command line" in getcommitlines
  gitk: Make it easier to go quickly to a specific commit
  gitk: Show the current view's name in the window title
  gitk: Add mouse right-click options to copy path and branch name
  gitk: Remove mc parameter from proc show_error
  gitk: Fix error when changing colors after closing "List references" window
  gitk: Replace catch {unset foo} with unset -nocomplain foo
  gitk: Rearrange window title to be more conventional
  gitk: sv.po: Update Swedish translation (305t0f0u)
  gitk: Fix bad English grammar "Matches none Commit Info"

5 years agoMerge branch 'jk/pack-protocol-doc'
Junio C Hamano [Mon, 14 Sep 2015 18:46:59 +0000 (11:46 -0700)]
Merge branch 'jk/pack-protocol-doc'

Streamline documentation of the pkt-line protocol.

* jk/pack-protocol-doc:
  pack-protocol: clarify LF-handling in PKT-LINE()

5 years agoMerge branch 'mp/t7060-diff-index-test'
Junio C Hamano [Mon, 14 Sep 2015 18:46:28 +0000 (11:46 -0700)]
Merge branch 'mp/t7060-diff-index-test'

Fix an old test that was doing the same thing as another one.

* mp/t7060-diff-index-test:
  t7060: actually test "git diff-index --cached -M"

5 years agoMerge branch 'gb/apply-comment-typofix'
Junio C Hamano [Mon, 14 Sep 2015 18:44:43 +0000 (11:44 -0700)]
Merge branch 'gb/apply-comment-typofix'

* gb/apply-comment-typofix:
  apply: comment grammar fix

5 years agogitk: Accelerators for the main menu
Giuseppe Bilotta [Wed, 9 Sep 2015 13:20:53 +0000 (15:20 +0200)]
gitk: Accelerators for the main menu

This allows fast, keyboard-only usage of the menu (e.g. Alt+V, N to open a
new view).

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
5 years agogitk: Adjust the menu line numbers to compensate for the new entry
Beat Bolli [Mon, 7 Sep 2015 23:16:37 +0000 (01:16 +0200)]
gitk: Adjust the menu line numbers to compensate for the new entry

Commit d835dbb9 ("gitk: Add a "Copy commit summary" command",
2015-08-13) in the upstream gitk repo added a new context menu entry.
Therefore, the line numbers of the entries below the new one need to be
adjusted when their text or state is changed.

Signed-off-by: Beat Bolli <dev+git@drbeat.li>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
5 years agoDocumentation/config: fix formatting for branch.*.rebase and pull.rebase
Andreas Schwab [Sat, 12 Sep 2015 14:26:53 +0000 (16:26 +0200)]
Documentation/config: fix formatting for branch.*.rebase and pull.rebase

Don't format the second paragraph as a literal block.

Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotag, update-ref: improve description of option "create-reflog"
Ralf Thielow [Fri, 11 Sep 2015 16:04:13 +0000 (18:04 +0200)]
tag, update-ref: improve description of option "create-reflog"

The description of option "create-reflog" is "create_reflog", which
is neither a good description, nor a sensible string to translate.
Change it to a more meaningful message.

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agopull: don't mark values for option "rebase" for translation
Ralf Thielow [Fri, 11 Sep 2015 15:53:17 +0000 (17:53 +0200)]
pull: don't mark values for option "rebase" for translation

"false|true|preserve" are actual values for option "rebase"
of the "git-pull" command and should therefore not be marked
for translation.

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMakefile: use SHELL_PATH when running generate-cmdlist.sh
Alejandro R. Sedeño [Thu, 10 Sep 2015 23:37:07 +0000 (19:37 -0400)]
Makefile: use SHELL_PATH when running generate-cmdlist.sh

Non-POSIX shells, such as /bin/sh on SunOS, do not support $((...))
arithmetic expansion or $(...) command substitution needed by
generate-cmdlist.sh.  Make sure that we use a POSIX compliant shell
$(SHELL_PATH) when running generate-cmdlist.sh.

Signed-off-by: Alejandro R. Sedeño <asedeno@mit.edu>
Acked-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge git://bogomips.org/git-svn
Junio C Hamano [Thu, 10 Sep 2015 21:06:58 +0000 (14:06 -0700)]
Merge git://bogomips.org/git-svn

* git://bogomips.org/git-svn:
  git-svn: parse authors file more leniently

5 years agogit-svn: parse authors file more leniently
Michael J Gruber [Thu, 10 Sep 2015 12:32:13 +0000 (14:32 +0200)]
git-svn: parse authors file more leniently

Currently, git-svn parses an authors file using the perl regex

/^(.+?|\(no author\))\s*=\s*(.+?)\s*<(.+)>\s*$/

in order to extract svn user name, real name and e-mail.
This does not match an empty e-mail field like "<>". On the other hand,
the output of an authors-prog is parsed with the perl regex

/^\s*(.+?)\s*<(.*)>\s*$/

in order to extract real name and e-mail.

So, specifying a trivial file grep such as

grep "$1" /tmp/authors | head -n 1 | cut -d'=' -f2 | cut -c'2-'

as the authors prog gives different results compared to specifying
/tmp/authors as the authors file directly.

Instead, make git svn uses the perl regex

/^(.+?|\(no author\))\s*=\s*(.+?)\s*<(.*)>\s*$/

for parsing the authors file so that the same (slightly more lenient)
regex is used in both cases.

Reported-by: Till Schäfer <till2.schaefer@tu-dortmund.de>
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
5 years agoMerge branch 'master' of github.com:jiangxin/git
Jiang Xin [Thu, 10 Sep 2015 15:14:16 +0000 (23:14 +0800)]
Merge branch 'master' of github.com:jiangxin/git

* 'master' of github.com:jiangxin/git:
  l10n: zh_CN: for git v2.6.0 l10n round 1
  l10n: zh_CN: Update Git Glossary: "commit message"
  l10n: zh_CN: Update Git Glossary: pickaxe
  l10n: zh_CN: Update Git Glossary: fork
  l10n: zh_CN: Update Git Glossary: tag
  l10n: zh_CN: Update Git Glossary: "dumb", "smart"
  l10n: zh_CN: Update Git Glossary: SHA-1
  l10n: zh_CN: Add Surrounding Spaces
  l10n: zh_CN: Add translations for Git glossary
  l10n: TEAMS: stash inactive zh_CN team members
  l10n: zh_CN: Update Translation of "tag"
  l10n: zh_CN: Unify Translation of "packfile"
  l10n: zh_CN: Update Translation: "tag object"

5 years agoSync with 2.5.2
Junio C Hamano [Wed, 9 Sep 2015 21:30:35 +0000 (14:30 -0700)]
Sync with 2.5.2

5 years agoam --skip/--abort: merge HEAD/ORIG_HEAD tree into index
Johannes Schindelin [Wed, 9 Sep 2015 09:10:07 +0000 (09:10 +0000)]
am --skip/--abort: merge HEAD/ORIG_HEAD tree into index

f8da6801 (am --skip: support skipping while on unborn branch,
2015-06-06) introduced a performance regression to "git am --skip",
where it used "read-tree" to reconstruct the index from scratch
without reusing the cached stat information.

This is a backport of the corresponding patch to the builtin am in 2.6:
3ecc704 (am --skip/--abort: merge HEAD/ORIG_HEAD tree into index,
2015-08-19).

Reportedly, it can make a huge difference on Windows, in one case a `git
rebase --skip` took 1m40s without, and 5s with, this patch.

cf. https://github.com/git-for-windows/git/issues/365

Reported-and-suggested-by: Kim Gybels <kgybels@infogroep.be>
Acked-by: Paul Tan <pyokagan@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agol10n: sv.po: Update Swedish translation (2441t0f0u)
Peter Krefting [Wed, 9 Sep 2015 20:46:35 +0000 (21:46 +0100)]
l10n: sv.po: Update Swedish translation (2441t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
5 years agoRelease Notes: typofix
Junio C Hamano [Wed, 9 Sep 2015 17:34:35 +0000 (10:34 -0700)]
Release Notes: typofix

Thanks to Andreas Schwab for careful reading.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoapply: comment grammar fix
Giuseppe Bilotta [Wed, 9 Sep 2015 13:33:18 +0000 (15:33 +0200)]
apply: comment grammar fix

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agosubmodule: rewrite `module_clone` shell function in C
Stefan Beller [Tue, 8 Sep 2015 18:57:45 +0000 (11:57 -0700)]
submodule: rewrite `module_clone` shell function in C

This reimplements the helper function `module_clone` in shell
in C as `clone`. This functionality is needed for converting
`git submodule update` later on, which we want to add threading
to.

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoGit 2.6-rc1 v2.6.0-rc1
Junio C Hamano [Tue, 8 Sep 2015 22:38:43 +0000 (15:38 -0700)]
Git 2.6-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge branch 'jc/builtin-am-signoff-regression-fix'
Junio C Hamano [Tue, 8 Sep 2015 22:34:57 +0000 (15:34 -0700)]
Merge branch 'jc/builtin-am-signoff-regression-fix'

Recent "git am" had regression when adding a Signed-off-by line
with its "-s" option by an unintended tightening of how an existing
trailer block is detected.

* jc/builtin-am-signoff-regression-fix:
  am: match --signoff to the original scripted version

5 years agogit_connect: clarify conn->use_shell flag
Jeff King [Tue, 8 Sep 2015 08:33:14 +0000 (04:33 -0400)]
git_connect: clarify conn->use_shell flag

When executing user-specified programs, we generally always
want to use a shell, for flexibility and consistency. One
big exception is executing $GIT_SSH, which for historical
reasons must not use a shell.

Once upon a time the logic in git_connect looked like:

  if (protocol == PROTO_SSH) {
  ... setup ssh ...
  } else {
  ... setup local connection ...
  conn->use_shell = 1;
  }

But over time the PROTO_SSH block has grown, and the "local"
block has shrunk so that it contains only conn->use_shell;
it's easy to miss at the end of the large block.  Moreover,
PROTO_SSH now also sometimes sets use_shell, when the new
GIT_SSH_COMMAND is used.

Let's just set conn->use_shell when we're setting up the "conn"
struct, and unset it (with a comment) in the historical GIT_SSH
case.  This will make the flow easier to follow.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agointerpret-trailers: allow running outside a repository
John Keeping [Sat, 5 Sep 2015 13:39:24 +0000 (14:39 +0100)]
interpret-trailers: allow running outside a repository

It may be useful to run git-interpret-trailers without needing to be in
a repository.

Signed-off-by: John Keeping <john@keeping.me.uk>
Acked-by: Christian Couder <christian.couder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agocontrib/subtree: respect spaces in a repository path
Alexey Shumkin [Fri, 4 Sep 2015 22:24:11 +0000 (01:24 +0300)]
contrib/subtree: respect spaces in a repository path

Remote repository may have spaces in its path, so take it into account.

Also, as far as there are no tests for the `push` command, add them.

Signed-off-by: Alexey Shumkin <Alex.Crezoff@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agot7900-subtree: test the "space in a subdirectory name" case
Alexey Shumkin [Fri, 4 Sep 2015 22:24:10 +0000 (01:24 +0300)]
t7900-subtree: test the "space in a subdirectory name" case

In common case there can be spaces in a subdirectory name. Change tests
accorgingly to this statement.

Also, as far as a call to the `rejoin_msg` function (in `cmd_split`)
does not take into account such a case this patch fixes commit message
when `--rejoin` option is set .

Besides, as `fixnl` and `multiline` functions did not take into account
the "new" tested "space in a subdirectory name" case they become unused
and redundant, so they are removed.

Signed-off-by: Alexey Shumkin <Alex.Crezoff@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotest-lib-functions: detect test_when_finished in subshell
John Keeping [Sat, 5 Sep 2015 13:12:49 +0000 (14:12 +0100)]
test-lib-functions: detect test_when_finished in subshell

test_when_finished does nothing in a subshell because the change to
test_cleanup does not affect the parent.

There is no POSIX way to detect that we are in a subshell ($$ and $PPID
are specified to remain unchanged), but we can detect it on Bash and
fall back to ignoring the bug on other shells.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agot7800: don't use test_config in a subshell
John Keeping [Sat, 5 Sep 2015 13:12:48 +0000 (14:12 +0100)]
t7800: don't use test_config in a subshell

Use the new "-C" option to test_config to change the configuration in
the submodule from the top level of the test so that it can be unset
correctly when the test finishes.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotest-lib-functions: support "test_config -C <dir> ..."
John Keeping [Sat, 5 Sep 2015 13:12:47 +0000 (14:12 +0100)]
test-lib-functions: support "test_config -C <dir> ..."

If used in a subshell, test_config cannot unset variables at the end of
a test.  This is a problem when testing submodules because we do not
want to "cd" at to top level of a test script in order to run the
command inside the submodule.

Add a "-C" option to test_config (and test_unconfig) so that test_config
can be kept outside subshells and still affect subrepositories.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agot5801: don't use test_when_finished in a subshell
John Keeping [Sat, 5 Sep 2015 13:12:46 +0000 (14:12 +0100)]
t5801: don't use test_when_finished in a subshell

test_when_finished has no effect in a subshell.  Since the cmp_marks
function is only used once, inline it at its call site and move the
test_when_finished invocation to the start of the test.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agot7610: don't use test_config in a subshell
John Keeping [Sat, 5 Sep 2015 13:12:45 +0000 (14:12 +0100)]
t7610: don't use test_config in a subshell

test_config uses test_when_finished to reset the configuration after the
test, but this does not work inside a subshell.  This does not cause a
problem here because the first thing the next test does is to set this
config variable itself, but we are about to add a check that will
complain when test_when_finished is used in a subshell.

In this case, "subdir" not a submodule so test_config has the same
effect when run at the top level and can simply be moved out of the
subshell.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agol10n: zh_CN: for git v2.6.0 l10n round 1
Jiang Xin [Sun, 23 Aug 2015 07:23:21 +0000 (15:23 +0800)]
l10n: zh_CN: for git v2.6.0 l10n round 1

Update 123 translations (2441t0f0u) for git v2.6.0-rc0.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Reviewed-by: Ray Chen <oldsharp@gmail.com>
5 years agoam: match --signoff to the original scripted version
Junio C Hamano [Sun, 6 Sep 2015 02:56:20 +0000 (19:56 -0700)]
am: match --signoff to the original scripted version

Linus noticed that the recently reimplemented "git am -s" defines
the trailer block too rigidly, resulting in an unnecessary blank
line between the existing sign-offs and his new sign-off.  An e-mail
submission sent to Linus in real life ends with mixture of sign-offs
and commentaries, e.g.

title here

message here

Signed-off-by: Original Author <original@auth.or>
[rv: tweaked frotz and nitfol]
Signed-off-by: Re Viewer <rv@ew.er>
Signed-off-by: Other Reviewer <other@rev.ewer>
---
patch here

Because the reimplementation reused append_signoff() helper that is
used by other codepaths, which is unaware that people intermix such
comments with their sign-offs in the trailer block, such a message
was judged to end with a non-trailer, resulting in an extra blank
line before adding a new sign-off.

The original scripted version of "git am" used a lot looser
definition, i.e. "if and only if there is no line that begins with
Signed-off-by:, add a blank line before adding a new sign-off".  For
the upcoming release, stop using the append_signoff() in "git am"
and reimplement the looser definition used by the scripted version
to use only in "git am" to fix this regression in "am" while
avoiding new regressions to other users of append_signoff().

In the longer term, we should look into loosening append_signoff()
so that other codepaths that add a new sign-off behave the same way
as "git am -s", but that is a task for post-release.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agol10n: Updated Vietnamese translation (2441t)
Tran Ngoc Quan [Mon, 7 Sep 2015 01:54:05 +0000 (08:54 +0700)]
l10n: Updated Vietnamese translation (2441t)

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
5 years agoMerge branch 'master' of github.com:jiangxin/git into master
Jiang Xin [Sat, 5 Sep 2015 01:23:31 +0000 (09:23 +0800)]
Merge branch 'master' of github.com:jiangxin/git into master

* 'master' of github.com:jiangxin/git:
  l10n: zh_CN: Update Git Glossary: "commit message"
  l10n: zh_CN: Update Git Glossary: pickaxe
  l10n: zh_CN: Update Git Glossary: fork
  l10n: zh_CN: Update Git Glossary: tag
  l10n: zh_CN: Update Git Glossary: "dumb", "smart"
  l10n: zh_CN: Update Git Glossary: SHA-1
  l10n: zh_CN: Add Surrounding Spaces
  l10n: zh_CN: Add translations for Git glossary
  l10n: TEAMS: stash inactive zh_CN team members
  l10n: zh_CN: Update Translation of "tag"
  l10n: zh_CN: Unify Translation of "packfile"
  l10n: zh_CN: Update Translation: "tag object"

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
5 years agol10n: git.pot: v2.6.0 round 1 (123 new, 41 removed)
Jiang Xin [Sat, 5 Sep 2015 01:21:10 +0000 (09:21 +0800)]
l10n: git.pot: v2.6.0 round 1 (123 new, 41 removed)

Generate po/git.pot from v2.6.0-rc0-24-gec371ff for git v2.6.0 l10n
round 1.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>