gitweb.git
t5516: Check pushurl config settingMichael J Gruber Tue, 9 Jun 2009 16:01:35 +0000 (18:01 +0200)

t5516: Check pushurl config setting

Check whether the new remote.${remotename}.pushurl setting is obeyed
and whether it overrides remote.${remotename}.url.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Allow push and fetch urls to be differentMichael J Gruber Tue, 9 Jun 2009 16:01:34 +0000 (18:01 +0200)

Allow push and fetch urls to be different

This introduces a config setting remote.$remotename.pushurl which is
used for pushes only. If absent remote.$remotename.url is used for
pushes and fetches as before.
This is useful, for example, in order to do passwordless fetches
(remote update) over the git transport but pushes over ssh.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Tue, 9 Jun 2009 07:29:36 +0000 (00:29 -0700)

Merge branch 'maint'

* maint:
diff.c: plug a memory leak in an error path
fetch-pack: close output channel after sideband demultiplexer terminates
builtin-remote: Make "remote show" display all urls

bash: add support for 'git stash pop --index' optionSZEDER Gábor Mon, 8 Jun 2009 22:57:39 +0000 (00:57 +0200)

bash: add support for 'git stash pop --index' option

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: mention 'git stash pop --index' option... SZEDER Gábor Mon, 8 Jun 2009 22:57:06 +0000 (00:57 +0200)

Documentation: mention 'git stash pop --index' option explicitly

'git stash pop' supports the '--index' option since its initial
implementation (bd56ff54, git-stash: add new 'pop' subcommand,
2008-02-22), but its documentation does not mention it explicitly.
Moreover, both the usage shown by 'git stash -h' and the synopsis
section in the man page imply that 'git stash pop' does not have an
'--index' option.

First, this patch corrects the usage and the synopsis section.

Second, the patch moves the description of the '--index' option to the
'git stash pop' section in the documentation, and refers to it from
the 'git stash apply' section. This way it follows the intentions of
commit d1836637 (Documentation: teach stash/pop workflow instead of
stash/apply, 2009-05-28), as all 'git stash pop'-related documentation
will be in one place without references to 'git stash apply'.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Simplify some 'fprintf(stderr); return -1;' by using... Johannes Sixt Mon, 8 Jun 2009 20:34:31 +0000 (22:34 +0200)

Simplify some 'fprintf(stderr); return -1;' by using 'return error()'

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Simplify some instances of run_command() by using run_c... Johannes Sixt Mon, 8 Jun 2009 20:34:29 +0000 (22:34 +0200)

Simplify some instances of run_command() by using run_command_v_opt().

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

show-branch: don't use LASTARG_DEFAULT with OPTARGStephen Boyd Sun, 7 Jun 2009 23:39:15 +0000 (16:39 -0700)

show-branch: don't use LASTARG_DEFAULT with OPTARG

5734365 (show-branch: migrate to parse-options API 2009-05-21)
incorrectly set the --more option's flags to be
PARSE_OPT_LASTARG_DEFAULT and PARSE_OPT_OPTARG. These two flags
shouldn't be used together. An option taking a default should just set
the default value desired and parse options will take care of the rest.

Update the header comment to better convey this information.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Acked-by: René Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

send-email: use UTF-8 rather than utf-8 for consistencyBrandon Casey Sun, 7 Jun 2009 01:12:31 +0000 (20:12 -0500)

send-email: use UTF-8 rather than utf-8 for consistency

The rest of the git source has been converted to use upper-case character
encoding names to assist older platforms. The charset attribute of MIME
is defined to be case-insensitive, but older platforms may still have an
easier time dealing with upper-case rather than lower-case. So do so for
send-email too.

Update t9001 to handle the changes.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-send-email.perl: improve detection of MIME encoded... Brandon Casey Mon, 8 Jun 2009 00:25:58 +0000 (19:25 -0500)

git-send-email.perl: improve detection of MIME encoded-words

According to rfc2047, an encoded word has the following form:

encoded-word = "=?" charset "?" encoding "?" encoded-text "?="

charset = token

encoding = token

token = <Any CHAR except SPACE, CTLs, and especials>

especials = "(" / ")" / "<" / ">" / "@" / "," / ";" / ":" / "
<"> / "/" / "[" / "]" / "?" / "." / "="

encoded-text = <Any printable ASCII character other than "?"
or SPACE>

And rfc822 defines CHARs and CTLs as:

CHAR = <any ASCII character> ; ( 0-177, 0.-127.)

CTL = <any ASCII control ; ( 0- 37, 0.- 31.)
character and DEL> ; ( 177, 127.)

The original code only detected rfc2047 encoded strings when the charset
was UTF-8. This patch generalizes the matching expression and breaks the
check for an rfc2047 encoded string into its own function. There's no real
functional change, since any properly rfc2047 encoded string would have
fallen through the remaining 'if' statements and been returned unchanged.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff.c: plug a memory leak in an error pathJohannes Sixt Mon, 8 Jun 2009 20:34:30 +0000 (22:34 +0200)

diff.c: plug a memory leak in an error path

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fetch-pack: close output channel after sideband demulti... Johannes Sixt Mon, 8 Jun 2009 08:51:22 +0000 (10:51 +0200)

fetch-pack: close output channel after sideband demultiplexer terminates

fetch-pack runs the sideband demultiplexer using start_async(). This
facility requires that the asynchronously executed function closes the
output file descriptor (see Documentation/technical/api-run-command.txt).
But the sideband demultiplexer did not do that. This fixes it.

