git
11 years agot: add tests for "git var"
Jeff King [Wed, 28 Nov 2012 18:26:43 +0000 (13:26 -0500)] 
t: add tests for "git var"

We do not currently have any explicit tests for "git var" at
all (though we do exercise it to some degree as a part of
other tests). Let's add a few basic sanity checks.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoDocumentation/git-push.txt: clarify the "push from satellite" workflow
Junio C Hamano [Tue, 27 Nov 2012 23:52:27 +0000 (15:52 -0800)] 
Documentation/git-push.txt: clarify the "push from satellite" workflow

The context of the example to push into refs/remotes/satellite/
hierarchy of the other repository needs to be spelled out explicitly
for the value of this example to be fully appreciated.  Make it so.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoremote-hg: fix for older versions of python
Felipe Contreras [Wed, 28 Nov 2012 01:01:33 +0000 (02:01 +0100)] 
remote-hg: fix for older versions of python

As Amit Bakshi reported, older versions of python (< 2.7) don't have
subprocess.check_output, so let's use subprocess.Popen directly as
suggested.

Suggested-by: Amit Bakshi <ambakshi@gmail.com>
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoremote-hg: fix for files with spaces
Felipe Contreras [Wed, 28 Nov 2012 01:01:32 +0000 (02:01 +0100)] 
remote-hg: fix for files with spaces

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agodiff --shortstat: do not count "unmerged" entries
Junio C Hamano [Tue, 27 Nov 2012 22:19:36 +0000 (14:19 -0800)] 
diff --shortstat: do not count "unmerged" entries

Fix the same issue as the previous one for "git diff --stat";
unmerged entries was doubly-counted.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'maint'
Junio C Hamano [Tue, 27 Nov 2012 21:29:08 +0000 (13:29 -0800)] 
Merge branch 'maint'

11 years agoMerge branch 'nd/maint-compat-fnmatch-fix' into maint
Junio C Hamano [Tue, 27 Nov 2012 21:29:00 +0000 (13:29 -0800)] 
Merge branch 'nd/maint-compat-fnmatch-fix' into maint

* nd/maint-compat-fnmatch-fix:
  compat/fnmatch: fix off-by-one character class's length check

11 years agoMerge branch 'jh/update-ref-d-through-symref' into maint
Junio C Hamano [Tue, 27 Nov 2012 21:28:45 +0000 (13:28 -0800)] 
Merge branch 'jh/update-ref-d-through-symref' into maint

* jh/update-ref-d-through-symref:
  Fix failure to delete a packed ref through a symref
  t1400-update-ref: Add test verifying bug with symrefs in delete_ref()

11 years agoMerge branch 'esr/maint-doc-fast-import' into maint
Junio C Hamano [Tue, 27 Nov 2012 21:28:31 +0000 (13:28 -0800)] 
Merge branch 'esr/maint-doc-fast-import' into maint

* esr/maint-doc-fast-import:
  doc/fast-import: clarify how content states are built

11 years agoMerge branch 'wtk/submodule-doc-fixup' into maint
Junio C Hamano [Tue, 27 Nov 2012 21:28:18 +0000 (13:28 -0800)] 
Merge branch 'wtk/submodule-doc-fixup' into maint

* wtk/submodule-doc-fixup:
  git-submodule: wrap branch option with "<>" in usage strings.

11 years agodiff --stat: do not count "unmerged" entries
Junio C Hamano [Tue, 27 Nov 2012 20:05:10 +0000 (12:05 -0800)] 
diff --stat: do not count "unmerged" entries

