Code

git.git
15 years agotypo fix: Directory `...' exist, ...: s/exist/exists/
Jim Meyering [Tue, 29 Sep 2009 05:42:25 +0000 (07:42 +0200)]
typo fix: Directory `...' exist, ...: s/exist/exists/

Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agoDocumentation/git-gc.txt: default --aggressive window is 250, not 10
Brandon Casey [Mon, 28 Sep 2009 14:56:00 +0000 (09:56 -0500)]
Documentation/git-gc.txt: default --aggressive window is 250, not 10

The default --aggressive window has been 250 since 1c192f34 "gc
--aggressive: make it really aggressive", released in git v1.6.3.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agoCorrect minor typo in post-receive hook template
Frederik Schwarzer [Mon, 28 Sep 2009 08:25:55 +0000 (10:25 +0200)]
Correct minor typo in post-receive hook template

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agogit branch -D: give a better error message when lockfile creation fails
Miklos Vajna [Sat, 26 Sep 2009 23:15:09 +0000 (01:15 +0200)]
git branch -D: give a better error message when lockfile creation fails

Previously the old error message just told the user that it was not
possible to delete the ref from the packed-refs file. Give instructions
on how to resolve the problem.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agoparse-opt: ignore negation of OPT_NONEG for ambiguity checks
Andreas Schwab [Fri, 25 Sep 2009 18:44:44 +0000 (20:44 +0200)]
parse-opt: ignore negation of OPT_NONEG for ambiguity checks