In certain error situations this could lock up a fetch operation on
Windows because the asynchronous function is run in a thread; by not
closing the output fd the reading end never got EOF and waited for more
data indefinitely. On Unix this is not a problem because the asynchronous
function is run in a separate process, which exits after the function ends
and so implicitly closes the output.

Since the pack that is sent over the wire encodes the number of objects in
the stream, during normal operation the reading end knows when the stream
ends and terminates by itself, and does not lock up.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin-remote: Make "remote show" display all urlsMichael J Gruber Sat, 6 Jun 2009 15:16:30 +0000 (17:16 +0200)

builtin-remote: Make "remote show" display all urls

Currently, "git remote -v" lists all urls whereas "git remote show
$remote" shows only the first. Make it so that both show all.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

symlinks.c: small style cleanupKjetil Barvik Sun, 7 Jun 2009 11:33:05 +0000 (13:33 +0200)

symlinks.c: small style cleanup

Add {}-braces around an else-part, where the if-part already has
{}-braces.

And, also remove some unnecessary "return;"-statements at the end of
"void foo()"-functions.

Signed-off-by: Kjetil Barvik <barvik@broadpark.no>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Makefile: test-parse-options depends on parse-options.hJunio C Hamano Sun, 7 Jun 2009 08:34:51 +0000 (01:34 -0700)

Makefile: test-parse-options depends on parse-options.h

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Sun, 7 Jun 2009 06:49:28 +0000 (23:49 -0700)

Merge branch 'maint'

* maint:
Documentation: refer to gitworkflows(7) from tutorial and git(1)
daemon: Strictly parse the "extra arg" part of the command

Documentation: refer to gitworkflows(7) from tutorial... Thomas Rast Sat, 6 Jun 2009 13:11:07 +0000 (15:11 +0200)

Documentation: refer to gitworkflows(7) from tutorial and git(1)

Add references to the gitworkflows(7) manpage added in f948dd8
(Documentation: add manpage about workflows, 2008-10-19) to both
gittutorial(1) and git(1), so that new users might actually discover
and read it.

Noticed by Randal L. Schwartz.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

daemon: Strictly parse the "extra arg" part of the... Shawn O. Pearce Fri, 5 Jun 2009 01:33:32 +0000 (18:33 -0700)

daemon: Strictly parse the "extra arg" part of the command

Since 1.4.4.5 (49ba83fb67 "Add virtualization support to git-daemon")
git daemon enters an infinite loop and never terminates if a client
hides any extra arguments in the initial request line which is not
exactly "\0host=blah\0".

Since that change, a client must never insert additional extra
arguments, or attempt to use any argument other than "host=", as
any daemon will get stuck parsing the request line and will never
complete the request.

Since the client can't tell if the daemon is patched or not, it
is not possible to know if additional extra args might actually be
able to be safely requested.

If we ever need to extend the git daemon protocol to support a new
feature, we may have to do something like this to the exchange:

# If both support git:// v2
#
C: 000cgit://v2
S: 0010ok host user
C: 0018host git.kernel.org
C: 0027git-upload-pack /pub/linux-2.6.git
S: ...git-upload-pack header...

# If client supports git:// v2, server does not:
#
C: 000cgit://v2
S: <EOF>

C: 003bgit-upload-pack /pub/linux-2.6.git\0host=git.kernel.org\0
S: ...git-upload-pack header...

This requires the client to create two TCP connections to talk to
an older git daemon, however all daemons since the introduction of
daemon.c will safely reject the unknown "git://v2" command request,
so the client can quite easily determine the server supports an
older protocol.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/git.txt: update links to release notesJunio C Hamano Thu, 4 Jun 2009 05:52:37 +0000 (22:52 -0700)

Documentation/git.txt: update links to release notes

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint' to sync with 1.6.3.2Junio C Hamano Thu, 4 Jun 2009 05:51:56 +0000 (22:51 -0700)

Merge branch 'maint' to sync with 1.6.3.2

GIT 1.6.3.2 v1.6.3.2Junio C Hamano Thu, 4 Jun 2009 05:42:15 +0000 (22:42 -0700)

GIT 1.6.3.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Show presence of stashed changes in bash prompt.Daniel Trstenjak Tue, 2 Jun 2009 18:03:22 +0000 (20:03 +0200)

Show presence of stashed changes in bash prompt.

Add a '$' in the __git_ps1 output to show stashed changes are present,
when GIT_PS1_SHOWSTASHSTATE is set to a nonempty value.

The code for checking if the stash has entries is taken from
'git-stash.sh'.

Signed-off-by: Daniel Trstenjak <daniel.trstenjak@online.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

grep: fix empty word-regexp matchesRené Scharfe Wed, 3 Jun 2009 16:19:01 +0000 (18:19 +0200)

grep: fix empty word-regexp matches

The command "git grep -w ''" dies as soon as it encounters an empty line,
reporting (wrongly) that "regexp returned nonsense". The first hunk of
this patch relaxes the sanity check that is responsible for that,
allowing matches to start at the end.

The second hunk complements it by making sure that empty matches are
rejected if -w was specified, as they are not really words.

GNU grep does the same:

$ echo foo | grep -c ''
1
$ echo foo | grep -c -w ''
0

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'da/pretty-tempname'Junio C Hamano Wed, 3 Jun 2009 07:50:05 +0000 (00:50 -0700)