Even though we show a separate *UNMERGED* entry in the patch and
diffstat output (or in the --raw format, for that matter) in
addition to and separately from the diff against the specified stage
(defaulting to #2) for unmerged paths, they should not be counted in
the total number of files affected---that would lead to counting the
same path twice.

The separation done by the previous step makes this fix simple and
straightforward.  Among the filepairs in diff_queue, paths that
weren't modified, and the extra "unmerged" entries do not count as
total number of files.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agodiff --stat: move the "total count" logic to the last loop
Junio C Hamano [Tue, 27 Nov 2012 19:47:46 +0000 (11:47 -0800)] 
diff --stat: move the "total count" logic to the last loop

The diffstat generation logic, with --stat-count limit, is
implemented as three loops.

 - The first counts the width necessary to show stats up to
   specified number of entries, and notes up to how many entries in
   the data we need to iterate to show the graph;

 - The second iterates that many times to draw the graph, adjusts
   the number of "total modified files", and counts the total
   added/deleted lines for the part that was shown in the graph;

 - The third iterates over the remainder and only does the part to
   count "total added/deleted lines" and to adjust "total modified
   files" without drawing anything.

Move the logic to count added/deleted lines and modified files from
the second loop to the third loop.

This incidentally fixes a bug.  The third loop was not filtering
binary changes (counted in bytes) from the total added/deleted as it
should.  The second loop implemented this correctly, so if a binary
change appeared earlier than the --stat-count cutoff, the code
counted number of added/deleted lines correctly, but if it appeared
beyond the cutoff, the number of lines would have mixed with the
byte count in the buggy third loop.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agodiff --stat: use "file" temporary variable to refer to data->files[i]
Junio C Hamano [Tue, 27 Nov 2012 19:24:54 +0000 (11:24 -0800)] 
diff --stat: use "file" temporary variable to refer to data->files[i]

The generated code shouldn't change but it is easier to read.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agodiff --stat: status of unmodified pair in diff-q is not zero
Junio C Hamano [Tue, 27 Nov 2012 19:17:14 +0000 (11:17 -0800)] 
diff --stat: status of unmodified pair in diff-q is not zero

It is spelled DIFF_STATUS_UNKNOWN these days, and is different from zero.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agotest: add failing tests for "diff --stat" to t4049
Junio C Hamano [Tue, 27 Nov 2012 20:55:00 +0000 (12:55 -0800)] 
test: add failing tests for "diff --stat" to t4049

There are a few problems in diff.c around --stat area, partially
caused by the recent 74faaa1 (Fix "git diff --stat" for interesting
- but empty - file changes, 2012-10-17), and largely caused by the
earlier change that introduced when --stat-count was added.

Add a few test pieces to t4049 to expose the issues.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agot4041 (diff-submodule-option): don't hardcode SHA-1 in expected outputs
Ramkumar Ramachandra [Mon, 26 Nov 2012 13:54:28 +0000 (19:24 +0530)] 
t4041 (diff-submodule-option): don't hardcode SHA-1 in expected outputs

The expected SHA-1 digests are always available in variables.  Use
them instead of hardcoding.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoSupport for git aliasing for tcsh completion
Marc Khouzam [Tue, 27 Nov 2012 04:13:41 +0000 (23:13 -0500)] 
Support for git aliasing for tcsh completion

tcsh users sometimes alias the 'git' command to another name.  In
this case, the user expects to only have to issue a new 'complete'
command using the alias name.

However, the tcsh script currently uses the command typed by the
user to call the appropriate function in git-completion.bash, either
_git() or _gitk().  When using an alias, this technique no longer
works.

This change specifies the real name of the command (either 'git' or
'gitk') as a parameter to the script handling tcsh completion.  This
allows the user to use any alias for the 'git' or 'gitk' commands,
while still getting completion to work.

A check for the presence of ${HOME}/.git-completion.bash is also
added to help the user make use of the script properly.

Signed-off-by: Marc Khouzam <marc.khouzam@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoDocumentation: improve phrasing in git-push.txt
Mark Szepieniec [Tue, 27 Nov 2012 01:37:34 +0000 (01:37 +0000)] 
Documentation: improve phrasing in git-push.txt

The current version contains the sentence:

Further suppose that the other person already pushed changes leading to
A back to the original repository you two obtained the original commit
X.

which doesn't parse for me; I've changed it to

Further suppose that the other person already pushed changes leading to
A back to the original repository from which you two obtained the
original commit X.

Signed-off-by: Mark Szepieniec <mszepien@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agogit-send-email: allow edit invalid email address
Krzysztof Mazur [Thu, 22 Nov 2012 18:12:12 +0000 (19:12 +0100)] 
git-send-email: allow edit invalid email address

In some cases the user may want to send email with "Cc:" line with
email address we cannot extract. Now we allow user to extract
such email address for us.

Signed-off-by: Krzysztof Mazur <krzysiek@podlesie.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agogit-send-email: ask what to do with an invalid email address
Krzysztof Mazur [Thu, 22 Nov 2012 18:12:11 +0000 (19:12 +0100)] 
git-send-email: ask what to do with an invalid email address

We used to warn about invalid emails and just drop them. Such warnings
can be unnoticed by user or noticed after sending email when we are not
giving the "final sanity check [Y/n]?"

Now we quit by default.

Signed-off-by: Krzysztof Mazur <krzysiek@podlesie.net>
Suggested-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agogit-send-email: remove invalid addresses earlier
Krzysztof Mazur [Thu, 22 Nov 2012 18:12:10 +0000 (19:12 +0100)] 
git-send-email: remove invalid addresses earlier

Some addresses are passed twice to unique_email_list() and invalid addresses
may be reported twice per send_message. Now we warn about them earlier
and we also remove invalid addresses.

This also removes using of undefined values for string comparison
for invalid addresses in cc list processing.

Signed-off-by: Krzysztof Mazur <krzysiek@podlesie.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'maint'
Junio C Hamano [Mon, 26 Nov 2012 22:12:07 +0000 (14:12 -0800)] 
Merge branch 'maint'

* maint:
  Fix typo in remote set-head usage
  Makefile: hide stderr of curl-config test

11 years agoDocumentation: how to add a new command
Eric S. Raymond [Mon, 26 Nov 2012 05:35:57 +0000 (00:35 -0500)] 
Documentation: how to add a new command

This document contains no new policies or proposals; it attempts to
document established practices and interface requirements.

Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoFix typo in remote set-head usage
Antoine Pelisse [Mon, 26 Nov 2012 19:21:54 +0000 (20:21 +0100)] 
Fix typo in remote set-head usage

parenthesis are not matching in `builtin_remote_sethead_usage`
as a square bracket is closing something never opened.

Signed-off-by: Antoine Pelisse <apelisse@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agosend-email: avoid questions when user has an ident
Felipe Contreras [Sat, 24 Nov 2012 11:16:19 +0000 (12:16 +0100)] 
send-email: avoid questions when user has an ident

Currently we keep getting questions even when the user has properly
configured his full name and password:

  Who should the emails appear to be from?
  [Felipe Contreras <felipe.contreras@gmail.com>]

And once a question pops up, other questions are turned on. This is
annoying.

The reason it's safe to avoid this question is because currently the
script fails completely when the author (or committer) is not correct,
so we won't even be reaching this point in the code.

The scenarios, and the current situation:

1) No information at all, no fully qualified domain name

  fatal: empty ident name (for <felipec@nysa.(none)>) not allowed

2) Only full name

  fatal: unable to auto-detect email address (got 'felipec@nysa.(none)')

3) Full name + fqdm

  Who should the emails appear to be from?
  [Felipe Contreras <felipec@nysa.felipec.org>]

4) Full name + EMAIL

  Who should the emails appear to be from?
  [Felipe Contreras <felipe.contreras@gmail.com>]

5) User configured
6) GIT_COMMITTER
7) GIT_AUTHOR

All these are the same as 4)

After this patch:

1) 2) won't change: git send-email would still die

4) 5) 6) 7) will change: git send-email won't ask the user

This is good, that's what we would expect, because the identity is
explicit.

3) will change: git send-email won't ask the user

This is bad, because we will try with an address such as
'felipec@nysa.felipec.org', which is most likely not what the user
wants, but the user will get warned by default (confirm=auto), and if
not, most likely the sending won't work, which the user would readily
note and fix.

