git.git
10 years agoDocumentation/git-worktree: associate options with commands
Eric Sunshine [Mon, 6 Jul 2015 17:30:39 +0000 (13:30 -0400)]
Documentation/git-worktree: associate options with commands

git-worktree options affect some worktree commands but not others, but
this is not necessarily obvious from the option descriptions. Make this
clear by indicating explicitly which commands are affected by which
options.

Signed-off-by: Eric Sunshine <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agoDocumentation/git-checkout: fix incorrect worktree prune command
Eric Sunshine [Mon, 6 Jul 2015 17:30:38 +0000 (13:30 -0400)]
Documentation/git-checkout: fix incorrect worktree prune command

This was missed when "git prune --worktrees" became "git worktree prune".

Signed-off-by: Eric Sunshine <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agoDocumentation/branch: document -M and -D in terms of --force
Matthieu Moy [Thu, 2 Jul 2015 14:07:21 +0000 (16:07 +0200)]
Documentation/branch: document -M and -D in terms of --force

Now that we have proper documentation for --force's interaction with -d
and -m, we can avoid duplication and consider -M and -D as convenience
aliases for -m --force and -d --force.

Signed-off-by: Matthieu Moy <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agoDocumentation/branch: document -d --force and -m --force
Matthieu Moy [Thu, 2 Jul 2015 14:07:20 +0000 (16:07 +0200)]
Documentation/branch: document -d --force and -m --force

The --force option was modified in 356e91f (branch: allow -f with -m and
-d, 2014-12-08), but the documentation was not updated.

Signed-off-by: Matthieu Moy <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agogit-multimail: update to release 1.1.1
Matthieu Moy [Sun, 5 Jul 2015 11:10:17 +0000 (13:10 +0200)]
git-multimail: update to release 1.1.1

The only change is a bugfix: the SMTP mailer was not working with
Python 2.4.

Signed-off-by: Matthieu Moy <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agol10n: zh_CN: for git v2.5.0 l10n round 1
Jiang Xin [Sun, 31 May 2015 00:42:31 +0000 (08:42 +0800)]
l10n: zh_CN: for git v2.5.0 l10n round 1

Update 65 translations (2355t0f0u) for git v2.5.0-rc0.

Signed-off-by: Jiang Xin <redacted>
10 years agoindex-pack: fix allocation of sorted_by_pos array
Junio C Hamano [Fri, 3 Jul 2015 16:51:57 +0000 (09:51 -0700)]
index-pack: fix allocation of sorted_by_pos array

When c6458e60 (index-pack: kill union delta_base to save memory,
2015-04-18) attempted to reduce the memory footprint of index-pack,
one of the key thing it did was to keep track of ref-deltas and
ofs-deltas separately.

In fix_unresolved_deltas(), however it forgot that it now wants to
look only at ref deltas in one place.  The code allocated an array
for nr_unresolved, which is sum of number of ref- and ofs-deltas
minus nr_resolved, which may be larger or smaller than the number
ref-deltas.  Depending on nr_resolved, this was either under or over
allocating.

Also, the old code before this change had to use 'i' and 'n' because
some of the things we see in the (old) deltas[] array we scanned
with 'i' would not make it into the sorted_by_pos[] array in the old
world order, but now because you have only ref delta in a separate
ref_deltas[] array, they increment lock&step.  We no longer need
separate variables.  And most importantly, we shouldn't pass the
nr_unresolved parameter, as this number does not play a role in the
working of this helper function.

Helped-by: Nguyễn Thái Ngọc Duy <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agostrbuf: strbuf_read_file() should return ssize_t
Michael Haggerty [Fri, 3 Jul 2015 13:59:32 +0000 (15:59 +0200)]
strbuf: strbuf_read_file() should return ssize_t

It is currently declared to return int, which could overflow for
large files.

Signed-off-by: Michael Haggerty <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agopager: do not leak "GIT_PAGER_IN_USE" to the pager
Junio C Hamano [Fri, 3 Jul 2015 17:18:45 +0000 (10:18 -0700)]
pager: do not leak "GIT_PAGER_IN_USE" to the pager

Since 2e6c012e (setup_pager: set GIT_PAGER_IN_USE, 2011-08-17), we
export GIT_PAGER_IN_USE so that a process that becomes the upstream
of the spawned pager can still tell that we have spawned the pager
and decide to do colored output even when its output no longer goes
to a terminal (i.e. isatty(1)).

But we forgot to clear it from the enviornment of the spawned pager.

This is not a problem in a sane world, but if you have a handful of
thousands Git users in your organization, somebody is bound to do
strange things, e.g. typing "!<ENTER>" instead of 'q' to get control
back from $LESS.  GIT_PAGER_IN_USE is still set in that subshell
spawned by "less", and all sorts of interesting things starts
happening, e.g. "git diff | cat" starts coloring its output.

We can clear the environment variable in the half of the fork that
runs the pager to avoid the confusion.

Signed-off-by: Junio C Hamano <redacted>
Acked-by: Jeff King <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agol10n: ca.po: update translation
Alex Henrie [Thu, 2 Jul 2015 04:22:02 +0000 (22:22 -0600)]
l10n: ca.po: update translation

Signed-off-by: Alex Henrie <redacted>
10 years agoMerge branch 'fr_2.5.0_round1' of git://github.com/jnavila/git
Jiang Xin [Wed, 1 Jul 2015 23:01:51 +0000 (07:01 +0800)]
Merge branch 'fr_2.5.0_round1' of git://github.com/jnavila/git

* 'fr_2.5.0_round1' of git://github.com/jnavila/git:
  l10n: fr.po v2.5.0-rc0 (2355t)

10 years agoDocumentation/i18n.txt: clarify character encoding support
Karsten Blees [Wed, 1 Jul 2015 19:10:47 +0000 (21:10 +0200)]
Documentation/i18n.txt: clarify character encoding support

As a "distributed" VCS, git should better define the encodings of its core
textual data structures, in particular those that are part of the network
protocol.

That git is encoding agnostic is only really true for blob objects. E.g.
the 'non-NUL bytes' requirement of tree and commit objects excludes
UTF-16/32, and the special meaning of '/' in the index file as well as
space and linefeed in commit objects eliminates EBCDIC and other non-ASCII
encodings.

Git expects bytes < 0x80 to be pure ASCII, thus CJK encodings that partly
overlap with the ASCII range are problematic as well. E.g. fmt_ident()
removes trailing 0x5C from user names on the assumption that it is ASCII
'\'. However, there are over 200 GBK double byte codes that end in 0x5C.