Merge branch 'da/pretty-tempname'

* da/pretty-tempname:
diff: generate pretty filenames in prep_temp_blob()
compat: add a basename() compatibility function
compat: add a mkstemps() compatibility function

Conflicts:
Makefile

Clean up and simplify rev_compare_tree()Linus Torvalds Wed, 3 Jun 2009 01:34:01 +0000 (18:34 -0700)

Clean up and simplify rev_compare_tree()

This simplifies the logic of rev_compare_tree() by removing a special
case.

It does so by turning the special case of finding a diff to be "all new
files" into a more generic case of "all new" vs "all removed" vs "mixed
changes", so now the code is actually more powerful and more generic, and
the added symmetry actually makes it simpler too.

This makes no changes to any existing behavior, but apart from the
simplification it does make it possible to some day care about whether all
changes were just deletions if we want to. Which we may well want to for
merge handling.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Wed, 3 Jun 2009 07:49:40 +0000 (00:49 -0700)

Merge branch 'maint'

* maint:
blame: correctly handle a path that used to be a directory
add -i: do not dump patch during application
Update draft release notes for 1.6.3.2
grep: fix colouring of matches with zero length
Documentation: teach stash/pop workflow instead of stash/apply
Change xdl_merge to generate output even for null merges
t6023: merge-file fails to output anything for a degenerate merge

blame: correctly handle a path that used to be a directoryJunio C Hamano Wed, 3 Jun 2009 07:43:22 +0000 (00:43 -0700)

blame: correctly handle a path that used to be a directory

When trying to see if the same path exists in the parent, we ran
"diff-tree" with pathspec set to the path we are interested in with the
parent, and expect either to have exactly one resulting filepair (either
"changed from the parent", "created when there was none") or nothing (when
there is no change from the parent).

If the path used to be a directory, however, we will also see unbounded
number of entries that talk about the files that used to exist underneath
the directory in question. Correctly pick only the entry that describes
the path we are interested in in such a case (namely, the creation of the
path as a regular file).

Noticed by Ben Willard.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

add -i: do not dump patch during applicationThomas Rast Tue, 2 Jun 2009 21:34:27 +0000 (23:34 +0200)

add -i: do not dump patch during application

Remove a debugging print that snuck in at 7a26e65 (Revert
"git-add--interactive: remove hunk coalescing", 2009-05-16).

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes for 1.6.3.2Junio C Hamano Tue, 2 Jun 2009 14:57:39 +0000 (07:57 -0700)

Update draft release notes for 1.6.3.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'cb/maint-1.6.0-xdl-merge-fix' into maintJunio C Hamano Tue, 2 Jun 2009 14:48:44 +0000 (07:48 -0700)

Merge branch 'cb/maint-1.6.0-xdl-merge-fix' into maint

* cb/maint-1.6.0-xdl-merge-fix:
Change xdl_merge to generate output even for null merges
t6023: merge-file fails to output anything for a degenerate merge

Conflicts:
xdiff/xmerge.c

Merge branch 'rs/maint-grep-word-regexp-fix' into maintJunio C Hamano Tue, 2 Jun 2009 14:48:09 +0000 (07:48 -0700)

Merge branch 'rs/maint-grep-word-regexp-fix' into maint

* rs/maint-grep-word-regexp-fix:
grep: fix colouring of matches with zero length
grep: fix word-regexp at the beginning of lines

Merge branch 'sb/maint-1.6.2-opt-filename-fix' into... Junio C Hamano Tue, 2 Jun 2009 14:47:03 +0000 (07:47 -0700)

Merge branch 'sb/maint-1.6.2-opt-filename-fix' into maint

* sb/maint-1.6.2-opt-filename-fix:
apply, fmt-merge-msg: use relative filenames
commit: -F overrides -t

Merge branch 'jc/maint-add-p-coalesce-fix' into maintJunio C Hamano Tue, 2 Jun 2009 14:46:52 +0000 (07:46 -0700)

Merge branch 'jc/maint-add-p-coalesce-fix' into maint

* jc/maint-add-p-coalesce-fix:
t3701: ensure correctly set up repository after skipped tests
Revert "git-add--interactive: remove hunk coalescing"
Splitting a hunk that adds a line at the top fails in "add -p"

Merge branch 'tr/maint-doc-stash-pop' into maintJunio C Hamano Tue, 2 Jun 2009 14:43:45 +0000 (07:43 -0700)

Merge branch 'tr/maint-doc-stash-pop' into maint

* tr/maint-doc-stash-pop:
Documentation: teach stash/pop workflow instead of stash/apply

test-lib: fix http exit codesClemens Buchacher Mon, 1 Jun 2009 12:28:25 +0000 (14:28 +0200)

test-lib: fix http exit codes

Previously, die() would report the exit code of stop_httpd. Instead,
save and reset the exit code before dying.

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test-lib: allow exit trap to be used for cleanup by... Clemens Buchacher Mon, 1 Jun 2009 12:14:41 +0000 (14:14 +0200)

test-lib: allow exit trap to be used for cleanup by tests

Exit trap should not be removed in case tests require cleanup code. This
is especially important if tests are executed with the --immediate option.

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test-lib: fail if invalid options are passedClemens Buchacher Mon, 1 Jun 2009 12:14:40 +0000 (14:14 +0200)

test-lib: fail if invalid options are passed

Previously, unknown options would be ignored, including any subsequent
valid options.

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