The worst possible scenario is that such mail address does work, and the
user sends an email from that address unintentionally, when in fact the
user expected to correct that address in the prompt. This is a very,
very, very unlikely scenario, with many dependencies:

1) No configured user.name/user.email
2) No specified $EMAIL
3) No configured sendemail.from
4) No specified --from argument
5) A fully qualified domain name
6) A full name in the geckos field
7) A sendmail configuration that allows sending from this domain name
8) confirm=never, or
8.1) confirm configuration not hitting, or
8.2) Getting the error, not being aware of it
9) The user expecting to correct this address in the prompt

In a more likely scenario where 7) is not the case (can't send from
nysa.felipec.org), the user will simply see the mail was not sent
properly, and fix the problem.

The much more likely scenario though, is where 5) is not the case
(nysa.(none)), and git send-email will fail right away like it does now.

So the likelihood of this affecting anybody seriously is very very slim,
and the chances of this affecting somebody slightly are still very
small. The vast majority, if not all, of git users won't be affected
negatively, and a lot will benefit from this.

Tests-by: Jeff King <peff@peff.net>
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agogit p4: remove unneeded cmd initialization
Pete Wyckoff [Fri, 23 Nov 2012 22:35:39 +0000 (17:35 -0500)] 
git p4: remove unneeded cmd initialization

It confuses pylint, and is never needed.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agogit p4: fix labelDetails typo in exception
Pete Wyckoff [Fri, 23 Nov 2012 22:35:38 +0000 (17:35 -0500)] 
git p4: fix labelDetails typo in exception

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agogit p4 test: display unresolvable host error
Pete Wyckoff [Fri, 23 Nov 2012 22:35:37 +0000 (17:35 -0500)] 
git p4 test: display unresolvable host error

This test passes already.  Make sure p4 diagnostic errors are displayed.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agogit p4: catch p4 errors when streaming file contents
Pete Wyckoff [Fri, 23 Nov 2012 22:35:36 +0000 (17:35 -0500)] 
git p4: catch p4 errors when streaming file contents

Error messages that arise during the "p4 print" phase of
generating commits were silently ignored.  Catch them,
abort the fast-import, and exit.

Without this fix, the sync/clone appears to work, but files that
are inaccessible by the p4d server will still be imported to git,
although without the proper contents.  Instead the errant files
will contain a p4 error message, such as "Librarian checkout
//depot/path failed".

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agogit p4: handle servers without move support
Pete Wyckoff [Fri, 23 Nov 2012 22:35:35 +0000 (17:35 -0500)] 
git p4: handle servers without move support

Support for the "p4 move" command was added in 8e9497c (git p4:
add support for 'p4 move' in P4Submit, 2012-07-12), which checks
to make sure that the client and server support the command.

But older versions of p4d may not handle the "-k" argument, and
newer p4d allow disabling "p4 move" with a configuration setting.
Check for both these cases by testing a p4 move command on bogus
filenames and looking for strings in the error messages.

Reported-by: Vitor Antunes <vitor.hda@gmail.com>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agogit p4: catch p4 describe errors
Pete Wyckoff [Fri, 23 Nov 2012 22:35:34 +0000 (17:35 -0500)] 
git p4: catch p4 describe errors

Group the two calls to "p4 describe" into a new helper function,
and try to validate the p4 results.  The current behavior when p4
describe fails is to die with a python backtrace.  The new behavior
will print the full response.

This does not solve any particular problem, but adds more
checking in hopes of narrowing down odd behavior seen on
at least two occasions.

Based-on-patch-by: Matt Arsenault <arsenm2@gmail.com>
Reported-by: Arthur <a.foulon@amesys.fr>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMakefile: hide stderr of curl-config test
Paul Gortmaker [Thu, 22 Nov 2012 03:19:57 +0000 (22:19 -0500)] 
Makefile: hide stderr of curl-config test

You will get

    $ make distclean 2>&1 | grep curl
    /bin/sh: curl-config: not found
    /bin/sh: curl-config: not found
    /bin/sh: curl-config: not found
    /bin/sh: curl-config: not found
    /bin/sh: curl-config: not found
    $

if you don't have a curl development package installed.

The intent is not to alarm the user, but just to test if there is
a new enough curl installed.  However, if you look at search engine
suggested completions, the above "error" messages are confusing
people into thinking curl is a hard requirement.

Redirect this error output to /dev/null as it is not necessary to be
shown to the end users.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoemacs: make 'git-status' work with separate git dirs
Enrico Scholz [Thu, 22 Nov 2012 15:58:54 +0000 (16:58 +0100)] 
emacs: make 'git-status' work with separate git dirs

when trying 'M-x git-status' in a submodule created with recent (1.7.5+)
git, the command fails with

| ... is not a git working tree

This is caused by creating submodules with '--separate-git-dir' but
still checking for a working tree by testing for a '.git' directory.

The patch fixes this by relaxing the existing detection a little bit.

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Acked-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agogit-send-email: fix fallback code in extract_valid_address()
Krzysztof Mazur [Thu, 22 Nov 2012 18:12:09 +0000 (19:12 +0100)] 
git-send-email: fix fallback code in extract_valid_address()

In the fallback check, used when Email::Valid is not available, the
extract_valid_address() uses $1 without checking for success of matching
regex. The $1 variable may still hold the result of previous match,
which is the address when email address was in '<>' or be undefined
otherwise.

Now if match fails undefined value is always returned to indicate error.
The same value is used by Email::Valid->address() in that case.

Previously 'foo@bar' address was rejected by Email::Valid and fallback,
but '<foo@bar>' was rejected by Email::Valid, but accepted by fallback.

Signed-off-by: Krzysztof Mazur <krzysiek@podlesie.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agogit-send-email: remove garbage after email address
Krzysztof Mazur [Thu, 22 Nov 2012 18:12:08 +0000 (19:12 +0100)] 
git-send-email: remove garbage after email address