UTF-8 as default encoding on Linux and respective path translations in the
Mac and Windows versions have established UTF-8 NFC as de-facto standard
for path names.

Update the documentation in i18n.txt to reflect the current status-quo.

Signed-off-by: Karsten Blees <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agoMakefile / racy-git.txt: clarify USE_NSEC prerequisites
Karsten Blees [Wed, 1 Jul 2015 19:10:52 +0000 (21:10 +0200)]
Makefile / racy-git.txt: clarify USE_NSEC prerequisites

Signed-off-by: Karsten Blees <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agoGit 2.5.0-rc1
Junio C Hamano [Wed, 1 Jul 2015 21:05:33 +0000 (14:05 -0700)]
Git 2.5.0-rc1

Signed-off-by: Junio C Hamano <redacted>
10 years agoMerge branch 'me/fetch-into-shallow-safety'
Junio C Hamano [Wed, 1 Jul 2015 21:02:33 +0000 (14:02 -0700)]
Merge branch 'me/fetch-into-shallow-safety'

"git fetch --depth=<depth>" and "git clone --depth=<depth>" issued
a shallow transfer request even to an upload-pack that does not
support the capability.

* me/fetch-into-shallow-safety:
  fetch-pack: check for shallow if depth given

10 years agoMerge branch 'jc/prompt-document-ps1-state-separator'
Junio C Hamano [Wed, 1 Jul 2015 21:02:32 +0000 (14:02 -0700)]
Merge branch 'jc/prompt-document-ps1-state-separator'

Docfix.

* jc/prompt-document-ps1-state-separator:
  git-prompt.sh: document GIT_PS1_STATESEPARATOR

10 years agoMerge branch 'mm/describe-doc'
Junio C Hamano [Wed, 1 Jul 2015 21:02:30 +0000 (14:02 -0700)]
Merge branch 'mm/describe-doc'

Docfix.

* mm/describe-doc:
  Documentation/describe: improve one-line summary

10 years agoMerge branch 'da/mergetool-winmerge'
Junio C Hamano [Wed, 1 Jul 2015 21:02:30 +0000 (14:02 -0700)]
Merge branch 'da/mergetool-winmerge'

Hotfix for an earlier change already in 'master' that broke the
default tool selection for mergetool.

* da/mergetool-winmerge:
  mergetool-lib: fix default tool selection

10 years agorev-list: disable --use-bitmap-index when pruning commits
Jeff King [Wed, 1 Jul 2015 18:42:17 +0000 (14:42 -0400)]
rev-list: disable --use-bitmap-index when pruning commits

The reachability bitmaps do not have enough information to
tell us which commits might have changed path "foo", so the
current code produces wrong answers for:

  git rev-list --use-bitmap-index --count HEAD -- foo

(it silently ignores the "foo" limiter). Instead, we should
fall back to doing a normal traversal (it is OK to fall
back rather than complain, because --use-bitmap-index is a
pure optimization, and might not kick in for other reasons,
such as there being no bitmaps in the repository).

Signed-off-by: Jeff King <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agoAdd tests for wildcard "path vs ref" disambiguation
Nguyễn Thái Ngọc Duy [Wed, 1 Jul 2015 11:08:14 +0000 (18:08 +0700)]
Add tests for wildcard "path vs ref" disambiguation

Commit 28fcc0b (pathspec: avoid the need of "--" when wildcard is used -
2015-05-02) changes how the disambiguation rules work. This patch adds
some tests to demonstrate, basically, if wildcard characters are in an
argument:

 - if the argument is valid extended sha-1 syntax, "--" must be used
 - otherwise the argument is considered a path, even without "--"

And wildcard can appear in extended sha-1 syntax, either as part of
regex in ":/<regex>" or as the literal path in ":<path>". The latter
case is less likely to happen in real world. But if you do ":/" a lot,
you may need to type "--" more.

Signed-off-by: Nguyễn Thái Ngọc Duy <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agofast-import: add a get-mark command
Michael Haggerty [Wed, 1 Jul 2015 15:05:58 +0000 (17:05 +0200)]
fast-import: add a get-mark command

It is sometimes useful for importers to be able to read the SHA-1
corresponding to a mark that they have created via fast-import. For
example, they might want to embed the SHA-1 into the commit message of
a later commit. Or it might be useful for internal bookkeeping uses,
or for logging.

Add a "get-mark" command to "git fast-import" that allows the importer
to ask for the value of a mark that has been created earlier.

Signed-off-by: Michael Haggerty <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agorev-list: add --count to usage guide
Lawrence Siebert [Wed, 1 Jul 2015 09:24:11 +0000 (02:24 -0700)]
rev-list: add --count to usage guide

--count should be mentioned in the usage guide, this updates code and
documentation.

Signed-off-by: Lawrence Siebert <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agol10n: fr.po v2.5.0-rc0 (2355t)
Jean-Noel Avila [Mon, 29 Jun 2015 19:05:18 +0000 (21:05 +0200)]
l10n: fr.po v2.5.0-rc0 (2355t)

Signed-off-by: Jean-Noel Avila <redacted>
Signed-off-by: Claude Dioudonnat <redacted>
10 years agogit rebase -i: add static check for commands and SHA-1
Galan Rémi [Mon, 29 Jun 2015 20:20:32 +0000 (22:20 +0200)]
git rebase -i: add static check for commands and SHA-1

Check before the start of the rebasing if the commands exists, and for
the commands expecting a SHA-1, check if the SHA-1 is present and
corresponds to a commit. In case of error, print the error, stop git
rebase and prompt the user to fix with 'git rebase --edit-todo' or to
abort.

This allows to avoid doing half of a rebase before finding an error
and giving back what's left of the todo list to the user and prompt
him to fix when it might be too late for him to do so (he might have
to abort and restart the rebase).

Signed-off-by: Galan Rémi <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agogit rebase -i: warn about removed commits
Galan Rémi [Mon, 29 Jun 2015 20:20:31 +0000 (22:20 +0200)]
git rebase -i: warn about removed commits

Check if commits were removed (i.e. a line was deleted) and print
warnings or stop git rebase depending on the value of the
configuration variable rebase.missingCommitsCheck.

This patch gives the user the possibility to avoid silent loss of
information (losing a commit through deleting the line in this case)
if he wants.

Add the configuration variable rebase.missingCommitsCheck.
    - When unset or set to "ignore", no checking is done.
    - When set to "warn", the commits are checked, warnings are
      displayed but git rebase still proceeds.
    - When set to "error", the commits are checked, warnings are
      displayed and the rebase is stopped.
      (The user can then use 'git rebase --edit-todo' and
      'git rebase --continue', or 'git rebase --abort')