grep: fix colouring of matches with zero lengthRené Scharfe Mon, 1 Jun 2009 21:53:05 +0000 (23:53 +0200)

grep: fix colouring of matches with zero length

If a zero-length match is encountered, break out of loop and show the rest
of the line uncoloured. Otherwise we'd be looping forever, trying to make
progress by advancing the pointer by zero characters.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-show-branch.txt: document --date-order optionStephen Boyd Mon, 1 Jun 2009 06:34:46 +0000 (23:34 -0700)

git-show-branch.txt: document --date-order option

Copy the description of date-order from rev-list-options.txt, and then
reword it to be commit specific. While we're at it, put <rev> <glob>...
on a new line to not exceed 80 characters.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff: generate pretty filenames in prep_temp_blob()David Aguilar Sun, 31 May 2009 08:35:52 +0000 (01:35 -0700)

diff: generate pretty filenames in prep_temp_blob()

Naturally, prep_temp_blob() did not care about filenames.
As a result, GIT_EXTERNAL_DIFF and textconv generated
filenames such as ".diff_XXXXXX".

This modifies prep_temp_blob() to generate user-friendly
filenames when creating temporary files.

Diffing "name.ext" now generates "XXXXXX_name.ext".

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

compat: add a basename() compatibility functionDavid Aguilar Sun, 31 May 2009 08:35:51 +0000 (01:35 -0700)

compat: add a basename() compatibility function

Some systems such as Windows lack libgen.h so provide a
basename() implementation for cross-platform use.

This introduces the NO_LIBGEN_H construct to the Makefile
and autoconf scripts.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

compat: add a mkstemps() compatibility functionDavid Aguilar Sun, 31 May 2009 08:35:50 +0000 (01:35 -0700)

compat: add a mkstemps() compatibility function

mkstemps() is a BSD extension so provide an implementation
for cross-platform use.

Signed-off-by: David Aguilar <davvid@gmail.com>
Tested-by: Johannes Sixt <j6t@kdbg.org> (Windows)
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'sb/opt-filename'Junio C Hamano Sun, 31 May 2009 23:57:42 +0000 (16:57 -0700)

Merge branch 'sb/opt-filename'

* sb/opt-filename:
parse-opts: add OPT_FILENAME and transition builtins
parse-opts: prepare for OPT_FILENAME

Conflicts:
builtin-log.c

Merge branch 'jc/solaris-0811'Junio C Hamano Sun, 31 May 2009 23:18:02 +0000 (16:18 -0700)

Merge branch 'jc/solaris-0811'

* jc/solaris-0811:
OpenSolaris 200811 (SunOS 5.11) does not want OLD_ICONV
Teach Solaris that _XOPEN_SOURCE=600 really menas XPG6

Merge branch 'sb/show-branch-parse-options'Junio C Hamano Sun, 31 May 2009 23:17:58 +0000 (16:17 -0700)

Merge branch 'sb/show-branch-parse-options'

* sb/show-branch-parse-options:
show-branch: migrate to parse-options API
parse-options: add PARSE_OPT_LITERAL_ARGHELP for complicated argh's

Conflicts:
parse-options.h

Merge branch 'mm/apply-double-slash'Junio C Hamano Sun, 31 May 2009 23:17:46 +0000 (16:17 -0700)

Merge branch 'mm/apply-double-slash'

* mm/apply-double-slash:
apply: handle filenames with double slashes better

Merge branch 'sb/format-patch-parseopt'Junio C Hamano Sun, 31 May 2009 23:17:31 +0000 (16:17 -0700)

Merge branch 'sb/format-patch-parseopt'

* sb/format-patch-parseopt:
format-patch: migrate to parse-options API

Conflicts:
builtin-log.c

Merge branch 'jc/mktree'Junio C Hamano Sun, 31 May 2009 23:17:11 +0000 (16:17 -0700)

Merge branch 'jc/mktree'

* jc/mktree:
mktree: validate entry type in input
mktree --batch: build more than one tree object
mktree --missing: updated usage message and man page
mktree --missing: allow missing objects
t1010: add mktree test
mktree: do not barf on a submodule commit
builtin-mktree.c: use a helper function to handle one line of input
mktree: use parse-options
build-in git-mktree

Merge branch 'ew/svn-test-and-old-i18n'Junio C Hamano Sun, 31 May 2009 23:17:07 +0000 (16:17 -0700)

Merge branch 'ew/svn-test-and-old-i18n'

* ew/svn-test-and-old-i18n:
t8005: fix typo, it's ISO-8859-5, not KOI8-R
t8005: convert CP1251 character set to ISO8859-5
t8005: use more portable character encoding names
t5100: use ancient encoding syntax for backwards compatibility
t9301: use ISO8859-1 rather than ISO-8859-1
t3901: Use ISO8859-1 instead of ISO-8859-1 for backward compatibility
t3901: avoid negation on right hand side of '|'
builtin-mailinfo.c: use "ISO8859-1" instead of "latin1" as fallback encoding
builtin-mailinfo.c: compare character encodings case insensitively
Use 'UTF-8' rather than 'utf-8' everywhere for backward compatibility
t3900: use ancient iconv names for backward compatibility

Merge branch 'mw/send-email'Junio C Hamano Sun, 31 May 2009 23:16:52 +0000 (16:16 -0700)

Merge branch 'mw/send-email'