In some cases it is useful to add additional information after the
email address on the Cc: footer in a commit log, for instance:

"Cc: Stable kernel <stable@vger.kernel.org> #v3.4 v3.5 v3.6"

However, git-send-email refuses to pick up such an invalid address
when the Email::Valid perl module is available, or just uses the
whole line as the email address.

In sanitize_address(), remove everything after the email address, so
that the result is a valid email address that makes Email::Valid
happy.

Signed-off-by: Krzysztof Mazur <krzysiek@podlesie.net>
Tested-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoUpdate draft release notes to 1.8.1
Junio C Hamano [Mon, 26 Nov 2012 02:52:42 +0000 (18:52 -0800)] 
Update draft release notes to 1.8.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'rr/submodule-diff-config'
Junio C Hamano [Mon, 26 Nov 2012 02:44:50 +0000 (18:44 -0800)] 
Merge branch 'rr/submodule-diff-config'

Allow "git diff --submodule=log" to set to be the default via
configuration.

* rr/submodule-diff-config:
  submodule: display summary header in bold
  diff: rename "set" variable
  diff: introduce diff.submodule configuration variable
  Documentation: move diff.wordRegex from config.txt to diff-config.txt

11 years agoMerge branch 'nd/maint-compat-fnmatch-fix'
Junio C Hamano [Mon, 26 Nov 2012 02:44:41 +0000 (18:44 -0800)] 
Merge branch 'nd/maint-compat-fnmatch-fix'

* nd/maint-compat-fnmatch-fix:
  compat/fnmatch: fix off-by-one character class's length check

11 years agoMerge branch 'bc/do-not-recurse-in-die'
Junio C Hamano [Mon, 26 Nov 2012 02:44:36 +0000 (18:44 -0800)] 
Merge branch 'bc/do-not-recurse-in-die'

* bc/do-not-recurse-in-die:
  usage.c: detect recursion in die routines and bail out immediately

11 years agoMerge branch 'mk/complete-tcsh'
Junio C Hamano [Mon, 26 Nov 2012 02:44:28 +0000 (18:44 -0800)] 
Merge branch 'mk/complete-tcsh'

* mk/complete-tcsh:
  tcsh-completion re-using git-completion.bash

11 years agoMerge branch 'jh/update-ref-d-through-symref'
Junio C Hamano [Mon, 26 Nov 2012 02:44:17 +0000 (18:44 -0800)] 
Merge branch 'jh/update-ref-d-through-symref'

"update-ref -d --deref SYM" to delete a ref through a symbolic ref
that points to it did not remove it correctly.

* jh/update-ref-d-through-symref:
  Fix failure to delete a packed ref through a symref
  t1400-update-ref: Add test verifying bug with symrefs in delete_ref()

11 years agoMerge branch 'lt/diff-stat-show-0-lines'
Junio C Hamano [Mon, 26 Nov 2012 02:44:06 +0000 (18:44 -0800)] 
Merge branch 'lt/diff-stat-show-0-lines'

We failed to mention a file without any content change but whose
permission bit was modified, or (worse yet) a new file without any
content in the "git diff --stat" output.

* lt/diff-stat-show-0-lines:
  Fix "git diff --stat" for interesting - but empty - file changes

11 years agoMerge branch 'sg/complete-help-undup'
Junio C Hamano [Mon, 26 Nov 2012 02:43:54 +0000 (18:43 -0800)] 
Merge branch 'sg/complete-help-undup'

* sg/complete-help-undup:
  completion: remove 'help' duplicate from porcelain commands

11 years agoSync with 1.8.0.1
Junio C Hamano [Mon, 26 Nov 2012 02:40:55 +0000 (18:40 -0800)] 
Sync with 1.8.0.1

11 years agoGit 1.8.0.1 v1.8.0.1
Junio C Hamano [Mon, 26 Nov 2012 02:40:34 +0000 (18:40 -0800)] 
Git 1.8.0.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'jk/checkout-out-of-unborn' into maint
Junio C Hamano [Mon, 26 Nov 2012 02:35:50 +0000 (18:35 -0800)] 
Merge branch 'jk/checkout-out-of-unborn' into maint

* jk/checkout-out-of-unborn:
  checkout: print a message when switching unborn branches

11 years agoMerge branch 'cn/config-missing-path' into maint
Junio C Hamano [Mon, 26 Nov 2012 02:35:46 +0000 (18:35 -0800)] 
Merge branch 'cn/config-missing-path' into maint

* cn/config-missing-path:
  config: don't segfault when given --path with a missing value

11 years agoMerge branch 'jk/maint-gitweb-xss' into maint
Junio C Hamano [Mon, 26 Nov 2012 02:35:41 +0000 (18:35 -0800)] 
Merge branch 'jk/maint-gitweb-xss' into maint

Fixes an XSS vulnerability in gitweb.

* jk/maint-gitweb-xss:
  gitweb: escape html in rss title

11 years agoCompletion must sort before using uniq
Marc Khouzam [Fri, 23 Nov 2012 14:02:22 +0000 (09:02 -0500)] 
Completion must sort before using uniq

The user can be presented with invalid completion results
when trying to complete a 'git checkout' command.  This can happen
when using a branch name prefix that matches multiple remote branches.

For example, if available branches are:
  master
  remotes/GitHub/maint
  remotes/GitHub/master
  remotes/origin/maint
  remotes/origin/master

When performing completion on 'git checkout ma' the user will be
given the choices:
  maint
  master

However, 'git checkout maint' will fail in this case, although
completion previously said 'maint' was valid.  Furthermore, when
performing completion on 'git checkout mai', no choices will be
suggested.  So, the user is first told that the branch name
'maint' is valid, but when trying to complete 'mai' into 'maint',
that completion is no longer valid.

The completion results should never propose 'maint' as a valid
branch name, since 'git checkout' will refuse it.