rebase.missingCommitsCheck defaults to "ignore".

Signed-off-by: Galan Rémi <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agogit-rebase -i: add command "drop" to remove a commit
Galan Rémi [Mon, 29 Jun 2015 20:20:30 +0000 (22:20 +0200)]
git-rebase -i: add command "drop" to remove a commit

Instead of removing a line to remove the commit, you can use the
command "drop" (just like "pick" or "edit"). It has the same effect as
deleting the line (removing the commit) except that you keep a visual
trace of your actions, allowing a better control and reducing the
possibility of removing a commit by mistake.

Signed-off-by: Galan Rémi <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agosend-email: minor code refactoring
Remi Lespinet [Tue, 30 Jun 2015 12:16:47 +0000 (14:16 +0200)]
send-email: minor code refactoring

Group expressions in a single if statement. This avoid checking
multiple time if the variable $sender is defined.

Signed-off-by: Remi Lespinet <redacted>
Signed-off-by: Matthieu Moy <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agosend-email: allow use of aliases in the From field of --compose mode
Remi Lespinet [Tue, 30 Jun 2015 12:16:46 +0000 (14:16 +0200)]
send-email: allow use of aliases in the From field of --compose mode

Aliases were expanded before considering the From field of the
--compose option. This is inconsistent with other fields
(To, Cc, ...) which already support aliases.

Signed-off-by: Remi Lespinet <redacted>
Signed-off-by: Matthieu Moy <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agosend-email: refactor address list process
Remi Lespinet [Tue, 30 Jun 2015 12:16:45 +0000 (14:16 +0200)]
send-email: refactor address list process

Simplify code by creating a function which transform a list of strings
containing email addresses (separated by commas, comporting aliases)
into a clean list of valid email addresses.

Signed-off-by: Remi Lespinet <redacted>
Signed-off-by: Matthieu Moy <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agot9001-send-email: refactor header variable fields replacement
Remi Lespinet [Tue, 30 Jun 2015 12:16:44 +0000 (14:16 +0200)]
t9001-send-email: refactor header variable fields replacement

Create a function which replaces Date, Message-Id and
X-Mailer lines generated by git-send-email by a specific string:

Date:.*$       -> Date: DATE-STRING
Message-Id:.*$ -> Message-Id: MESSAGE-ID-STRING
X-Mailer:.*$   -> X-Mailer: X-MAILER-STRING
Signed-off-by: Remi Lespinet <redacted>
Signed-off-by: Matthieu Moy <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agosend-email: allow aliases in patch header and command script outputs
Remi Lespinet [Tue, 30 Jun 2015 12:16:43 +0000 (14:16 +0200)]
send-email: allow aliases in patch header and command script outputs

Interpret aliases in:

  -  Header fields of patches generated by git format-patch
     (using --to, --cc, --add-header for example) or
     manually modified. Example of fields in header:

      To: alias1
Cc: alias2
Cc: alias3
  -  Outputs of command scripts specified by --cc-cmd and
     --to-cmd. Example of script:

      #!/bin/sh
      echo alias1
      echo alias2

Signed-off-by: Remi Lespinet <redacted>
Signed-off-by: Matthieu Moy <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agot9001-send-email: move script creation in a setup test
Remi Lespinet [Tue, 30 Jun 2015 12:16:42 +0000 (14:16 +0200)]
t9001-send-email: move script creation in a setup test

Move the creation of the scripts used in to-cmd and cc-cmd tests
in a setup test to make them available for later tests.

Signed-off-by: Remi Lespinet <redacted>
Signed-off-by: Matthieu Moy <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agostatus: differentiate interactive from non-interactive rebases
Guillaume Pagès [Tue, 30 Jun 2015 13:01:13 +0000 (15:01 +0200)]
status: differentiate interactive from non-interactive rebases

Signed-off-by: Guillaume Pagès <redacted>
Signed-off-by: Junio C Hamano <redacted>
Signed-off-by: Matthieu Moy <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agostatus: factor two rebase-related messages together
Guillaume Pagès [Tue, 30 Jun 2015 13:01:12 +0000 (15:01 +0200)]
status: factor two rebase-related messages together

Signed-off-by: Guillaume Pagès <redacted>
Signed-off-by: Junio C Hamano <redacted>
Signed-off-by: Matthieu Moy <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agoconfig.c: fix writing config files on Windows network shares
Karsten Blees [Tue, 30 Jun 2015 14:34:13 +0000 (16:34 +0200)]
config.c: fix writing config files on Windows network shares

Renaming to an existing file doesn't work on Windows network shares if the
target file is open.

munmap() the old config file before commit_lock_file.

Signed-off-by: Karsten Blees <redacted>
Acked-by: Jeff King <redacted>
Acked-by: Johannes Schindelin <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agobisect: replace hardcoded "bad|good" by variables
Antoine Delaite [Mon, 29 Jun 2015 15:40:29 +0000 (17:40 +0200)]
bisect: replace hardcoded "bad|good" by variables

To add new tags like old/new and have keywords less confusing, the
first step is to avoid hardcoding the keywords.

The default mode is still bad/good.

Signed-off-by: Antoine Delaite <redacted>
Signed-off-by: Louis Stuber <redacted>
Signed-off-by: Valentin Duperray <redacted>
Signed-off-by: Franck Jonas <redacted>
Signed-off-by: Lucien Kong <redacted>
Signed-off-by: Thomas Nguy <redacted>
Signed-off-by: Huynh Khoi Nguyen Nguyen <redacted>
Signed-off-by: Matthieu Moy <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agorebase -i: do not leave a CHERRY_PICK_HEAD file behind
Johannes Schindelin [Thu, 18 Jun 2015 16:38:53 +0000 (18:38 +0200)]
rebase -i: do not leave a CHERRY_PICK_HEAD file behind

When skipping commits whose changes were already applied via `git rebase
--continue`, we need to clean up said file explicitly.

The same is not true for `git rebase --skip` because that will execute
`git reset --hard` as part of the "skip" handling in git-rebase.sh, even
before git-rebase--interactive.sh is called.

Signed-off-by: Johannes Schindelin <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agot3404: demonstrate CHERRY_PICK_HEAD bug
Johannes Schindelin [Thu, 18 Jun 2015 16:38:44 +0000 (18:38 +0200)]
t3404: demonstrate CHERRY_PICK_HEAD bug

When rev-list's --cherry option does not detect that a patch has already
been applied upstream, an interactive rebase would offer to reapply it and
consequently stop at that patch with a failure, mentioning that the diff
is empty.