* mw/send-email:
send-email: Remove superfluous `my $editor = ...'
send-email: 'References:' should only reference what is sent
send-email: Handle "GIT:" rather than "GIT: " during --compose
Docs: send-email: --smtp-server-port can take symbolic ports
Docs: send-email: Refer to CONFIGURATION section for sendemail.multiedit
Docs: send-email: Put options back into alphabetical order

Merge branch 'cc/bisect' (early part)Junio C Hamano Sun, 31 May 2009 23:16:48 +0000 (16:16 -0700)

Merge branch 'cc/bisect' (early part)

* 'cc/bisect' (early part):
bisect: check ancestors without forking a "git rev-list" process
commit: add function to unparse a commit and its parents
bisect: rework some rev related functions to make them more reusable

git-add: no need for -f when resolving a conflict in... Jeff King Sat, 30 May 2009 21:54:18 +0000 (17:54 -0400)

git-add: no need for -f when resolving a conflict in already tracked path

When a path F that matches ignore pattern has a conflict, "git add F"
insisted the -f option be given, which did not make sense. It would have
required -f when the path was originally added, but when resolving a
conflict, it already is tracked.

So this should work (and does):

$ echo file >.gitignore
$ echo content >file
$ git add -f file ;# need -f because we are adding new path
$ echo more content >>file
$ git add file ;# don't need -f; it is not actually an "other" file

This is handled under the hood by the COLLECT_IGNORED option to
read_directory. When that code finds an ignored file, it checks the
index to make sure it is not actually a tracked file. However, the test
it uses does not take into account unmerged entries, and considers them
to still be ignored. "git ls-files" uses a more elaborate test and gets
the right answer and the same test should be used here.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

config.txt: document add.ignore-errorsStephen Boyd Sun, 31 May 2009 05:08:02 +0000 (22:08 -0700)

config.txt: document add.ignore-errors

Use the description of "--ignore-errors" from git-add.txt as
inspiration.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bash: remove always true if statement from __git_ps1()SZEDER Gábor Fri, 29 May 2009 12:00:36 +0000 (14:00 +0200)

bash: remove always true if statement from __git_ps1()

The recent commits 8763dbb1 (completion: fix PS1 display during a
merge on detached HEAD, 2009-05-16), ff790b6a (completion: simplify
"current branch" in __git_ps1(), 2009-05-10), and d7107ca6
(completion: fix PS1 display during an AM on detached HEAD,
2009-05-26) ensure that the branch name in __git_ps1() is always set
to something sensible. Therefore, the condition for checking the
non-empty branch name is always fulfilled, and can be removed.

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>

git-apply(1): Clarify that one can select where to... Björn Steinbrink Fri, 29 May 2009 10:21:24 +0000 (12:21 +0200)

git-apply(1): Clarify that one can select where to apply the patch

The patch can be applied to the work tree, the index or both, but the
short description made it look like it's always applied to both.

Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

http-push: reuse existing is_null_refClemens Buchacher Sun, 31 May 2009 10:36:10 +0000 (12:36 +0200)

http-push: reuse existing is_null_ref

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9139 uses ancient, backwards-compatible iconv namesEric Wong Sat, 30 May 2009 00:14:47 +0000 (17:14 -0700)

t9139 uses ancient, backwards-compatible iconv names

This resolves a semantic conflicts early to work with 5ae93df (t3900: use
ancient iconv names for backward compatibility, 2009-05-18).

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge git://git.bogomips.org/git-svnJunio C Hamano Sun, 31 May 2009 05:25:41 +0000 (22:25 -0700)

Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
git-svn: refuse to dcommit non-UTF-8 messages

Documentation: teach stash/pop workflow instead of... Thomas Rast Thu, 28 May 2009 09:40:15 +0000 (11:40 +0200)

Documentation: teach stash/pop workflow instead of stash/apply

Recent discussion on the list showed some comments in favour of a
stash/pop workflow:

http://marc.info/?l=git&m=124234911423358&w=2
http://marc.info/?l=git&m=124235348327711&w=2

Change the stash documentation and examples to document pop in its own
right (and apply in terms of pop), and use stash/pop in the examples.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'sb/maint-1.6.2-opt-filename-fix'Junio C Hamano Fri, 29 May 2009 22:01:16 +0000 (15:01 -0700)

Merge branch 'sb/maint-1.6.2-opt-filename-fix'

* sb/maint-1.6.2-opt-filename-fix:
apply, fmt-merge-msg: use relative filenames
commit: -F overrides -t

Merge branch 'jc/maint-add-p-coalesce-fix'Junio C Hamano Fri, 29 May 2009 22:00:15 +0000 (15:00 -0700)

Merge branch 'jc/maint-add-p-coalesce-fix'

* jc/maint-add-p-coalesce-fix:
t3701: ensure correctly set up repository after skipped tests
Revert "git-add--interactive: remove hunk coalescing"
Splitting a hunk that adds a line at the top fails in "add -p"

Merge branch 'rs/maint-grep-word-regexp-fix'Junio C Hamano Fri, 29 May 2009 21:59:50 +0000 (14:59 -0700)

Merge branch 'rs/maint-grep-word-regexp-fix'

* rs/maint-grep-word-regexp-fix:
grep: fix word-regexp at the beginning of lines

t9120: don't expect failure with SVN_HTTPD_PORT unsetStephen Boyd Tue, 26 May 2009 06:15:47 +0000 (23:15 -0700)

t9120: don't expect failure with SVN_HTTPD_PORT unset

The test still passes when SVN_HTTPD_PORT is not set. Futhermore, t9115
and t9118 don't check if SVN_HTTPD_PORT is set even though they both use
start_httpd() from lib-git-svn.sh. Admittedly, the test is not very
meaningful without SVN_HTTPD_PORT, as commit f5530b (support for funky
branch and project names over HTTP(S) 2007-11-11) states that the URI
escaping is only done over HTTP(S).

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: teach stash/pop workflow instead of... Thomas Rast Thu, 28 May 2009 09:40:15 +0000 (11:40 +0200)

Documentation: teach stash/pop workflow instead of stash/apply

Recent discussion on the list showed some comments in favour of a
stash/pop workflow:

http://marc.info/?l=git&m=124234911423358&w=2
http://marc.info/?l=git&m=124235348327711&w=2

Change the stash documentation and examples to document pop in its own
right (and apply in terms of pop), and use stash/pop in the examples.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Fri, 29 May 2009 05:50:23 +0000 (22:50 -0700)

Merge branch 'maint'

* maint:
fix segfault showing an empty remote

git-svn: refuse to dcommit non-UTF-8 messagesEric Wong Thu, 28 May 2009 07:56:23 +0000 (00:56 -0700)

git-svn: refuse to dcommit non-UTF-8 messages

...without i18n.commitencoding set in the config.

SVN tries to store all commit messages in UTF-8, however it is
up to the job of the clients to enforce this rule. SVN servers
themselves do not always enforce this; allowing clients to
commit malformed UTF-8 messages and break repositories.

So git-svn will enforce this and tell the user to set
i18n.commitencoding when a git commit is is not in UTF-8.

Signed-off-by: Eric Wong <normalperson@yhbt.net>

fix segfault showing an empty remoteClemens Buchacher Wed, 27 May 2009 20:13:43 +0000 (22:13 +0200)

fix segfault showing an empty remote

In case of an empty list, the search for its tail caused a
NULL-pointer dereference.

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Reported-by: Erik Faye-Lund <kusmabite@googlemail.com>
Acked-by: Jay Soffian <jaysoffian@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t8005: fix typo, it's ISO-8859-5, not KOI8-RBrandon Casey Thu, 28 May 2009 01:57:45 +0000 (20:57 -0500)

t8005: fix typo, it's ISO-8859-5, not KOI8-R

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5500: Modernize test styleStephen Boyd Tue, 26 May 2009 06:17:14 +0000 (23:17 -0700)

t5500: Modernize test style

Code outside of the test harness was emitting "Initializing..." from
git-init. Fixup this test to be more modern:

- test_expect_object_count() and count_objects() are unused

- use grep directly instead of test "..." = $(grep ...)

- end the test_expect_success line with a single-quote and put the
test on a new line

- put as much code inside the test harness as possible

- no_strict_count_check is unused and duplicates the test
"new object count"

- use && whenever possible to catch errors early

- use test_tick instead of GIT_AUTHOR_DATE=$sec

- remove debugging aid log.txt

- use subshells instead of cd-ing around

Also merge the pull test into one large test.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: fix PS1 display during an AM on detached... Junio C Hamano Tue, 26 May 2009 05:56:03 +0000 (22:56 -0700)

completion: fix PS1 display during an AM on detached HEAD

This is a companion patch to previous 8763dbb (completion: fix PS1 display
during a merge on detached HEAD, 2009-05-16). While rebasing or running am
on a detached HEAD, the code failed to set $b (branch description) that
enables the whole status display business.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

imap-send: add support for IPv6Benjamin Kramer Mon, 25 May 2009 19:13:54 +0000 (21:13 +0200)

imap-send: add support for IPv6

Add IPv6 support by implementing name resolution with the
protocol agnostic getaddrinfo(3) API. The old gethostbyname(3)
code is still available when git is compiled with NO_IPV6.

Signed-off-by: Benjamin Kramer <benny.kra@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.6.4Junio C Hamano Tue, 26 May 2009 02:46:17 +0000 (19:46 -0700)

Update draft release notes to 1.6.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Tue, 26 May 2009 02:44:52 +0000 (19:44 -0700)

Merge branch 'maint'

* maint:
Prepare for 1.6.3.2
fix cat-file usage message and documentation
fetch: report ref storage DF errors more accurately
lock_ref: inform callers of unavailable ref
merge-options.txt: Clarify merge --squash

Conflicts:
RelNotes

Prepare for 1.6.3.2Junio C Hamano Tue, 26 May 2009 02:20:39 +0000 (19:20 -0700)

Prepare for 1.6.3.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'js/maint-no-ln-across-libexec-and-bin... Junio C Hamano Tue, 26 May 2009 02:04:29 +0000 (19:04 -0700)

Merge branch 'js/maint-no-ln-across-libexec-and-bin' into maint

* js/maint-no-ln-across-libexec-and-bin:
Add NO_CROSS_DIRECTORY_HARDLINKS support to the Makefile

Conflicts:
Makefile

Merge branch 'lt/maint-diff-reduce-lstat' into maintJunio C Hamano Tue, 26 May 2009 02:04:08 +0000 (19:04 -0700)

Merge branch 'lt/maint-diff-reduce-lstat' into maint

* lt/maint-diff-reduce-lstat:
Teach 'git checkout' to preload the index contents
Avoid unnecessary 'lstat()' calls in 'get_stat_data()'

Merge branch 'jm/format-patch-no-auto-n-when-k-is-given... Junio C Hamano Tue, 26 May 2009 02:03:52 +0000 (19:03 -0700)

Merge branch 'jm/format-patch-no-auto-n-when-k-is-given' into maint

* jm/format-patch-no-auto-n-when-k-is-given:
format-patch let -k override a config-specified format.numbered

Merge branch 'do/maint-merge-recursive-fix' into maintJunio C Hamano Tue, 26 May 2009 02:03:43 +0000 (19:03 -0700)

Merge branch 'do/maint-merge-recursive-fix' into maint

* do/maint-merge-recursive-fix:
merge-recursive: never leave index unmerged while recursing

Merge branch 'jk/maint-1.6.0-trace-argv' into maintJunio C Hamano Tue, 26 May 2009 02:03:20 +0000 (19:03 -0700)

Merge branch 'jk/maint-1.6.0-trace-argv' into maint

* jk/maint-1.6.0-trace-argv:
fix GIT_TRACE segfault with shell-quoted aliases

Conflicts:
alias.c

Merge branch 'np/push-delta' into maintJunio C Hamano Tue, 26 May 2009 02:02:11 +0000 (19:02 -0700)

Merge branch 'np/push-delta' into maint

* np/push-delta:
allow OFS_DELTA objects during a push

Merge branch 'ar/merge-one-file-diag' into maintJunio C Hamano Tue, 26 May 2009 02:01:59 +0000 (19:01 -0700)

Merge branch 'ar/merge-one-file-diag' into maint

* ar/merge-one-file-diag:
Clarify kind of conflict in merge-one-file helper

Merge branch 'ar/unlink-err' into maintJunio C Hamano Tue, 26 May 2009 02:01:50 +0000 (19:01 -0700)

Merge branch 'ar/unlink-err' into maint

* ar/unlink-err:
print unlink(2) errno in copy_or_link_directory
replace direct calls to unlink(2) with unlink_or_warn
Introduce an unlink(2) wrapper which gives warning if unlink failed

Merge branch 'jk/maint-add-empty' into maintJunio C Hamano Tue, 26 May 2009 02:01:41 +0000 (19:01 -0700)

Merge branch 'jk/maint-add-empty' into maint

* jk/maint-add-empty:
add: don't complain when adding empty project root

fix cat-file usage message and documentationJeff King Mon, 25 May 2009 10:33:15 +0000 (06:33 -0400)

fix cat-file usage message and documentation

cat-file with an object on the command line requires an
option to tell it what to output (type, size, pretty-print,
etc). However, the square brackets in the usage imply that
those options are not required. This patch switches them to
parentheses to indicate "required but grouped-OR" (curly
braces might also work, but this follows the convention used
already by "git stash").

While we're at it, let's change the <sha1> specifier in the
usage to <object>. That's what the documentation uses, and
it does actually use the regular object lookup.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fetch: report ref storage DF errors more accuratelyJeff King Mon, 25 May 2009 10:40:54 +0000 (06:40 -0400)

fetch: report ref storage DF errors more accurately

When we fail to store a fetched ref, we recommend that the
user try running "git prune" to remove up any old refs that
have been deleted by the remote, which would clear up any DF
conflicts. However, ref storage might fail for other
reasons (e.g., permissions problems) in which case the
advice is useless and misleading.

This patch detects when there is an actual DF situation and
only issues the advice when one is found.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

lock_ref: inform callers of unavailable refJeff King Mon, 25 May 2009 10:37:15 +0000 (06:37 -0400)

lock_ref: inform callers of unavailable ref

One of the ways that locking might fail is that there is a
DF conflict between two refs (e.g., you want to lock
"foo/bar" but "foo" already exists). In this case, we return
an error, but there is no way for the caller to know the
specific problem.

This patch sets errno to ENOTDIR, which is the most sensible
code. It's what we would see if the refs were stored purely
in the filesystem (but these days we must check the
namespace manually due to packed refs).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

convert bare readlink to strbuf_readlinkJeff King Mon, 25 May 2009 10:46:09 +0000 (06:46 -0400)

convert bare readlink to strbuf_readlink

This particular readlink call never NUL-terminated its
result, making it a potential source of bugs (though there
is no bug now, as it currently always respects the length
field). Let's just switch it to strbuf_readlink which is
shorter and less error-prone.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t3701: ensure correctly set up repository after skipped... Johannes Sixt Mon, 25 May 2009 12:07:55 +0000 (14:07 +0200)

t3701: ensure correctly set up repository after skipped tests

There are two tests that are skipped if file modes are not obeyed by the
file system. In this case, the subsequent test failed because the
repository was in an unexpected state. This corrects it.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

merge-options.txt: Clarify merge --squashMichael J Gruber Mon, 25 May 2009 16:00:10 +0000 (18:00 +0200)

merge-options.txt: Clarify merge --squash

With the --squash option, merge sets up the index just like for a real
merge, but without the merge info (stages). Say so.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

parse-opts: add OPT_FILENAME and transition builtinsStephen Boyd Sat, 23 May 2009 18:53:13 +0000 (11:53 -0700)

parse-opts: add OPT_FILENAME and transition builtins

Commit dbd0f5c (Files given on the command line are relative to $cwd,
2008-08-06) introduced parse_options_fix_filename() as a minimal fix.
OPT_FILENAME is intended to be a more robust fix for the same issue.
OPT_FILENAME and its associated enum OPTION_FILENAME are used to
represent filename options within the parse options API.

This option is similar to OPTION_STRING. If --no is prefixed to the
option the filename is unset. If no argument is given and the default
value is set, the filename is set to the default value. The difference
is that the filename is prefixed with the prefix passed to
parse_options() (or parse_options_start()).

Update git-apply, git-commit, git-fmt-merge-msg, and git-tag to use
OPT_FILENAME with their filename options. Also, rename
parse_options_fix_filename() to fix_filename() as it is no longer
extern.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

parse-opts: prepare for OPT_FILENAMEStephen Boyd Sat, 23 May 2009 18:53:12 +0000 (11:53 -0700)

parse-opts: prepare for OPT_FILENAME

To give OPT_FILENAME the prefix, we pass the prefix to parse_options()
which passes the prefix to parse_options_start() which sets the prefix
member of parse_opts_ctx accordingly. If there isn't a prefix in the
calling context, passing NULL will suffice.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jc/mktree' into sb/opt-filenameJunio C Hamano Mon, 25 May 2009 08:04:10 +0000 (01:04 -0700)

Merge branch 'jc/mktree' into sb/opt-filename

* jc/mktree:
mktree: validate entry type in input
mktree --batch: build more than one tree object
mktree --missing: updated usage message and man page
mktree --missing: allow missing objects
t1010: add mktree test
mktree: do not barf on a submodule commit
builtin-mktree.c: use a helper function to handle one line of input
mktree: use parse-options
build-in git-mktree

Merge branch 'sb/format-patch-parseopt' into sb/opt... Junio C Hamano Mon, 25 May 2009 07:59:59 +0000 (00:59 -0700)

Merge branch 'sb/format-patch-parseopt' into sb/opt-filename

* sb/format-patch-parseopt:
format-patch: migrate to parse-options API

Conflicts:
builtin-log.c

Merge branch 'sb/show-branch-parse-options' into sb... Junio C Hamano Mon, 25 May 2009 07:59:29 +0000 (00:59 -0700)

Merge branch 'sb/show-branch-parse-options' into sb/opt-filename

* sb/show-branch-parse-options:
show-branch: migrate to parse-options API
parse-options: add PARSE_OPT_LITERAL_ARGHELP for complicated argh's

Conflicts:
parse-options.h

Merge branch 'master' into sb/opt-filenameJunio C Hamano Mon, 25 May 2009 07:59:07 +0000 (00:59 -0700)

Merge branch 'master' into sb/opt-filename

* master: (654 commits)
http-push.c::remove_locks(): fix use after free
t/t3400-rebase.sh: add more tests to help migrating git-rebase.sh to C
post-receive-email: hooks.showrev: show how to include both web link and patch
MinGW: Fix compiler warning in merge-recursive
MinGW: Add a simple getpass()
MinGW: use POSIX signature of waitpid()
MinGW: the path separator to split GITPERLLIB is ';' on Win32
MinGW: Scan for \r in addition to \n when reading shbang lines
gitweb: Sanitize title attribute in format_subject_html
Terminate argv with NULL before calling setup_revisions()
doc/git-rebase.txt: remove mention of multiple strategies
git-send-email: Handle quotes when parsing .mailrc files
git-svn: add --authors-prog option
git-svn: Set svn.authorsfile if it is passed to git svn clone
git-svn: Correctly report max revision when following deleted paths
git-svn: Fix for svn paths removed > log-window-size revisions ago
git-svn testsuite: use standard configuration for Subversion tools
grep: fix word-regexp colouring
completion: use git rev-parse to detect bare repos
Cope better with a _lot_ of packs
...

Change xdl_merge to generate output even for null mergesCharles Bailey Mon, 25 May 2009 00:21:14 +0000 (01:21 +0100)

Change xdl_merge to generate output even for null merges

xdl_merge used to have a check to ensure that there was at least
some change in one or other side being merged but this suppressed
output for the degenerate case when base, local and remote
contents were all identical.

Removing this check enables correct output in the degenerate case
and xdl_free_script handles freeing NULL scripts so there is no
need to have the check for these calls.

Signed-off-by: Charles Bailey <charles@hashpling.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t6023: merge-file fails to output anything for a degene... Charles Bailey Mon, 25 May 2009 00:21:13 +0000 (01:21 +0100)

t6023: merge-file fails to output anything for a degenerate merge

In the case that merge-file is passed three files with identical
contents it wipes the contents of the output file instead of
leaving it unchanged.

Althought merge-file is porcelain and this will never happen in
normal usage, it is still wrong.

Signed-off-by: Charles Bailey <charles@hashpling.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Sun, 24 May 2009 22:29:55 +0000 (15:29 -0700)

Merge branch 'maint'

* maint:
http-push.c::remove_locks(): fix use after free

Merge branch 'maint-1.6.2' into maintJunio C Hamano Sun, 24 May 2009 22:29:33 +0000 (15:29 -0700)

Merge branch 'maint-1.6.2' into maint

* maint-1.6.2:
http-push.c::remove_locks(): fix use after free

Merge branch 'maint-1.6.1' into maint-1.6.2Junio C Hamano Sun, 24 May 2009 22:29:23 +0000 (15:29 -0700)

Merge branch 'maint-1.6.1' into maint-1.6.2

* maint-1.6.1:
http-push.c::remove_locks(): fix use after free