The reason for this bug is that the uniq program only
works with sorted input.  The man page states
"uniq prints the unique lines in a sorted file".

When __git_refs uses the guess heuristic employed by checkout for
tracking branches it wants to consider remote branches but only if
the branch name is unique.  To do that, it calls 'uniq -u'.  However
the input given to 'uniq -u' is not sorted.

Therefore, in the above example, when dealing with 'git checkout ma',
"__git_refs '' 1" will find the following list:
  master
  maint
  master
  maint
  master

which, when passed to 'uniq -u' will remain the same.  Therefore
'maint' will be wrongly suggested as a valid option.

When dealing with 'git checkout mai', the list will be:
  maint
  maint

which happens to be sorted and will be emptied by 'uniq -u',
properly ignoring 'maint'.

A solution for preventing the completion script from suggesting
such invalid branch names is to first call 'sort' and then 'uniq -u'.

Signed-off-by: Marc Khouzam <marc.khouzam@gmail.com>
Reviewed-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoTeach rm to remove submodules when given with a trailing '/'
Jens Lehmann [Thu, 22 Nov 2012 22:32:26 +0000 (23:32 +0100)] 
Teach rm to remove submodules when given with a trailing '/'

Doing a "git rm submod/" on a submodule results in an error:
fatal: pathspec 'submod/' did not match any files
This is really inconvenient as e.g. using TAB completion in a shell on a
submodule automatically adds the trailing '/' when it completes the path
of the submodule directory. The user has then to remove the '/' herself to
make a "git rm" succeed. Doing a "git rm -r somedir/" is working fine, so
there is no reason why that shouldn't work for submodules too.