Traditionally, a `git rebase --continue` simply skips the commit in such a
situation.

However, as pointed out by Gábor Szeder, this leaves a CHERRY_PICK_HEAD
behind, making the Git prompt believe that a cherry pick is still going
on. This commit adds a test case demonstrating this bug.

Signed-off-by: Johannes Schindelin <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agointroduce "format" date-mode
Jeff King [Thu, 25 Jun 2015 16:55:45 +0000 (12:55 -0400)]
introduce "format" date-mode

This feeds the format directly to strftime. Besides being a
little more flexible, the main advantage is that your system
strftime may know more about your locale's preferred format
(e.g., how to spell the days of the week).

Signed-off-by: Jeff King <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agoconvert "enum date_mode" into a struct
Jeff King [Thu, 25 Jun 2015 16:55:02 +0000 (12:55 -0400)]
convert "enum date_mode" into a struct

In preparation for adding date modes that may carry extra
information beyond the mode itself, this patch converts the
date_mode enum into a struct.

Most of the conversion is fairly straightforward; we pass
the struct as a pointer and dereference the type field where
necessary. Locations that declare a date_mode can use a "{}"
constructor.  However, the tricky case is where we use the
enum labels as constants, like:

  show_date(t, tz, DATE_NORMAL);

Ideally we could say:

  show_date(t, tz, &{ DATE_NORMAL });

but of course C does not allow that. Likewise, we cannot
cast the constant to a struct, because we need to pass an
actual address. Our options are basically:

  1. Manually add a "struct date_mode d = { DATE_NORMAL }"
     definition to each caller, and pass "&d". This makes
     the callers uglier, because they sometimes do not even
     have their own scope (e.g., they are inside a switch
     statement).

  2. Provide a pre-made global "date_normal" struct that can
     be passed by address. We'd also need "date_rfc2822",
     "date_iso8601", and so forth. But at least the ugliness
     is defined in one place.

  3. Provide a wrapper that generates the correct struct on
     the fly. The big downside is that we end up pointing to
     a single global, which makes our wrapper non-reentrant.
     But show_date is already not reentrant, so it does not
     matter.

This patch implements 3, along with a minor macro to keep
the size of the callers sane.

Signed-off-by: Jeff King <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agoshow-branch: use DATE_RELATIVE instead of magic number
Jeff King [Thu, 25 Jun 2015 16:54:31 +0000 (12:54 -0400)]
show-branch: use DATE_RELATIVE instead of magic number

This is more readable, and won't break if we ever change the
order of the date_mode enum.

Signed-off-by: Jeff King <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agohttp: always use any proxy auth method available
Enrique Tobis [Fri, 26 Jun 2015 18:19:04 +0000 (18:19 +0000)]
http: always use any proxy auth method available

We set CURLOPT_PROXYAUTH to use the most secure authentication
method available only when the user has set configuration variables
to specify a proxy.  However, libcurl also supports specifying a
proxy through environment variables.  In that case libcurl defaults
to only using the Basic proxy authentication method, because we do
not use CURLOPT_PROXYAUTH.

Set CURLOPT_PROXYAUTH to always use the most secure authentication
method available, even when there is no git configuration telling us
to use a proxy. This allows the user to use environment variables to
configure a proxy that requires an authentication method different
from Basic.

Signed-off-by: Enrique A. Tobis <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agorevision.c: remove unneeded check for NULL
Stefan Beller [Fri, 26 Jun 2015 19:40:19 +0000 (12:40 -0700)]
revision.c: remove unneeded check for NULL

The function is called only from one place, which makes sure to have
`interesting_cache` not NULL.  Additionally the variable is a
dereferenced a few lines before unconditionally, which would have
resulted in a segmentation fault before hitting this check.

Signed-off-by: Stefan Beller <redacted>
Acked-by: Jeff King <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agoworktree: new place for "git prune --worktrees"
Nguyễn Thái Ngọc Duy [Mon, 29 Jun 2015 12:51:18 +0000 (19:51 +0700)]
worktree: new place for "git prune --worktrees"

Commit 23af91d (prune: strategies for linked checkouts - 2014-11-30)
adds "--worktrees" to "git prune" without realizing that "git prune" is
for object database only. This patch moves the same functionality to a
new command "git worktree".