parse_long_opt always matches both --opt and --no-opt for any option
"opt", and only get_value checks whether --no-opt is actually valid.
Since the options for git branch contains both "no-merged" and "merged"
there are two matches for --no-merge, but no exact match.  With this
patch the negation of a NONEG option is rejected earlier, but it changes
the error message from "option `no-opt' isn't available" to "unknown
option `no-opt'".

[jk: added test]

Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agomake 'git clone' ask the remote only for objects it cares about
Nicolas Pitre [Sat, 26 Sep 2009 03:54:42 +0000 (23:54 -0400)]
make 'git clone' ask the remote only for objects it cares about

Current behavior of 'git clone' when not using --mirror is to fetch
everything from the peer, and then filter out unwanted refs just before
writing them out to the cloned repository.  This may become highly
inefficient if the peer has an unusual ref namespace, or if it simply
has "remotes" refs of its own, and those locally unwanted refs are
connecting to a large set of objects which becomes unreferenced as soon
as they are fetched.

Let's filter out those unwanted refs from the peer _before_ asking it
what refs we want to fetch instead, which is the most logical thing to
do anyway.

Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agogit-gui: fix use of uninitialized variable
Jens Lehmann [Thu, 24 Sep 2009 16:56:28 +0000 (18:56 +0200)]
git-gui: fix use of uninitialized variable

This fixes a bug introduced by the "display summary when showing diff of a
submodule" patch. It lead to a "no such variable" error when opening the
diff context menu while no diff was shown.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agogit-am: force egrep to use correct characters set
Christian Himpel [Fri, 25 Sep 2009 16:43:20 +0000 (18:43 +0200)]
git-am: force egrep to use correct characters set

According to egrep(1) the US-ASCII table is used when LC_ALL=C is set.
We do not rely here on the LC_ALL value we get from the environment.

Signed-off-by: Christian Himpel <chressie@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agogit-am: fixed patch_format detection according to RFC2822
Christian Himpel [Fri, 25 Sep 2009 15:14:31 +0000 (17:14 +0200)]
git-am: fixed patch_format detection according to RFC2822

RFC2822 specifies in paragraph 3.6.8, that optional header fields are
made up of any printable US-ASCII character except ' ' (space) and ':'
(colon).

The pattern for the egrep command is changed to match all of these
characters.

Signed-off-by: Christian Himpel <chressie@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agosend-email: fix obscure error when encryption=tls and smtp cannot connect
Yakov Lerner [Fri, 25 Sep 2009 22:10:21 +0000 (15:10 -0700)]
send-email: fix obscure error when encryption=tls and smtp cannot connect

When encryption=tls and we cannot connect to the SMTP server,
git-send-email was printing an obtuse perl error:

  Can't call method "command" on an undefined value
  at git-send-email line 927.

This can occur when smtp host or port is misspelled, or the network
is down, and encryption has been set to tls.

Instead we expect some familiar "Cannot connect to SERVER:PORT"
message.  Fix it to print normal "smtp can't connect" diagnostics.

Signed-off-by: Yakov Lerner <iler.ml@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agobash: teach 'git checkout' options
SZEDER Gábor [Thu, 24 Sep 2009 12:23:15 +0000 (14:23 +0200)]
bash: teach 'git checkout' options

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agoperl/Makefile.PL: detect MakeMaker versions incompatible with DESTDIR
Brandon Casey [Thu, 24 Sep 2009 18:21:03 +0000 (13:21 -0500)]
perl/Makefile.PL: detect MakeMaker versions incompatible with DESTDIR

It appears that ExtUtils::MakeMaker versions older than 6.11 do not
implement the DESTDIR mechanism.  So add a test to the generated perl.mak
to detect when DESTDIR is used along with a too old ExtUtils::MakeMaker and
abort with a message suggesting the use of NO_PERL_MAKEMAKER.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agopull: Clarify "helpful" message for another corner case v1.6.5-rc2
Junio C Hamano [Sun, 13 Sep 2009 20:38:48 +0000 (13:38 -0700)]
pull: Clarify "helpful" message for another corner case

When the remote branch we asked for merging did not exist in the set of
fetched refs, we unconditionally hinted that it was because of lack of
configuration.  It is not necessarily so, and risks sending users for a
wild goose chase.

Make sure to check if that is indeed the case before telling a wild guess
to the user.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoUpdate "describe" documentation to match reality
Thiago Farina [Tue, 22 Sep 2009 23:48:06 +0000 (19:48 -0400)]
Update "describe" documentation to match reality

A sample "git describe -h" did not match what the program actually says.

Signed-off-by: Thiago Farina <tfransosi@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agobash: teach 'git reset --patch'
SZEDER Gábor [Tue, 15 Sep 2009 10:21:45 +0000 (12:21 +0200)]
bash: teach 'git reset --patch'

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agobash: update 'git stash' completion
SZEDER Gábor [Tue, 15 Sep 2009 10:21:44 +0000 (12:21 +0200)]
bash: update 'git stash' completion

This update adds 'git stash (apply|pop) --quiet' and all options known
to 'git stash save', and handles the DWIMery from 3c2eb80f (stash:
simplify defaulting to "save" and reject unknown options, 2009-08-18).
Care is taken to avoid offering subcommands in the DWIM case.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agobash: rename __git_find_subcommand() to __git_find_on_cmdline()
SZEDER Gábor [Tue, 15 Sep 2009 10:21:43 +0000 (12:21 +0200)]
bash: rename __git_find_subcommand() to __git_find_on_cmdline()

__git_find_subcommand() was originally meant to check whether
subcommands are already present on the command line.  But the code is
general enough to be used for checking the presence of command line
options as well, and the next commit will use it for that purpose, so
let's give it a more general name.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agopay attention to DESTDIR when building with NO_PERL_MAKEMAKER
Junio C Hamano [Mon, 21 Sep 2009 19:44:05 +0000 (12:44 -0700)]
pay attention to DESTDIR when building with NO_PERL_MAKEMAKER

Building with prefix=/some/where and temporarily installing it to
elsewhere for tar'ing up is done with:

    make prefix=/some/where
    make prefix=/some/where DESTDIR=/else/where install

Make handcrafted perl/perl.mak without NO_PERL_MAKEMAKER honour DESTDIR.

Ancient ExtUtils::MakeMaker (pre 6.11?) has the same issue, but recent
versions of Perl ships with at leat 6.17; this patch does not address that
issue.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agopre-commit.sample: add comment re tr portability; fix grammar
Jim Meyering [Mon, 21 Sep 2009 11:00:34 +0000 (13:00 +0200)]
pre-commit.sample: add comment re tr portability; fix grammar

Add a comment explaining why square brackets around a tr range
are not only ok, but actually required in this case.
Correct spelling and grammar.

Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoUpdate Release Notes to 1.6.5
Junio C Hamano [Tue, 22 Sep 2009 01:14:12 +0000 (18:14 -0700)]
Update Release Notes to 1.6.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agotest-genrandom: ensure stdout is set to _O_BINARY on Windows
Johannes Sixt [Mon, 21 Sep 2009 07:34:58 +0000 (09:34 +0200)]
test-genrandom: ensure stdout is set to _O_BINARY on Windows

Commit a6ca8c62 (Set _O_BINARY as default fmode for both MinGW and MSVC)
removed the definition of _CRT_fmode from mingw.c. Before this commit,
since test-genrandom is linked against libgit.a, the MinGW process
initialization code would pick up that definition of _CRT_fmode, which was
initialized to _O_BINARY. After this commit, however, text mode is used
for std(in|out|err) because it is the default in absence of _CRT_fmode.
In order to fix that, we must use git-compat-util.h, which overrides
main() to set the mode to binary.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge git://git.kernel.org/pub/scm/gitk/gitk
Junio C Hamano [Mon, 21 Sep 2009 06:47:52 +0000 (23:47 -0700)]
Merge git://git.kernel.org/pub/scm/gitk/gitk

* git://git.kernel.org/pub/scm/gitk/gitk:
  gitk: Work around leftover temporary save file
  gitk: Show diff of commits at end of compare-commits output
  gitk: Update Swedish translation (280t0f0u)

15 years agogitk: Work around leftover temporary save file
Pat Thoyts [Tue, 15 Sep 2009 09:26:30 +0000 (10:26 +0100)]
gitk: Work around leftover temporary save file

If a file exists and is hidden on Windows the Tcl open command will
fail as the attributes provided in the CREAT call fail to match those
of the existing file.  Forcing removal of the temporary file before we
begin solves any problems caused by previous failures to save the
application settings.  An alternative would be to remove the hidden
attribute before calling 'open'.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
15 years agoMerge branch 'maint'
Junio C Hamano [Sun, 20 Sep 2009 19:13:47 +0000 (12:13 -0700)]
Merge branch 'maint'

* maint:
  push: Correctly initialize nonfastforward in transport_push.

15 years agopush: Correctly initialize nonfastforward in transport_push.
Matthieu Moy [Sun, 20 Sep 2009 17:33:20 +0000 (19:33 +0200)]
push: Correctly initialize nonfastforward in transport_push.

The variable is assigned unconditionally in print_push_status, but
print_push_status is not reached by all codepaths. In particular, this
fixes a bug where "git push ... nonexisting-branch" was complaining about
non-fast forward.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoTag GIT_VERSION when Git is built with MSVC
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:31 +0000 (10:20 +0200)]
Tag GIT_VERSION when Git is built with MSVC

This may help us debug issues on Windows, as we now can build Git
natively on Windows with both MinGW and MSVC.

Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoAdd scripts to generate projects for other buildsystems (MSVC vcproj, QMake)
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:30 +0000 (10:20 +0200)]
Add scripts to generate projects for other buildsystems (MSVC vcproj, QMake)

These scripts generate projects for the MSVC IDE (.vcproj files) or
QMake (.pro files), based on the output of a 'make -n MSVC=1 V=1' run.

This enables us to simply do the necesarry changes in the Makefile, and you
can update the other buildsystems by regenerating the files. Keeping the
other buildsystems up-to-date with main development.

The generator system is designed to easily drop in pm's for other
buildsystems as well, if someone has an itch. However, the focus has been
Windows development, so the 'engine' might need patches to support any
platform.

Also add some .gitignore entries for MSVC files.

Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoAdd README for MSVC build
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:29 +0000 (10:20 +0200)]
Add README for MSVC build

Based on original README patch from Frank Li, describe the steps
to build git with VS2008 (aka MSVC).

Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoAdd MSVC to Makefile
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:28 +0000 (10:20 +0200)]
Add MSVC to Makefile

Enable MSVC builds with GNU Make by simply calling
    make MSVC=1
(Debug build possible by adding DEBUG=1 as well)

Two scripts, clink.pl and lib.pl, are used to convert certain GCC
specific command line options into something MSVC understands.
By building for MSVC with GNU Make, we can ensure that the MSVC
port always follows the latest code, and does not lag behind due
to unmaintained NMake Makefile or IDE projects.

Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoDefine strncasecmp and ftruncate for MSVC
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:27 +0000 (10:20 +0200)]
Define strncasecmp and ftruncate for MSVC

Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMake usage of windows.h lean and mean
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:26 +0000 (10:20 +0200)]
Make usage of windows.h lean and mean

Centralize the include of windows.h in git-compat-util.h, turn on
WIN32_LEAN_AND_MEAN to avoid including plenty of other header files
which is not needed in Git. Also ensure we load winsock2.h first,
so we don't load the older winsock definitions at a later stage,
since they contain duplicate definitions.

When moving windows.h into git-compat-util.h, we need to protect
the definition of struct pollfd in mingw.h, since this file is used
by both MinGW and MSVC, and the latter defines this struct in
winsock2.h.

We need to keep the windows.h include in compat/win32.h, since its
shared by both MinGW and Cygwin, and we're not touching Cygwin in
this commit. The include in git-compat-util.h is protected with an
ifdef WIN32, which is not the case when compiling for Cygwin.

Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoAdd platform files for porting to MSVC
Frank Li [Wed, 16 Sep 2009 08:20:25 +0000 (10:20 +0200)]
Add platform files for porting to MSVC

Add msvc.c and msvc.h to build git under MSVC.

Signed-off-by: Frank Li <lznuaa@gmail.com>
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoAdd MinGW header files to build git with MSVC
Frank Li [Wed, 16 Sep 2009 08:20:24 +0000 (10:20 +0200)]
Add MinGW header files to build git with MSVC

Added the header files dirent.h, unistd.h and utime.h
Add alloca.h, which simply includes malloc.h, which defines alloca().

Signed-off-by: Frank Li <lznuaa@gmail.com>
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoAdd empty header files for MSVC port
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:23 +0000 (10:20 +0200)]
Add empty header files for MSVC port

MSVC lacks many of the header files included by git-compat-util.h; add
blank header files for these instead of going ifdef crazy.

Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoTest for WIN32 instead of __MINGW32_
Frank Li [Wed, 16 Sep 2009 08:20:22 +0000 (10:20 +0200)]
Test for WIN32 instead of __MINGW32_

The code which is conditional on MinGW32 is actually conditional on Windows.
Use the WIN32 symbol, which is defined by the MINGW32 and MSVC environments,
but not by Cygwin.

Define SNPRINTF_SIZE_CORR=1 for MSVC too, as its vsnprintf function does
not add NUL at the end of the buffer if the result fits the buffer size
exactly.

Signed-off-by: Frank Li <lznuaa@gmail.com>
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoFix __stdcall placement and function prototype
Frank Li [Wed, 16 Sep 2009 08:20:21 +0000 (10:20 +0200)]
Fix __stdcall placement and function prototype

MSVC requires __stdcall to be between the functions return value and the
function name, and that the function pointer type is in the form of

    return_type (WINAPI *function_name)(arguments...)

Signed-off-by: Frank Li <lznuaa@gmail.com>
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoSet _O_BINARY as default fmode for both MinGW and MSVC
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:20 +0000 (10:20 +0200)]
Set _O_BINARY as default fmode for both MinGW and MSVC

MinGW set the _CRT_fmode to set both the default fmode and _O_BINARY on
stdin/stdout/stderr. Rather use the main() define in mingw.h to set this
for both MinGW and MSVC.

This will ensure that a MinGW and MSVC build will handle input and output
identically.

Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoChange regerror() declaration from K&R style to ANSI C (C89)
Frank Li [Wed, 16 Sep 2009 08:20:19 +0000 (10:20 +0200)]
Change regerror() declaration from K&R style to ANSI C (C89)

The MSVC headers typedef errcode as int, and thus confused the compiler in
the K&R style definition. ANSI style deconfuses it.

Signed-off-by: Frank Li <lznuaa@gmail.com>
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoAdd include guards to compat/win32.h
Marius Storm-Olsen [Wed, 16 Sep 2009 08:20:18 +0000 (10:20 +0200)]
Add include guards to compat/win32.h

Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoAvoid declaration after statement
Frank Li [Wed, 16 Sep 2009 08:20:17 +0000 (10:20 +0200)]
Avoid declaration after statement

MSVC does not understand this C99 style.

Signed-off-by: Frank Li <lznuaa@gmail.com>
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agopack-objects: remove SP at the end of usage string
Thiago Farina [Fri, 18 Sep 2009 19:11:52 +0000 (12:11 -0700)]
pack-objects: remove SP at the end of usage string

These spaces immediately before the end of lines are unnecessary.

While at it, instead of using a single string literal with backslashes
at end of each line, split the lines into individual string literals
and tell the compiler to concatenate them.

Signed-off-by: Thiago Farina <tfransosi@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoUpdate the usage bundle string.
Thiago Farina [Thu, 17 Sep 2009 17:20:53 +0000 (13:20 -0400)]
Update the usage bundle string.

"git bundle -h" gives a single long line that is hard to read.  Rewrite it
into a multi-line format similar to the one used by other commands, e.g
"git stash -h".

Signed-off-by: Thiago Farina <tfransosi@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agofetch: Speed up fetch by rewriting find_non_local_tags
Julian Phillips [Thu, 17 Sep 2009 07:33:19 +0000 (08:33 +0100)]
fetch: Speed up fetch by rewriting find_non_local_tags

When trying to get a list of remote tags to see if we need to fetch
any we were doing a linear search for the matching tag ref for the
tag^{} commit entries.  This proves to be incredibly slow for large
numbers of tags.  Rewrite the function so that we build up a
string_list of refs to fetch and then process that instead.

As an extreme example, for a repository with 50000 tags (and just a
single commit on a single branch), a fetch that does nothing goes from
~1m50s to ~4.1s.

Signed-off-by: Julian Phillips <julian@quantumfyre.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agocvs: initialize empty password
Clemens Buchacher [Thu, 17 Sep 2009 07:21:02 +0000 (09:21 +0200)]
cvs: initialize empty password

If we do not read a password from the command line, and there are no
passwords stored in .cvspass, we have to initialize the password with
just "A".

This fixes a regression introduced by 3fb9d582 (Do not scramble
password read from .cvspass).

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge 1.6.4.4 in
Junio C Hamano [Wed, 16 Sep 2009 22:04:21 +0000 (15:04 -0700)]
Merge 1.6.4.4 in

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoGIT 1.6.4.4 v1.6.4.4
Junio C Hamano [Wed, 16 Sep 2009 21:53:26 +0000 (14:53 -0700)]
GIT 1.6.4.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'jc/maint-unpack-objects-strict' into maint
Junio C Hamano [Wed, 16 Sep 2009 21:45:18 +0000 (14:45 -0700)]
Merge branch 'jc/maint-unpack-objects-strict' into maint

* jc/maint-unpack-objects-strict:
  Fix "unpack-objects --strict"

Conflicts:
builtin-unpack-objects.c

15 years agoMerge branch 'tf/diff-whitespace-incomplete-line' into maint
Junio C Hamano [Wed, 16 Sep 2009 21:27:08 +0000 (14:27 -0700)]
Merge branch 'tf/diff-whitespace-incomplete-line' into maint

* tf/diff-whitespace-incomplete-line:
  xutils: Fix xdl_recmatch() on incomplete lines
  xutils: Fix hashing an incomplete line with whitespaces at the end

15 years agoMerge branch 'jk/maint-1.6.3-checkout-unborn' into maint
Junio C Hamano [Wed, 16 Sep 2009 21:26:56 +0000 (14:26 -0700)]
Merge branch 'jk/maint-1.6.3-checkout-unborn' into maint

* jk/maint-1.6.3-checkout-unborn:
  checkout: do not imply "-f" on unborn branches

15 years agoMerge branch 'jc/maint-checkout-index-to-prefix' into maint
Junio C Hamano [Wed, 16 Sep 2009 21:26:40 +0000 (14:26 -0700)]
Merge branch 'jc/maint-checkout-index-to-prefix' into maint

* jc/maint-checkout-index-to-prefix:
  check_path(): allow symlinked directories to checkout-index --prefix

15 years agoMerge branch 'jc/maint-1.6.0-blank-at-eof' into jc/maint-blank-at-eof
Junio C Hamano [Tue, 15 Sep 2009 18:21:10 +0000 (11:21 -0700)]
Merge branch 'jc/maint-1.6.0-blank-at-eof' into jc/maint-blank-at-eof

* jc/maint-1.6.0-blank-at-eof:
  diff -B: colour whitespace errors

15 years agoMerge branch 'jc/maint-1.6.0-blank-at-eof' (early part) into jc/maint-blank-at-eof
Junio C Hamano [Tue, 15 Sep 2009 18:20:46 +0000 (11:20 -0700)]
Merge branch 'jc/maint-1.6.0-blank-at-eof' (early part) into jc/maint-blank-at-eof

* 'jc/maint-1.6.0-blank-at-eof' (early part):
  diff.c: emit_add_line() takes only the rest of the line
  diff.c: split emit_line() from the first char and the rest of the line

15 years agoMerge branch 'jc/maint-1.6.0-blank-at-eof' (early part) into jc/maint-blank-at-eof
Junio C Hamano [Tue, 15 Sep 2009 10:38:30 +0000 (03:38 -0700)]
Merge branch 'jc/maint-1.6.0-blank-at-eof' (early part) into jc/maint-blank-at-eof

* 'jc/maint-1.6.0-blank-at-eof' (early part):
  diff.c: shuffling code around

15 years agoMerge branch 'jc/maint-1.6.0-blank-at-eof' (early part) into jc/maint-blank-at-eof
Junio C Hamano [Tue, 15 Sep 2009 10:28:08 +0000 (03:28 -0700)]
Merge branch 'jc/maint-1.6.0-blank-at-eof' (early part) into jc/maint-blank-at-eof

* 'jc/maint-1.6.0-blank-at-eof' (early part):
  diff --whitespace: fix blank lines at end
  core.whitespace: split trailing-space into blank-at-{eol,eof}
  diff --color: color blank-at-eof
  diff --whitespace=warn/error: fix blank-at-eof check
  diff --whitespace=warn/error: obey blank-at-eof
  diff.c: the builtin_diff() deals with only two-file comparison
  apply --whitespace: warn blank but not necessarily empty lines at EOF
  apply --whitespace=warn/error: diagnose blank at EOF
  apply.c: split check_whitespace() into two
  apply --whitespace=fix: detect new blank lines at eof correctly
  apply --whitespace=fix: fix handling of blank lines at the eof

15 years agodiff -B: colour whitespace errors
Junio C Hamano [Tue, 15 Sep 2009 01:44:01 +0000 (18:44 -0700)]
diff -B: colour whitespace errors

We used to send the old and new contents more or less straight out to the
output with only the original "old is red, new is green" colouring.  Now
all the necessary support routines have been prepared, call them with a
line of data at a time from the output code and have them check and color
whitespace errors in exactly the same way as they are called from the low
level diff callback routines.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agodiff.c: emit_add_line() takes only the rest of the line
Junio C Hamano [Tue, 15 Sep 2009 01:44:01 +0000 (18:44 -0700)]
diff.c: emit_add_line() takes only the rest of the line

As the first character on the line that is fed to this function is always
"+", it is pointless to send that along with the rest of the line.

This change will make it easier to reuse the logic when emitting the
rewrite diff, as we do not want to copy a line only to add "+"/"-"/" "
immediately before its first character when we produce rewrite diff
output.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agodiff.c: split emit_line() from the first char and the rest of the line
Junio C Hamano [Tue, 15 Sep 2009 01:44:01 +0000 (18:44 -0700)]
diff.c: split emit_line() from the first char and the rest of the line

A new helper function emit_line_0() takes the first line of diff output
(typically "-", " ", or "+") separately from the remainder of the line.
No other functional changes.

This change will make it easier to reuse the logic when emitting the
rewrite diff, as we do not want to copy a line only to add "+"/"-"/" "
immediately before its first character when we produce rewrite diff
output.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agodiff.c: shuffling code around
Junio C Hamano [Tue, 15 Sep 2009 01:44:01 +0000 (18:44 -0700)]
diff.c: shuffling code around

Move function, type, and structure definitions for fill_mmfile(),
count_trailing_blank(), check_blank_at_eof(), emit_line(),
new_blank_line_at_eof(), emit_add_line(), sane_truncate_fn, and
emit_callback up in the file, so that they can be refactored into helper
functions and reused by codepath for emitting rewrite patches.

This only moves the lines around to make the next two patches easier to
read.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agodiff --whitespace: fix blank lines at end
Junio C Hamano [Tue, 15 Sep 2009 05:05:57 +0000 (22:05 -0700)]
diff --whitespace: fix blank lines at end

The earlier logic tried to colour any and all blank lines that were added
beyond the last blank line in the original, but this was very wrong.  If
you added 96 blank lines, a non-blank line, and then 3 blank lines at the
end, only the last 3 lines should trigger the error, not the earlier 96
blank lines.

We need to also make sure that the lines are after the last non-blank line
in the postimage as well before deciding to paint them.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Mon, 14 Sep 2009 21:48:27 +0000 (14:48 -0700)]
Merge branch 'maint'

* maint:
  http.c: avoid freeing an uninitialized pointer

15 years agoMerge branch 'rc/maint-http-no-head-pack-check' into maint
Junio C Hamano [Mon, 14 Sep 2009 21:48:20 +0000 (14:48 -0700)]
Merge branch 'rc/maint-http-no-head-pack-check' into maint

* rc/maint-http-no-head-pack-check:
  http.c: avoid freeing an uninitialized pointer

15 years agohttp.c: avoid freeing an uninitialized pointer
Junio C Hamano [Mon, 14 Sep 2009 21:48:15 +0000 (14:48 -0700)]
http.c: avoid freeing an uninitialized pointer

An earlier 59b8d38 (http.c: remove verification of remote packs) left
the variable "url" uninitialized; "goto cleanup" codepath can free it
which is not very nice.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoweb--browse: fix Mac OS X GUI detection for 10.6
Heiko Voigt [Mon, 14 Sep 2009 08:49:01 +0000 (10:49 +0200)]
web--browse: fix Mac OS X GUI detection for 10.6

Since OS X 10.6 the variable $SECURITYSESSIONID does not exist anymore,
so lets look for the $TERM_PROGRAM variable as backup.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoremove logical typo in documentation of sample update hook
Heiko Voigt [Mon, 14 Sep 2009 08:47:06 +0000 (10:47 +0200)]
remove logical typo in documentation of sample update hook

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoNicolas Pitre has a new email address
Nicolas Pitre [Mon, 14 Sep 2009 06:41:16 +0000 (02:41 -0400)]
Nicolas Pitre has a new email address

Due to problems at cam.org, my nico@cam.org email address is no longer
valid.  From now on, nico@fluxnic.net should be used instead.

Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-archive: infer output format from filename when unspecified
Dmitry Potapov [Sun, 13 Sep 2009 20:17:01 +0000 (00:17 +0400)]
git-archive: infer output format from filename when unspecified

A command line

    $ git archive -o my-v2.0.zip v2.0

almost certainly wants the output in zip format, even though it does not
specify any --format option.

When --format is not given, but output filename is, try to infer what
format is requested from the filename extension.  Currently this code only
knows about '.zip'.  When the format is unspecified and the filename does
not tell us, the output will be in 'tar' format as before.

Of course, an explicit --format will not trigger this guesswork.

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agocompletion: Replace config --list with --get-regexp
Todd Zullinger [Fri, 11 Sep 2009 23:23:45 +0000 (19:23 -0400)]
completion: Replace config --list with --get-regexp

James Bardin noted that the completion spewed warnings when no git config
file is present.  This is likely a bug to be fixed in git config, but it's
also good to simplify the completion code by using the --get-regexp option
as Jeff King pointed out.

Signed-off-by: Todd Zullinger <tmz@pobox.com>
Trivially-acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-archive: add '-o' as a alias for '--output'
Dmitry Potapov [Sun, 13 Sep 2009 12:05:52 +0000 (16:05 +0400)]
git-archive: add '-o' as a alias for '--output'

The '-o' option is commonly used in many tools to specify the output file.
Typing '--output' every time is a bit too long to be a practical alternative
to redirecting output. But specifying the output name has the advantage of
making possible to guess the desired output format by filename extension.

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agotest local clone by copying
Clemens Buchacher [Sun, 13 Sep 2009 10:49:45 +0000 (12:49 +0200)]
test local clone by copying

Test the effect of an earlier change by f7835a2 (preserve mtime of local
clone, 2009-09-12) to keep stale loose object files stale in the new
repository when a local clone is made by copying files in .git/
directory.

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-clone doc: typofix
Johannes Gilger [Sun, 13 Sep 2009 13:35:05 +0000 (15:35 +0200)]
git-clone doc: typofix

Signed-off-by: Johannes Gilger <heipei@hackvalue.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-push: Accept -n as a synonym for --dry-run.
Nelson Elhage [Sun, 13 Sep 2009 16:56:45 +0000 (12:56 -0400)]
git-push: Accept -n as a synonym for --dry-run.

git-push is not currently using -n for anything else, and it seems
unlikely we will want to use it to mean anything else in the future,
so add it as an alias for convenience.

Signed-off-by: Nelson Elhage <nelhage@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-commit doc: remove duplicated --dry-run description
Junio C Hamano [Sun, 13 Sep 2009 18:23:34 +0000 (11:23 -0700)]
git-commit doc: remove duplicated --dry-run description

60c2993 (Documentation/git-commit.txt: describe --dry-run, 2009-08-15)
wanted to update the documentation to say that "git status" is not the
same as "git commit --dry-run" anymore, but it screwed up and also added
the description of --dry-run that was already present.

Noticed by Johannes Gilger.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoGIT 1.6.5-rc1 v1.6.5-rc1
Junio C Hamano [Sun, 13 Sep 2009 08:50:22 +0000 (01:50 -0700)]
GIT 1.6.5-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoImprove --patch option documentation in git-add
Jari Aalto [Sun, 13 Sep 2009 06:43:10 +0000 (09:43 +0300)]
Improve --patch option documentation in git-add

Signed-off-by: Jari Aalto <jari.aalto@cante.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'pk/fast-import-tars'
Junio C Hamano [Sun, 13 Sep 2009 08:33:29 +0000 (01:33 -0700)]
Merge branch 'pk/fast-import-tars'

* pk/fast-import-tars:
  import-tars: Allow per-tar author and commit message.

15 years agoMerge branch 'pk/fast-import-dirs'
Junio C Hamano [Sun, 13 Sep 2009 08:33:26 +0000 (01:33 -0700)]
Merge branch 'pk/fast-import-dirs'

* pk/fast-import-dirs:
  Add script for importing bits-and-pieces to Git.

15 years agoMerge branch 'jt/pushinsteadof'
Junio C Hamano [Sun, 13 Sep 2009 08:33:20 +0000 (01:33 -0700)]
Merge branch 'jt/pushinsteadof'

* jt/pushinsteadof:
  Add url.<base>.pushInsteadOf: URL rewriting for push only
  Wrap rewrite globals in a struct in preparation for adding another set

15 years agoMerge branch 'jk/unwanted-advices'
Junio C Hamano [Sun, 13 Sep 2009 08:33:18 +0000 (01:33 -0700)]
Merge branch 'jk/unwanted-advices'

* jk/unwanted-advices:
  status: make "how to stage" messages optional
  push: make non-fast-forward help message configurable

15 years agoMerge branch 'jc/merge-saner-messages'
Junio C Hamano [Sun, 13 Sep 2009 08:33:15 +0000 (01:33 -0700)]
Merge branch 'jc/merge-saner-messages'

* jc/merge-saner-messages:
  merge-recursive: give less scary messages when merge did not start

15 years agoquiltimport documentation: --dry-run and -n are synonyms
Junio C Hamano [Sun, 13 Sep 2009 02:40:27 +0000 (19:40 -0700)]
quiltimport documentation: --dry-run and -n are synonyms

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agopreserve mtime of local clone
Clemens Buchacher [Sat, 12 Sep 2009 09:03:48 +0000 (11:03 +0200)]
preserve mtime of local clone

A local clone without hardlinks copies all objects, including dangling
ones, to the new repository. Since the mtimes are renewed, those
dangling objects cannot be pruned by "git gc --prune", even if they
would have been old enough for pruning in the original repository.

Instead, preserve mtime during copy. "git gc --prune" will then work
in the clone just like it did in the original.

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agodon't dereference NULL upon fdopen failure
Jim Meyering [Sat, 12 Sep 2009 08:43:27 +0000 (10:43 +0200)]
don't dereference NULL upon fdopen failure

There were several unchecked use of fdopen(); replace them with xfdopen()
that checks and dies.

Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agouse write_str_in_full helper to avoid literal string lengths
Jim Meyering [Sat, 12 Sep 2009 08:54:32 +0000 (10:54 +0200)]
use write_str_in_full helper to avoid literal string lengths

This is the same fix to use write_str_in_full() helper to write a constant
string out without counting the length of it ourselves.

Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'db/vcs-helper'
Junio C Hamano [Sun, 13 Sep 2009 08:31:55 +0000 (01:31 -0700)]
Merge branch 'db/vcs-helper'

* db/vcs-helper:
  Makefile: remove remnant of separate http/https/ftp helpers
  Use a clearer style to issue commands to remote helpers
  Make the "traditionally-supported" URLs a special case
  Makefile: install hardlinks for git-remote-<scheme> supported by libcurl if possible
  Makefile: do not link three copies of git-remote-* programs
  Makefile: git-http-fetch does not need expat
  http-fetch: Fix Makefile dependancies
  Add transport native helper executables to .gitignore
  git-http-fetch: not a builtin
  Use an external program to implement fetching with curl
  Add support for external programs for handling native fetches

15 years agouse write_str_in_full helper to avoid literal string lengths
Jim Meyering [Sat, 12 Sep 2009 08:54:32 +0000 (10:54 +0200)]
use write_str_in_full helper to avoid literal string lengths

In 2d14d65 (Use a clearer style to issue commands to remote helpers,
2009-09-03) I happened to notice two changes like this:

- write_in_full(helper->in, "list\n", 5);
+
+ strbuf_addstr(&buf, "list\n");
+ write_in_full(helper->in, buf.buf, buf.len);
+ strbuf_reset(&buf);

IMHO, it would be better to define a new function,

    static inline ssize_t write_str_in_full(int fd, const char *str)
    {
           return write_in_full(fd, str, strlen(str));
    }

and then use it like this:

-       strbuf_addstr(&buf, "list\n");
-       write_in_full(helper->in, buf.buf, buf.len);
-       strbuf_reset(&buf);
+       write_str_in_full(helper->in, "list\n");

Thus not requiring the added allocation, and still avoiding
the maintenance risk of literal string lengths.
These days, compilers are good enough that strlen("literal")
imposes no run-time cost.

Transformed via this:

    perl -pi -e \
        's/write_in_full\((.*?), (".*?"), \d+\)/write_str_in_full($1, $2)/'\
      $(git grep -l 'write_in_full.*"')

Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agowrap git's main usage string.
Matthieu Moy [Sat, 12 Sep 2009 10:39:30 +0000 (12:39 +0200)]
wrap git's main usage string.

It's now similar wrapped the same way as in Documentation/git.txt, and
fits in a 67 characters wide terminal.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Sun, 13 Sep 2009 08:30:53 +0000 (01:30 -0700)]
Merge branch 'maint'

* maint:
  GIT 1.6.4.3
  svn: properly escape arguments for authors-prog
  http.c: remove verification of remote packs
  grep: accept relative paths outside current working directory
  grep: fix exit status if external_grep() punts

Conflicts:
GIT-VERSION-GEN
RelNotes

15 years agoGIT 1.6.4.3 v1.6.4.3
Junio C Hamano [Sun, 13 Sep 2009 08:04:23 +0000 (01:04 -0700)]
GIT 1.6.4.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agosvn: properly escape arguments for authors-prog
Mark Lodato [Sun, 13 Sep 2009 00:33:23 +0000 (20:33 -0400)]
svn: properly escape arguments for authors-prog

Previously, the call to authors-prog was not properly escaped, so any
special characters in the Subversion username, such as spaces and
semi-colons, would be interpreted by the shell rather than being passed
in as the first argument.  Now all unsafe characters are escaped using
"git rev-parse --sq-quote"

[ew: switched from "\Q..\E" to "rev-parse --sq-quote"]

Signed-off-by: Mark Lodato <lodatom@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'cb/maint-1.6.3-grep-relative-up' into maint
Junio C Hamano [Sun, 13 Sep 2009 08:24:20 +0000 (01:24 -0700)]
Merge branch 'cb/maint-1.6.3-grep-relative-up' into maint

* cb/maint-1.6.3-grep-relative-up:
  grep: accept relative paths outside current working directory
  grep: fix exit status if external_grep() punts

Conflicts:
t/t7002-grep.sh

15 years agogit-gui: store wm state and fix wm geometry
Alexey Borzenkov [Tue, 8 Sep 2009 18:39:33 +0000 (22:39 +0400)]
git-gui: store wm state and fix wm geometry

I often close git gui window when it is maximized, and when I reopen
it next time the it would usually become out of place (e.g. a huge
window with a top-left corner somewhere close to the center of the
screen). Fix it by storing and restoring wm state in config, as well
as setting wm state to normal before retrieving wm geometry info.

Signed-off-by: Alexey Borzenkov <snaury@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
15 years agoMakefile: remove remnant of separate http/https/ftp helpers
Junio C Hamano [Sat, 12 Sep 2009 05:35:30 +0000 (22:35 -0700)]
Makefile: remove remnant of separate http/https/ftp helpers

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agorebase: use plumbing to show dirty state
Jeff King [Wed, 9 Sep 2009 14:59:37 +0000 (10:59 -0400)]
rebase: use plumbing to show dirty state

Commit 4cfbe06 introduced the use of "git diff" to show
dirty state in a format more familiar to users. However, it
should have used the plumbing "git diff-files" instead.

Not only is it good practice in general to use plumbing in
scripts, but in this case we really don't want the automatic
pager to kick in for an error message.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agostatus: make "how to stage" messages optional
Jeff King [Wed, 9 Sep 2009 11:43:03 +0000 (07:43 -0400)]
status: make "how to stage" messages optional

These messages are nice for new users, but experienced git
users know how to manipulate the index, and these messages
waste a lot of screen real estate.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agopush: make non-fast-forward help message configurable
Jeff King [Wed, 9 Sep 2009 11:38:58 +0000 (07:38 -0400)]
push: make non-fast-forward help message configurable

This message is designed to help new users understand what
has happened when refs fail to push. However, it does not
help experienced users at all, and significantly clutters
the output, frequently dwarfing the regular status table and
making it harder to see.

This patch introduces a general configuration mechanism for
optional messages, with this push message as the first
example.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agopager: set LESS=FRSX also on Windows
Johannes Sixt [Fri, 11 Sep 2009 17:45:07 +0000 (19:45 +0200)]
pager: set LESS=FRSX also on Windows

Previously, this environment variable was set in the pager_preexec
callback, which is conditionally-compiled only on Unix, because it is not,
and cannot be, called on Windows.

With this patch the env member of struct child_process is used to set
the environment variable, which also works on Windows.

Noticed by Alexey Borzenkov.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agostart_command: do not clobber cmd->env on Windows code path
Johannes Sixt [Fri, 11 Sep 2009 17:40:08 +0000 (19:40 +0200)]
start_command: do not clobber cmd->env on Windows code path

Previously, it would not be possible to call start_command twice for the
same struct child_process that has env set.

The fix is achieved by moving the loop that modifies the environment block
into a helper function. This also allows us to make two other helper
functions static.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agohttp.c: remove verification of remote packs
Tay Ray Chuan [Wed, 9 Sep 2009 12:33:50 +0000 (20:33 +0800)]
http.c: remove verification of remote packs

Make http.c::fetch_pack_index() no longer check for the remote pack
with a HEAD request before fetching the corresponding pack index file.

Not only does sending a HEAD request before we do a GET incur a
performance penalty, it does not offer any significant error-
prevention advantages (pack fetching in the *_http_pack_request()
methods is capable of handling any errors on its own).

This addresses an issue raised elsewhere:

  http://code.google.com/p/msysgit/issues/detail?id=323
  http://support.github.com/discussions/repos/957-cant-clone-over-http-or-git

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoadd documentation for mailinfo.scissors and '--no-scissors'
Nicolas Sebrecht [Fri, 11 Sep 2009 00:29:58 +0000 (02:29 +0200)]
add documentation for mailinfo.scissors and '--no-scissors'

Signed-off-by: Nicolas Sebrecht <nicolas.s.dev@gmx.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agomailinfo: add '--scissors' to usage message
Nicolas Sebrecht [Fri, 11 Sep 2009 00:09:20 +0000 (02:09 +0200)]
mailinfo: add '--scissors' to usage message

Signed-off-by: Nicolas Sebrecht <nicolas.s.dev@gmx.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>