Teach git rm to not error out when a '/' is appended to the path of a
submodule. Achieve this by chopping off trailing slashes from the path
names given if they represent directories. Add tests to make sure that
logic only applies to directories and not to files.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agol10n: vi.po: Update follow git-v1.8.0-273-g2d242
Tran Ngoc Quan [Sat, 24 Nov 2012 00:37:35 +0000 (07:37 +0700)] 
l10n: vi.po: Update follow git-v1.8.0-273-g2d242

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
11 years agol10n: Update Swedish translation (1975t0f0u)
Peter Krefting [Fri, 23 Nov 2012 07:59:11 +0000 (08:59 +0100)] 
l10n: Update Swedish translation (1975t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
11 years agol10n: vi.po: update to git-v1.7.12-437-g1084f
Tran Ngoc Quan [Wed, 31 Oct 2012 01:19:59 +0000 (08:19 +0700)] 
l10n: vi.po: update to git-v1.7.12-437-g1084f

 * updated all new messages (1967t0f0u)
 * make quote become more good-looking

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
11 years agol10n: Update git.pot (14 new, 3 removed messages)
Jiang Xin [Fri, 23 Nov 2012 06:29:02 +0000 (14:29 +0800)] 
l10n: Update git.pot (14 new, 3 removed messages)

Generate po/git.pot from v1.8.0-273-g2d242, and there are 14 new and 3
removed messages.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
11 years agoUpdate draft release notes for 1.8.1
Junio C Hamano [Wed, 21 Nov 2012 21:23:18 +0000 (13:23 -0800)] 
Update draft release notes for 1.8.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'esr/maint-doc-fast-import'
Junio C Hamano [Wed, 21 Nov 2012 21:32:48 +0000 (13:32 -0800)] 
Merge branch 'esr/maint-doc-fast-import'

* esr/maint-doc-fast-import:
  doc/fast-import: clarify how content states are built

11 years agoMerge branch 'wtk/submodule-doc-fixup'
Junio C Hamano [Wed, 21 Nov 2012 21:25:42 +0000 (13:25 -0800)] 
Merge branch 'wtk/submodule-doc-fixup'

* wtk/submodule-doc-fixup:
  git-submodule: wrap branch option with "<>" in usage strings.

11 years agoMerge branch 'so/prompt-command'
Junio C Hamano [Wed, 21 Nov 2012 21:17:01 +0000 (13:17 -0800)] 
Merge branch 'so/prompt-command'

Updates __git_ps1 so that it can be used as $PROMPT_COMMAND,
instead of being used for command substitution in $PS1, to embed
color escape sequences in its output.

* so/prompt-command:
  coloured git-prompt: paint detached HEAD marker in red
  Fix up colored git-prompt
  show color hints based on state of the git tree
  Allow __git_ps1 to be used in PROMPT_COMMAND

11 years agoMerge branch 'jk/config-ignore-duplicates'
Junio C Hamano [Wed, 21 Nov 2012 21:16:44 +0000 (13:16 -0800)] 
Merge branch 'jk/config-ignore-duplicates'

Drop duplicate detection from "git-config --get"; this lets it
better match the internal config callbacks, which clears up some
corner cases with includes.

* jk/config-ignore-duplicates:
  builtin/config.c: Fix a sparse warning
  git-config: use git_config_with_options
  git-config: do not complain about duplicate entries
  git-config: collect values instead of immediately printing
  git-config: fix regexp memory leaks on error conditions
  git-config: remove memory leak of key regexp
  t1300: test "git config --get-all" more thoroughly
  t1300: remove redundant test
  t1300: style updates

11 years agoMerge branch 'jk/maint-http-half-auth-fetch'
Junio C Hamano [Wed, 21 Nov 2012 19:59:29 +0000 (11:59 -0800)] 
Merge branch 'jk/maint-http-half-auth-fetch'

Finishing touches to squelch a compiler warning.

* jk/maint-http-half-auth-fetch:
  remote-curl.c: Fix a compiler warning

11 years agogitweb: make remote_heads config setting work
Phil Pennock [Mon, 5 Nov 2012 23:50:47 +0000 (18:50 -0500)] 
gitweb: make remote_heads config setting work

Git configuration items can not contain underscores in their section
and bottom-level variable name; the 'remote_heads' feature can not
be enabled on a per-repository basis with that name.

This changes the git-config option to be `gitweb.remoteheads` but does
not change the gitweb.conf option, to avoid backwards compatibility
issues.  We strip underscores from keys before looking through
git-config output for them.

An existing check on keynames was overly eager to reject non-word
letters, but if we ever start using three-level names, the middle
level string can contain almost anything, so fix that as well while
we are in the vicinity.

Signed-off-by: Phil Pennock <phil@apcera.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoremote-curl.c: Fix a compiler warning
Ramsay Jones [Wed, 21 Nov 2012 19:08:51 +0000 (19:08 +0000)] 
remote-curl.c: Fix a compiler warning

In particular, gcc issues an "'gzip_size' might be used uninitialized"
warning (-Wuninitialized). However, this warning is a false positive,
since the 'gzip_size' variable would not, in fact, be used uninitialized.
In order to suppress the warning, we simply initialise the variable to
zero in it's declaration.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agocompat/fnmatch: fix off-by-one character class's length check
Nguyễn Thái Ngọc Duy [Sun, 11 Nov 2012 10:13:57 +0000 (17:13 +0700)] 
compat/fnmatch: fix off-by-one character class's length check

Character class "xdigit" is the only one that hits 6 character limit
defined by CHAR_CLASS_MAX_LENGTH. All other character classes are 5
character long and therefore never caught by this.

This should make xdigit tests in t3070 pass on Windows.

Reported-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoSixth batch for 1.8.1
Junio C Hamano [Tue, 20 Nov 2012 18:46:29 +0000 (10:46 -0800)] 
Sixth batch for 1.8.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'ml/cygwin-mingw-headers'
Junio C Hamano [Tue, 20 Nov 2012 18:44:29 +0000 (10:44 -0800)] 
Merge branch 'ml/cygwin-mingw-headers'

Make git compile on cygwin with newer header files.

* ml/cygwin-mingw-headers:
  USE CGYWIN_V15_WIN32API as macro to select api for cygwin
  Update cygwin.c for new mingw-64 win32 api headers

11 years agoMerge branch 'jk/checkout-out-of-unborn'
Junio C Hamano [Tue, 20 Nov 2012 18:43:18 +0000 (10:43 -0800)] 
Merge branch 'jk/checkout-out-of-unborn'

* jk/checkout-out-of-unborn:
  checkout: print a message when switching unborn branches

11 years agoMerge branch 'cn/config-missing-path'
Junio C Hamano [Tue, 20 Nov 2012 18:40:46 +0000 (10:40 -0800)] 
Merge branch 'cn/config-missing-path'

"git config --path $key" segfaulted on "[section] key" (a boolean
"true" spelled without "=", not "[section] key = true").

* cn/config-missing-path:
  config: don't segfault when given --path with a missing value

11 years agoMerge branch 'jl/submodule-rm'
Junio C Hamano [Tue, 20 Nov 2012 18:40:31 +0000 (10:40 -0800)] 
Merge branch 'jl/submodule-rm'

* jl/submodule-rm:
  docs: move submodule section

11 years agoMerge branch 'mg/replace-resolve-delete'
Junio C Hamano [Tue, 20 Nov 2012 18:38:32 +0000 (10:38 -0800)] 
Merge branch 'mg/replace-resolve-delete'

Be more user friendly to people using "git replace -d".

* mg/replace-resolve-delete:
  replace: parse revision argument for -d

11 years agoMerge branch 'jk/maint-gitweb-xss'
Junio C Hamano [Tue, 20 Nov 2012 18:37:27 +0000 (10:37 -0800)] 
Merge branch 'jk/maint-gitweb-xss'

Fixes an XSS vulnerability in gitweb.

* jk/maint-gitweb-xss:
  gitweb: escape html in rss title

11 years agoMerge branch 'rh/maint-gitweb-highlight-ext'
Junio C Hamano [Tue, 20 Nov 2012 18:35:53 +0000 (10:35 -0800)] 
Merge branch 'rh/maint-gitweb-highlight-ext'

Fixes a clever misuse of perl's list interpretation.

* rh/maint-gitweb-highlight-ext:
  gitweb.perl: fix %highlight_ext mappings

11 years agoMerge branch 'pw/maint-p4-rcs-expansion-newline'
Junio C Hamano [Tue, 20 Nov 2012 18:34:15 +0000 (10:34 -0800)] 
Merge branch 'pw/maint-p4-rcs-expansion-newline'

I do not have p4 to play with, but looks obviously correct to me.

* pw/maint-p4-rcs-expansion-newline:
  git p4: RCS expansion should not span newlines

11 years agoMerge branch 'mh/alt-odb-string-list-cleanup'
Junio C Hamano [Tue, 20 Nov 2012 18:34:08 +0000 (10:34 -0800)] 
Merge branch 'mh/alt-odb-string-list-cleanup'

Cleanups in the alternates code. Fixes a potential bug and makes the
code much cleaner.

* mh/alt-odb-string-list-cleanup:
  link_alt_odb_entries(): take (char *, len) rather than two pointers
  link_alt_odb_entries(): use string_list_split_in_place()

11 years agoMerge branch 'ta/doc-cleanup'
Junio C Hamano [Tue, 20 Nov 2012 18:32:58 +0000 (10:32 -0800)] 
Merge branch 'ta/doc-cleanup'

* ta/doc-cleanup:
  Documentation: build html for all files in technical and howto
  Documentation/howto: convert plain text files to asciidoc
  Documentation/technical: convert plain text files to asciidoc
  Change headline of technical/send-pack-pipeline.txt to not confuse its content with content from git-send-pack.txt
  Shorten two over-long lines in git-bisect-lk2009.txt by abbreviating some sha1
  Split over-long synopsis in git-fetch-pack.txt into several lines

11 years agoMerge branch 'kb/preload-index-more'
Junio C Hamano [Tue, 20 Nov 2012 18:32:10 +0000 (10:32 -0800)] 
Merge branch 'kb/preload-index-more'

Use preloadindex in more places, which has a nice speedup on systems
with slow stat calls (and even on Linux).

* kb/preload-index-more:
  update-index/diff-index: use core.preloadindex to improve performance

11 years agoMerge branch 'jk/maint-http-half-auth-fetch'
Junio C Hamano [Tue, 20 Nov 2012 18:30:17 +0000 (10:30 -0800)] 
Merge branch 'jk/maint-http-half-auth-fetch'

Fixes fetch from servers that ask for auth only during the actual
packing phase. This is not really a recommended configuration, but it
cleans up the code at the same time.

* jk/maint-http-half-auth-fetch:
  remote-curl: retry failed requests for auth even with gzip
  remote-curl: hoist gzip buffer size to top of post_rpc

11 years agoSync with maint
Junio C Hamano [Tue, 20 Nov 2012 18:16:34 +0000 (10:16 -0800)] 
Sync with maint

* maint:
  Further preparation for 1.8.0.1

11 years agoFurther preparation for 1.8.0.1
Junio C Hamano [Tue, 20 Nov 2012 18:16:14 +0000 (10:16 -0800)] 
Further preparation for 1.8.0.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'mg/maint-pull-suggest-upstream-to' into maint
Junio C Hamano [Tue, 20 Nov 2012 18:15:09 +0000 (10:15 -0800)] 
Merge branch 'mg/maint-pull-suggest-upstream-to' into maint

* mg/maint-pull-suggest-upstream-to:
  push/pull: adjust missing upstream help text to changed interface

11 years agoMerge branch 'mm/maint-doc-commit-edit' into maint
Junio C Hamano [Tue, 20 Nov 2012 18:14:55 +0000 (10:14 -0800)] 
Merge branch 'mm/maint-doc-commit-edit' into maint

* mm/maint-doc-commit-edit:
  Document 'git commit --no-edit' explicitly

11 years agoMerge branch 'as/maint-doc-fix-no-post-rewrite' into maint
Junio C Hamano [Tue, 20 Nov 2012 18:14:46 +0000 (10:14 -0800)] 
Merge branch 'as/maint-doc-fix-no-post-rewrite' into maint

* as/maint-doc-fix-no-post-rewrite:
  commit: fixup misplacement of --no-post-rewrite description

11 years agoMerge branch 'rs/lock-correct-ref-during-delete' into maint
Junio C Hamano [Tue, 20 Nov 2012 18:14:41 +0000 (10:14 -0800)] 
Merge branch 'rs/lock-correct-ref-during-delete' into maint

* rs/lock-correct-ref-during-delete:
  refs: lock symref that is to be deleted, not its target

11 years agoMerge branch 'rf/maint-mailmap-off-by-one' into maint
Junio C Hamano [Tue, 20 Nov 2012 18:14:28 +0000 (10:14 -0800)] 
Merge branch 'rf/maint-mailmap-off-by-one' into maint

* rf/maint-mailmap-off-by-one:
  mailmap: avoid out-of-bounds memory access

11 years agoMerge branch 'jk/maint-diff-grep-textconv' into maint
Junio C Hamano [Tue, 20 Nov 2012 18:03:12 +0000 (10:03 -0800)] 
Merge branch 'jk/maint-diff-grep-textconv' into maint

"git diff -G<pattern>" did not honor textconv filter when looking
for changes.

* jk/maint-diff-grep-textconv:
  diff_grep: use textconv buffers for add/deleted files

11 years agoMerge branch 'js/format-2047' into maint
Junio C Hamano [Tue, 20 Nov 2012 17:57:44 +0000 (09:57 -0800)] 
Merge branch 'js/format-2047' into maint

Various rfc2047 quoting issues around a non-ASCII name on the From:
line in the output from format-patch have been corrected.

* js/format-2047:
  format-patch tests: check quoting/encoding in To: and Cc: headers
  format-patch: fix rfc2047 address encoding with respect to rfc822 specials
  format-patch: make rfc2047 encoding more strict
  format-patch: introduce helper function last_line_length()
  format-patch: do not wrap rfc2047 encoded headers too late
  format-patch: do not wrap non-rfc2047 headers too early
  utf8: fix off-by-one wrapping of text

11 years agocompletion: start moving to the new zsh completion
Felipe Contreras [Sun, 18 Nov 2012 11:08:09 +0000 (12:08 +0100)] 
completion: start moving to the new zsh completion

Zsh's bash completion emulation is buggy, not properly maintained, and
we have some workarounds in place for different bugs that appeared in
various versions.

Since I'm the only one that has worked on that code lately[1], it might make
snese to use the code I wrote specifically for git.

The advantages are:

 1) Less workarounds

   * No need to hack __get_comp_words_by_ref
   * No need to hack IFS or words

 2) Improved features

   * 'git show master' now properly adds a space at the end (IFS bug)
   * 'git checkout --conflict=' now properly returns the sub-items
     (missing feature)

 3) Consolidated code

   * It's all now in a single chunk, and it's basically the same as
     git-completion.zsh