Signed-off-by: Nguyễn Thái Ngọc Duy <redacted>
10 years agoMerge branch 'master' of git://github.com/alshopov/git-po
Jiang Xin [Sun, 28 Jun 2015 22:41:44 +0000 (06:41 +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 (2355t,0f,0u)

10 years agoSync with maint
Junio C Hamano [Sun, 28 Jun 2015 21:51:12 +0000 (14:51 -0700)]
Sync with maint

* maint:

10 years agofsck: it is OK for a tag and a commit to lack the body
Junio C Hamano [Sun, 28 Jun 2015 18:18:31 +0000 (11:18 -0700)]
fsck: it is OK for a tag and a commit to lack the body

When fsck validates a commit or a tag, it scans each line in the
header of the object using helper functions such as "start_with()",
etc. that work on a NUL terminated buffer, but before a1e920a0
(index-pack: terminate object buffers with NUL, 2014-12-08), the
validation functions were fed the object data in a piece of memory
that is not necessarily terminated with a NUL.

We added a helper function require_end_of_header() to be called at
the beginning of these validation functions to insist that the
object data contains an empty line before its end.  The theory is
that the validating functions will notice and stop when it hits an
empty line as a normal end of header (or a required header line that
is missing) without scanning past the end of potentially not
NUL-terminated buffer.

But the theory forgot that in the older days, Git itself happily
created objects with only the header lines without a body. This
caused Git 2.2 and later to issue an unnecessary warning in some
existing repositories.

With a1e920a0, we do not need to require an empty line (or the body)
in these objects to safely parse and validate them.  Drop the
offending "must have an empty line" check from this helper function,
while keeping the other check to make sure that there is no NUL in
the header part of the object, and adjust the name of the helper to
what it does accordingly.

Noticed-by: Wolfgang Denk <redacted>
Helped-by: Jeff King <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agorerere: fix an off-by-one non-bug
Junio C Hamano [Sun, 28 Jun 2015 21:35:13 +0000 (14:35 -0700)]
rerere: fix an off-by-one non-bug

When ac49f5ca (rerere "remaining", 2011-02-16) split out a new
helper function check_one_conflict() out of find_conflict()
function, so that the latter will use the returned value from the
new helper to update the loop control variable that is an index into
active_cache[], the new variable incremented the index by one too
many when it found a path with only stage #1 entry at the very end
of active_cache[].

This "strange" return value does not have any effect on the loop
control of two callers of this function, as they all notice that
active_nr+2 is larger than active_nr just like active_nr+1 is, but
nevertheless it puzzles the readers when they are trying to figure
out what the function is trying to do.

In fact, there is no need to do an early return.  The code that
follows after skipping the stage #1 entry is fully prepared to
handle a case where the entry is at the very end of active_cache[].

Help future readers from unnecessary confusion by dropping an early
return.  We skip the stage #1 entry, and if there are stage #2 and
stage #3 entries for the same path, we diagnose the path as
THREE_STAGED (otherwise we say PUNTED), and then we skip all entries
for the same path.

Signed-off-by: Junio C Hamano <redacted>
10 years agol10n: Updated Bulgarian translation of git (2355t,0f,0u)
Alexander Shopov [Sun, 28 Jun 2015 07:27:57 +0000 (10:27 +0300)]
l10n: Updated Bulgarian translation of git (2355t,0f,0u)

Signed-off-by: Alexander Shopov <redacted>
10 years agol10n: sv.po: Update Swedish translation (2355t0f0u)
Peter Krefting [Sun, 28 Jun 2015 17:50:20 +0000 (18:50 +0100)]
l10n: sv.po: Update Swedish translation (2355t0f0u)

Signed-off-by: Peter Krefting <redacted>
10 years agol10n: Updated Vietnamese translation (2355t)
Tran Ngoc Quan [Sun, 28 Jun 2015 07:46:18 +0000 (14:46 +0700)]
l10n: Updated Vietnamese translation (2355t)

Signed-off-by: Tran Ngoc Quan <redacted>
10 years agol10n: git.pot: v2.5.0 round 1 (65 new, 15 removed)
Jiang Xin [Sat, 27 Jun 2015 11:18:04 +0000 (19:18 +0800)]
l10n: git.pot: v2.5.0 round 1 (65 new, 15 removed)

Generate po/git.pot from v2.5.0-rc0 for git v2.5.0 l10n round 1.

Signed-off-by: Jiang Xin <redacted>
10 years agop5310: Fix broken && chain in performance test
Stefan Beller [Fri, 26 Jun 2015 21:27:00 +0000 (14:27 -0700)]
p5310: Fix broken && chain in performance test

Signed-off-by: Stefan Beller <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agoDocumentation/bisect: revise overall content
Michael Haggerty [Fri, 26 Jun 2015 20:22:46 +0000 (22:22 +0200)]
Documentation/bisect: revise overall content

Thoroughly revise the "git bisect" manpage, including:

* Beef up the "Description" section.

* Make the first long example less specific to kernel development.

* De-emphasize implementation details in a couple of places.

* Add "(roughly N steps)" in the places where example output is shown.

* Properly markup code within the prose.

* Lots of wordsmithing.

Signed-off-by: Michael Haggerty <redacted>
Signed-off-by: Matthieu Moy <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agosetup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR
Nguyễn Thái Ngọc Duy [Fri, 26 Jun 2015 10:37:35 +0000 (17:37 +0700)]
setup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR

In the test case, we run setup_git_dir_gently() the first time to read
$GIT_DIR/config so that we can resolve aliases. We'll enter
setup_discovered_git_dir() and may or may not call set_git_dir() near
the end of the function, depending on whether the detected git dir is
".git" or not. This set_git_dir() will set env var $GIT_DIR.

For normal repo, git dir detected via setup_discovered_git_dir() will be
".git", and set_git_dir() is not called. If .git file is used however,
the git dir can't be ".git" and set_git_dir() is called and $GIT_DIR
set. This is the key of this problem.

If we expand an alias (or autocorrect command names), then
setup_git_dir_gently() is run the second time. If $GIT_DIR is not set in
the first run, we run the same setup_discovered_git_dir() as before.
Nothing to see. If it is, however, we'll enter setup_explicit_git_dir()
this time.

This is where the "fun" is.  If $GIT_WORK_TREE is not set but
$GIT_DIR is, you are supposed to be at the root level of the
worktree.  But if you are in a subdir "foo/bar" (real worktree's top
is "foo"), this rule bites you: your detected worktree is now
"foo/bar", even though the first run correctly detected worktree as
"foo". You get "internal error: work tree has already been set" as a
result.

Bottom line is, when $GIT_DIR is set, $GIT_WORK_TREE should be set too
unless there's no work tree. But setting $GIT_WORK_TREE inside
set_git_dir() may backfire. We don't know at that point if work tree is
already configured by the caller. So set it when work tree is
detected. It does not harm if $GIT_WORK_TREE is set while $GIT_DIR is
not.

Reported-by: Bjørnar Snoksrud <redacted>
Signed-off-by: Nguyễn Thái Ngọc Duy <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agoDocumentation/bisect: move getting help section to the end
Matthieu Moy [Fri, 26 Jun 2015 16:58:11 +0000 (18:58 +0200)]
Documentation/bisect: move getting help section to the end

Signed-off-by: Matthieu Moy <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agocat-file: sort and de-dup output of --batch-all-objects
Jeff King [Mon, 22 Jun 2015 11:06:32 +0000 (07:06 -0400)]
cat-file: sort and de-dup output of --batch-all-objects

The sorting we could probably live without, but printing
duplicates is just a hassle for the user, who must then
de-dup themselves (or risk a wrong answer if they are doing
something like counting objects with a particular property).

Signed-off-by: Jeff King <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agoread_gitfile_gently: fix use-after-free
Jeff King [Fri, 26 Jun 2015 09:03:31 +0000 (05:03 -0400)]
read_gitfile_gently: fix use-after-free

The "dir" variable is a pointer into the "buf" array. When
we hit the cleanup_return path, the first thing we do is
free(buf); but one of the error messages prints "dir", which
will access the memory after the free.

We can fix this by reorganizing the error path a little. We
act on the fatal, error-printing conditions first, as they
want to access memory and do not care about freeing. Then we
free any memory, and finally return.

Signed-off-by: Jeff King <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agoMerge branch 'jk/stash-require-clean-index' into maint
Junio C Hamano [Fri, 26 Jun 2015 06:03:26 +0000 (23:03 -0700)]
Merge branch 'jk/stash-require-clean-index' into maint

A hotfix for the topic already in 'master'.

* jk/stash-require-clean-index:
  Revert "stash: require a clean index to apply"

10 years agoMerge branch 'cb/array-size' into maint
Junio C Hamano [Fri, 26 Jun 2015 06:03:25 +0000 (23:03 -0700)]
Merge branch 'cb/array-size' into maint

* cb/array-size:
  Fix definition of ARRAY_SIZE for non-gcc builds

10 years agoGit 2.5.0-rc0
Junio C Hamano [Thu, 25 Jun 2015 18:08:39 +0000 (11:08 -0700)]
Git 2.5.0-rc0

Signed-off-by: Junio C Hamano <redacted>
10 years agoMerge branch 'cn/cvsimport-perl-update'
Junio C Hamano [Thu, 25 Jun 2015 18:08:08 +0000 (11:08 -0700)]
Merge branch 'cn/cvsimport-perl-update'

* cn/cvsimport-perl-update:
  cvsimport: silence regex warning appearing in Perl 5.22.

10 years agoMerge branch 'cb/array-size'
Junio C Hamano [Thu, 25 Jun 2015 18:07:42 +0000 (11:07 -0700)]
Merge branch 'cb/array-size'

* cb/array-size:
  Fix definition of ARRAY_SIZE for non-gcc builds

10 years agoSync with 2.4.5
Junio C Hamano [Thu, 25 Jun 2015 18:04:30 +0000 (11:04 -0700)]
Sync with 2.4.5

10 years agoGit 2.4.5
Junio C Hamano [Thu, 25 Jun 2015 18:03:05 +0000 (11:03 -0700)]
Git 2.4.5

Signed-off-by: Junio C Hamano <redacted>
10 years agoMerge branch 'sg/merge-summary-config' into maint
Junio C Hamano [Thu, 25 Jun 2015 18:02:16 +0000 (11:02 -0700)]
Merge branch 'sg/merge-summary-config' into maint

Doc updates.

* sg/merge-summary-config:
  Documentation: include 'merge.branchdesc' for merge and config as well

10 years agoMerge branch 'jk/make-fix-dependencies' into maint
Junio C Hamano [Thu, 25 Jun 2015 18:02:15 +0000 (11:02 -0700)]
Merge branch 'jk/make-fix-dependencies' into maint

Build clean-up.

* jk/make-fix-dependencies:
  Makefile: silence perl/PM.stamp recipe
  Makefile: avoid timestamp updates to GIT-BUILD-OPTIONS
  Makefile: drop dependency between git-instaweb and gitweb

10 years agoMerge branch 'sb/pack-protocol-mention-smart-http' into maint
Junio C Hamano [Thu, 25 Jun 2015 18:02:14 +0000 (11:02 -0700)]
Merge branch 'sb/pack-protocol-mention-smart-http' into maint

Doc updates.

* sb/pack-protocol-mention-smart-http:
  Documentation/technical/pack-protocol: mention http as possible protocol

10 years agoMerge branch 'jk/die-on-bogus-worktree-late' into maint
Junio C Hamano [Thu, 25 Jun 2015 18:02:13 +0000 (11:02 -0700)]
Merge branch 'jk/die-on-bogus-worktree-late' into maint

The setup code used to die when core.bare and core.worktree are set
inconsistently, even for commands that do not need working tree.

* jk/die-on-bogus-worktree-late:
  setup_git_directory: delay core.bare/core.worktree errors

10 years agoMerge branch 'pt/pull-tags-error-diag' into maint
Junio C Hamano [Thu, 25 Jun 2015 18:02:12 +0000 (11:02 -0700)]
Merge branch 'pt/pull-tags-error-diag' into maint

There was a dead code that used to handle "git pull --tags" and
show special-cased error message, which was made irrelevant when
the semantics of the option changed back in Git 1.9 days.

* pt/pull-tags-error-diag:
  pull: remove --tags error in no merge candidates case

10 years agoMerge branch 'jk/color-diff-plain-is-context' into maint
Junio C Hamano [Thu, 25 Jun 2015 18:02:11 +0000 (11:02 -0700)]
Merge branch 'jk/color-diff-plain-is-context' into maint

"color.diff.plain" was a misnomer; give it 'color.diff.context' as
a more logical synonym.

* jk/color-diff-plain-is-context:
  diff.h: rename DIFF_PLAIN color slot to DIFF_CONTEXT
  diff: accept color.diff.context as a synonym for "plain"

10 years agoMerge branch 'jk/diagnose-config-mmap-failure' into maint
Junio C Hamano [Thu, 25 Jun 2015 18:02:10 +0000 (11:02 -0700)]
Merge branch 'jk/diagnose-config-mmap-failure' into maint

The configuration reader/writer uses mmap(2) interface to access
the files; when we find a directory, it barfed with "Out of memory?".

* jk/diagnose-config-mmap-failure:
  xmmap(): drop "Out of memory?"
  config.c: rewrite ENODEV into EISDIR when mmap fails
  config.c: avoid xmmap error messages
  config.c: fix mmap leak when writing config
  read-cache.c: drop PROT_WRITE from mmap of index

10 years agoMerge branch 'jk/squelch-missing-link-warning-for-unreachable' into maint
Junio C Hamano [Thu, 25 Jun 2015 18:02:09 +0000 (11:02 -0700)]
Merge branch 'jk/squelch-missing-link-warning-for-unreachable' into maint

Recent "git prune" traverses young unreachable objects to safekeep
old objects in the reachability chain from them, which sometimes
caused error messages that are unnecessarily alarming.

* jk/squelch-missing-link-warning-for-unreachable:
  suppress errors on missing UNINTERESTING links
  silence broken link warnings with revs->ignore_missing_links
  add quieter versions of parse_{tree,commit}

10 years agoMerge branch 'mm/rebase-i-post-rewrite-exec' into maint
Junio C Hamano [Thu, 25 Jun 2015 18:02:09 +0000 (11:02 -0700)]
Merge branch 'mm/rebase-i-post-rewrite-exec' into maint

"git rebase -i" fired post-rewrite hook when it shouldn't (namely,
when it was told to stop sequencing with 'exec' insn).

* mm/rebase-i-post-rewrite-exec:
  t5407: use <<- to align the expected output
  rebase -i: fix post-rewrite hook with failed exec command
  rebase -i: demonstrate incorrect behavior of post-rewrite

10 years agoMerge branch 'nd/diff-i-t-a'
Junio C Hamano [Thu, 25 Jun 2015 17:47:46 +0000 (10:47 -0700)]
Merge branch 'nd/diff-i-t-a'

* nd/diff-i-t-a:
  Revert "diff-lib.c: adjust position of i-t-a entries in diff"

10 years agocvsimport: silence regex warning appearing in Perl 5.22.
Christian Neukirchen [Wed, 24 Jun 2015 14:04:20 +0000 (16:04 +0200)]
cvsimport: silence regex warning appearing in Perl 5.22.

Since Perl 5.22, "A literal '{' should now be escaped in a pattern".
Silence the recently added warning by using \{ instead.

Signed-off-by: Christian Neukirchen <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agoFix definition of ARRAY_SIZE for non-gcc builds
Charles Bailey [Wed, 24 Jun 2015 22:12:07 +0000 (23:12 +0100)]
Fix definition of ARRAY_SIZE for non-gcc builds

The improved ARRAY_SIZE macro uses BARF_UNLESS_AN_ARRAY which expands
to a valid check for recent gcc versions and to 0 for older gcc
versions but is not defined on non-gcc builds.

Non-gcc builds need this macro to expand to 0 as well. The current outer
test (defined(__GNUC__) && (__GNUC__ >= 3)) is a strictly weaker
condition than the inner test (GIT_GNUC_PREREQ(3, 1)) so we can omit the
outer test and cause the BARF_UNLESS_AN_ARRAY macro to be defined
correctly on non-gcc builds as well as gcc builds with older versions.

Signed-off-by: Charles Bailey <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agointroduce "preciousObjects" repository extension
Jeff King [Tue, 23 Jun 2015 10:54:11 +0000 (06:54 -0400)]
introduce "preciousObjects" repository extension

If this extension is used in a repository, then no
operations should run which may drop objects from the object
storage. This can be useful if you are sharing that storage
with other repositories whose refs you cannot see.

For instance, if you do:

  $ git clone -s parent child
  $ git -C parent config extensions.preciousObjects true
  $ git -C parent config core.repositoryformatversion 1

you now have additional safety when running git in the
parent repository. Prunes and repacks will bail with an
error, and `git gc` will skip those operations (it will
continue to pack refs and do other non-object operations).
Older versions of git, when run in the repository, will
fail on every operation.

Note that we do not set the preciousObjects extension by
default when doing a "clone -s", as doing so breaks
backwards compatibility. It is a decision the user should
make explicitly.

Signed-off-by: Jeff King <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agointroduce "extensions" form of core.repositoryformatversion
Jeff King [Tue, 23 Jun 2015 10:53:58 +0000 (06:53 -0400)]
introduce "extensions" form of core.repositoryformatversion

Normally we try to avoid bumps of the whole-repository
core.repositoryformatversion field. However, it is
unavoidable if we want to safely change certain aspects of
git in a backwards-incompatible way (e.g., modifying the set
of ref tips that we must traverse to generate a list of
unreachable, safe-to-prune objects).

If we were to bump the repository version for every such
change, then any implementation understanding version `X`
would also have to understand `X-1`, `X-2`, and so forth,
even though the incompatibilities may be in orthogonal parts
of the system, and there is otherwise no reason we cannot
implement one without the other (or more importantly, that
the user cannot choose to use one feature without the other,
weighing the tradeoff in compatibility only for that
particular feature).

This patch documents the existing repositoryformatversion
strategy and introduces a new format, "1", which lets a
repository specify that it must run with an arbitrary set of
extensions. This can be used, for example:

 - to inform git that the objects should not be pruned based
   only on the reachability of the ref tips (e.g, because it
   has "clone --shared" children)

 - that the refs are stored in a format besides the usual
   "refs" and "packed-refs" directories

Because we bump to format "1", and because format "1"
requires that a running git knows about any extensions
mentioned, we know that older versions of the code will not
do something dangerous when confronted with these new
formats.

For example, if the user chooses to use database storage for
refs, they may set the "extensions.refbackend" config to
"db". Older versions of git will not understand format "1"
and bail. Versions of git which understand "1" but do not
know about "refbackend", or which know about "refbackend"
but not about the "db" backend, will refuse to run. This is
annoying, of course, but much better than the alternative of
claiming that there are no refs in the repository, or
writing to a location that other implementations will not
read.

Note that we are only defining the rules for format 1 here.
We do not ever write format 1 ourselves; it is a tool that
is meant to be used by users and future extensions to
provide safety with older implementations.

Signed-off-by: Jeff King <redacted>
Signed-off-by: Junio C Hamano <redacted>
10 years agoNinth batch for 2.5
Junio C Hamano [Wed, 24 Jun 2015 19:27:20 +0000 (12:27 -0700)]
Ninth batch for 2.5

Signed-off-by: Junio C Hamano <redacted>
10 years agoMerge branch 'jk/stash-require-clean-index'
Junio C Hamano [Wed, 24 Jun 2015 19:21:59 +0000 (12:21 -0700)]
Merge branch 'jk/stash-require-clean-index'

A hotfix for the topic already in 'master'.

* jk/stash-require-clean-index:
  Revert "stash: require a clean index to apply"

10 years agoMerge branch 'pa/auto-gc-mac-osx'
Junio C Hamano [Wed, 24 Jun 2015 19:21:58 +0000 (12:21 -0700)]
Merge branch 'pa/auto-gc-mac-osx'

Recent Mac OS X updates breaks the logic to detect that the machine
is on the AC power in the sample pre-auto-gc script.

* pa/auto-gc-mac-osx:
  hooks/pre-auto-gc: adjust power checking for newer OS X

10 years agoMerge branch 'pt/t0302-needs-sanity'
Junio C Hamano [Wed, 24 Jun 2015 19:21:57 +0000 (12:21 -0700)]
Merge branch 'pt/t0302-needs-sanity'

* pt/t0302-needs-sanity:
  t0302: "unreadable" test needs SANITY prereq

10 years agoMerge branch 'ld/p4-changes-block-size'
Junio C Hamano [Wed, 24 Jun 2015 19:21:56 +0000 (12:21 -0700)]
Merge branch 'ld/p4-changes-block-size'

More Perforce row number limit workaround for "git p4".

* ld/p4-changes-block-size:
  git-p4: fixing --changes-block-size handling
  git-p4: add tests for non-numeric revision range
  git-p4: test with limited p4 server results
  git-p4: additional testing of --changes-block-size

10 years agoMerge branch 'fk/doc-format-patch-vn'
Junio C Hamano [Wed, 24 Jun 2015 19:21:56 +0000 (12:21 -0700)]
Merge branch 'fk/doc-format-patch-vn'

Docfix.

* fk/doc-format-patch-vn:
  doc: format-patch: fix typo

10 years agoMerge branch 'sg/commit-cleanup-scissors'
Junio C Hamano [Wed, 24 Jun 2015 19:21:55 +0000 (12:21 -0700)]
Merge branch 'sg/commit-cleanup-scissors'

"git commit --cleanup=scissors" was not careful enough to protect
against getting fooled by a line that looked like scissors.

* sg/commit-cleanup-scissors:
  commit: cope with scissors lines in commit message

10 years agoMerge branch 'jk/index-pack-reduce-recheck'
Junio C Hamano [Wed, 24 Jun 2015 19:21:54 +0000 (12:21 -0700)]
Merge branch 'jk/index-pack-reduce-recheck'

Disable "have we lost a race with competing repack?" check while
receiving a huge object transfer that runs index-pack.

* jk/index-pack-reduce-recheck:
  index-pack: avoid excessive re-reading of pack directory

10 years agoMerge branch 'af/tcsh-completion-noclobber'
Junio C Hamano [Wed, 24 Jun 2015 19:21:53 +0000 (12:21 -0700)]
Merge branch 'af/tcsh-completion-noclobber'

The tcsh completion writes a bash scriptlet but that would have
failed for users with noclobber set.

* af/tcsh-completion-noclobber:
  git-completion.tcsh: fix redirect with noclobber

10 years agoMerge branch 'mh/reporting-broken-refs-from-for-each-ref'
Junio C Hamano [Wed, 24 Jun 2015 19:21:51 +0000 (12:21 -0700)]
Merge branch 'mh/reporting-broken-refs-from-for-each-ref'

"git for-each-ref" reported "missing object" for 0{40} when it
encounters a broken ref.  The lack of object whose name is 0{40} is
not the problem; the ref being broken is.

* mh/reporting-broken-refs-from-for-each-ref:
  read_loose_refs(): treat NULL_SHA1 loose references as broken
  read_loose_refs(): simplify function logic
  for-each-ref: report broken references correctly
  t6301: new tests of for-each-ref error handling

10 years agoMerge branch 'sg/completion-commit-cleanup'
Junio C Hamano [Wed, 24 Jun 2015 19:21:51 +0000 (12:21 -0700)]
Merge branch 'sg/completion-commit-cleanup'

* sg/completion-commit-cleanup:
  completion: teach 'scissors' mode to 'git commit --cleanup='

10 years agoMerge branch 'pt/am-abort-fix'
Junio C Hamano [Wed, 24 Jun 2015 19:21:49 +0000 (12:21 -0700)]
Merge branch 'pt/am-abort-fix'

Various fixes around "git am" that applies a patch to a history
that is not there yet.

* pt/am-abort-fix:
  am --abort: keep unrelated commits on unborn branch
  am --abort: support aborting to unborn branch
  am --abort: revert changes introduced by failed 3way merge
  am --skip: support skipping while on unborn branch
  am -3: support 3way merge on unborn branch
  am --skip: revert changes introduced by failed 3way merge

10 years agoMerge branch 'nd/untracked-cache'
Junio C Hamano [Wed, 24 Jun 2015 19:21:49 +0000 (12:21 -0700)]
Merge branch 'nd/untracked-cache'

Hotfix for the 'untracked-cache' topic that is already in 'master'.

* nd/untracked-cache:
  read-cache: fix untracked cache invalidation when split-index is used

10 years agoMerge branch 'mh/fsck-reflog-entries'
Junio C Hamano [Wed, 24 Jun 2015 19:21:48 +0000 (12:21 -0700)]
Merge branch 'mh/fsck-reflog-entries'

"git fsck" used to ignore missing or invalid objects recorded in reflog.

* mh/fsck-reflog-entries:
  fsck: report errors if reflog entries point at invalid objects
  fsck_handle_reflog_sha1(): new function

10 years agoMerge branch 'js/sleep-without-select'
Junio C Hamano [Wed, 24 Jun 2015 19:21:47 +0000 (12:21 -0700)]
Merge branch 'js/sleep-without-select'

Portability fix.

* js/sleep-without-select:
  lockfile: wait using sleep_millisec() instead of select()
  lockfile: convert retry timeout computations to millisecond
  help.c: wrap wait-only poll() invocation in sleep_millisec()
  lockfile: replace random() by rand()

10 years agoMerge branch 'es/utf8-stupid-compiler-workaround'
Junio C Hamano [Wed, 24 Jun 2015 19:21:46 +0000 (12:21 -0700)]
Merge branch 'es/utf8-stupid-compiler-workaround'

A compilation workaround.

* es/utf8-stupid-compiler-workaround:
  utf8: NO_ICONV: silence uninitialized variable warning

10 years agoMerge branch 'rl/am-3way-config'
Junio C Hamano [Wed, 24 Jun 2015 19:21:45 +0000 (12:21 -0700)]
Merge branch 'rl/am-3way-config'

"git am" learned am.threeWay configuration variable.

* rl/am-3way-config:
  git-am: add am.threeWay config variable
  t4150-am: refactor am -3 tests
  git-am.sh: fix initialization of the threeway variable

10 years agoMerge branch 'jc/ll-merge-expose-path'
Junio C Hamano [Wed, 24 Jun 2015 19:21:45 +0000 (12:21 -0700)]
Merge branch 'jc/ll-merge-expose-path'

Traditionally, external low-level 3-way merge drivers are expected
to produce their results based solely on the contents of the three
variants given in temporary files named by %O, %A and %B on their
command line.  Additionally allow them to look at the final path
(given by %P).

* jc/ll-merge-expose-path:
  ll-merge: pass the original path to external drivers

10 years agoMerge branch 'es/osx-header-pollutes-mask-macro'
Junio C Hamano [Wed, 24 Jun 2015 19:21:44 +0000 (12:21 -0700)]
Merge branch 'es/osx-header-pollutes-mask-macro'

* es/osx-header-pollutes-mask-macro:
  ewah: use less generic macro name
  ewah/bitmap: silence warning about MASK macro redefinition

10 years agoMerge branch 'es/configure-getdelim'
Junio C Hamano [Wed, 24 Jun 2015 19:21:43 +0000 (12:21 -0700)]
Merge branch 'es/configure-getdelim'

Auto-detect availability of getdelim() that helps optimized version
of strbuf_getwholeline().

* es/configure-getdelim:
  configure: add getdelim() check
  config.mak.uname: Darwin: define HAVE_GETDELIM for modern OS X releases

10 years agoMerge branch 'pt/pull-optparse'
Junio C Hamano [Wed, 24 Jun 2015 19:21:42 +0000 (12:21 -0700)]
Merge branch 'pt/pull-optparse'

"git pull" has become more aware of the options meant for
underlying "git fetch" and then learned to use parse-options
parser.

* pt/pull-optparse:
  pull: use git-rev-parse --parseopt for option parsing
  pull: handle git-fetch's options as well

git clone https://git.99rst.org/PROJECT