Since there's some interest in moving the zsh-specific code out of this
script, lets go ahead and warn the users that they should be using
git-completion.zsh.

[1] http://zsh.git.sourceforge.net/git/gitweb.cgi?p=zsh/zsh;a=history;f=Completion/bashcompinit

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agocompletion: add new zsh completion
Felipe Contreras [Sun, 18 Nov 2012 11:08:08 +0000 (12:08 +0100)] 
completion: add new zsh completion

It seems there's always issues with zsh's bash completion emulation.
I've tried to fix as many as I could[1], and most of the fixes are already
in the latest version of zsh, but still, there are issues.

There is no point going through all that pain; the emulation is easy to
achieve, and this patch works better than zsh's bash completion
emulation.

[1] http://zsh.git.sourceforge.net/git/gitweb.cgi?p=zsh/zsh;a=commitdiff;h=23907bb840c80eef99eabba17e086e44c9b2d3fc

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoUSE CGYWIN_V15_WIN32API as macro to select api for cygwin
Mark Levedahl [Sun, 18 Nov 2012 21:16:52 +0000 (16:16 -0500)] 
USE CGYWIN_V15_WIN32API as macro to select api for cygwin

The previous macro was confusing to some, and did not include "cygwin" in
its name. The updated name more clearly expresses a choice of the
win32api implementation that shipped with version 1.5 of cygwin.

Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoSync with maint
Junio C Hamano [Mon, 19 Nov 2012 03:48:31 +0000 (19:48 -0800)] 
Sync with maint

11 years agoStart preparing for 1.8.0.1
Junio C Hamano [Mon, 19 Nov 2012 03:47:19 +0000 (19:47 -0800)] 
Start preparing for 1.8.0.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 years agoMerge branch 'sz/maint-curl-multi-timeout' into maint
Junio C Hamano [Mon, 19 Nov 2012 03:44:36 +0000 (19:44 -0800)] 
Merge branch 'sz/maint-curl-multi-timeout' into maint

Sometimes curl_multi_timeout() function suggested a wrong timeout
value when there is no file descriptors to wait on and the http
transport ended up sleeping for minutes in select(2) system call.  A
workaround has been added for this.

* sz/maint-curl-multi-timeout:
  Fix potential hang in https handshake

11 years agoMerge branch 'po/maint-refs-replace-docs' into maint
Junio C Hamano [Mon, 19 Nov 2012 03:34:09 +0000 (19:34 -0800)] 
Merge branch 'po/maint-refs-replace-docs' into maint

The refs/replace hierarchy was not mentioned in the
repository-layout docs.

* po/maint-refs-replace-docs:
  Doc repository-layout: Show refs/replace

11 years agoMerge branch 'ph/pull-rebase-detached' into maint
Junio C Hamano [Mon, 19 Nov 2012 03:33:45 +0000 (19:33 -0800)] 
Merge branch 'ph/pull-rebase-detached' into maint

"git pull --rebase" run while the HEAD is detached tried to find
the upstream branch of the detached HEAD (which by definition
does not exist) and emitted unnecessary error messages.

* ph/pull-rebase-detached:
  git-pull: Avoid merge-base on detached head

11 years agoMerge branch 'mm/maint-doc-remote-tracking' into maint
Junio C Hamano [Mon, 19 Nov 2012 03:33:20 +0000 (19:33 -0800)] 
Merge branch 'mm/maint-doc-remote-tracking' into maint

Update "remote tracking branch" in the documentation to
"remote-tracking branch".

* mm/maint-doc-remote-tracking:
  Documentation: remote tracking branch -> remote-tracking branch

11 years agoMerge branch 'rs/branch-del-symref' into maint
Junio C Hamano [Mon, 19 Nov 2012 03:32:58 +0000 (19:32 -0800)] 
Merge branch 'rs/branch-del-symref' into maint

A symbolic ref refs/heads/SYM was not correctly removed with "git
branch -d SYM"; the command removed the ref pointed by SYM instead.

* rs/branch-del-symref:
  branch: show targets of deleted symrefs, not sha1s
  branch: skip commit checks when deleting symref branches
  branch: delete symref branch, not its target
  branch: factor out delete_branch_config()
  branch: factor out check_branch_commit()

11 years agoMerge branch 'nd/grep-true-path' into maint
Junio C Hamano [Mon, 19 Nov 2012 03:32:30 +0000 (19:32 -0800)] 
Merge branch 'nd/grep-true-path' into maint

"git grep -e pattern <tree>" asked the attribute system to read
"<tree>:.gitattributes" file in the working tree, which was
nonsense.

* nd/grep-true-path:
  grep: stop looking at random places for .gitattributes

11 years agoMerge branch 'jc/grep-pcre-loose-ends' (early part) into maint
Junio C Hamano [Mon, 19 Nov 2012 03:32:11 +0000 (19:32 -0800)] 
Merge branch 'jc/grep-pcre-loose-ends' (early part) into maint

"git log -F -E --grep='<ere>'" failed to use the given <ere>
pattern as extended regular expression, and instead looked for the
string literally.

* 'jc/grep-pcre-loose-ends' (early part):
  log --grep: use the same helper to set -E/-F options as "git grep"
  revisions: initialize revs->grep_filter using grep_init()
  grep: move pattern-type bits support to top-level grep.[ch]
  grep: move the configuration parsing logic to grep.[ch]
  builtin/grep.c: make configuration callback more reusable

11 years agoMerge branch 'da/mergetools-p4' into maint
Junio C Hamano [Mon, 19 Nov 2012 03:31:40 +0000 (19:31 -0800)] 
Merge branch 'da/mergetools-p4' into maint

"git mergetool" feeds /dev/null as a common ancestor when dealing
with an add/add conflict, but p4merge backend cannot handle it. Work
it around by passing a temporary empty file.

* da/mergetools-p4:
  mergetools/p4merge: Handle "/dev/null"

11 years agoMerge branch 'jc/test-say-color-avoid-echo-escape' into maint
Junio C Hamano [Mon, 19 Nov 2012 03:31:13 +0000 (19:31 -0800)] 
Merge branch 'jc/test-say-color-avoid-echo-escape' into maint

The "say" function in the test scaffolding incorrectly allowed
"echo" to interpret "\a" as if it were a C-string asking for a BEL
output.

* jc/test-say-color-avoid-echo-escape:
  test-lib: Fix say_color () not to interpret \a\b\c in the message

11 years agoMerge branch 'bw/config-lift-variable-name-length-limit' into maint
Junio C Hamano [Mon, 19 Nov 2012 03:29:44 +0000 (19:29 -0800)] 
Merge branch 'bw/config-lift-variable-name-length-limit' into maint

The configuration parser had an unnecessary hardcoded limit on
variable names that was not checked consistently.

* bw/config-lift-variable-name-length-limit:
  Remove the hard coded length limit on variable names in config files