gitweb.git
git-daemon: rewrite kindergarden, new option --max... Stephen R. van den Berg Thu, 14 Aug 2008 18:02:20 +0000 (20:02 +0200)

git-daemon: rewrite kindergarden, new option --max-connections

Get rid of the fixed array of children and make max-connections
dynamic and configurable.
Fix the killing code to actually kill the newest connections from
duplicate IP-addresses.
Avoid forking if too busy already.

Signed-off-by: Stephen R. van den Berg <srb@cuci.nl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-daemon: Simplify dead-children reaping logicStephen R. van den Berg Thu, 14 Aug 2008 18:02:20 +0000 (20:02 +0200)

git-daemon: Simplify dead-children reaping logic

Move almost all code out of the child_handler() into check_dead_children().
The fact that systemcalls get interrupted by signals allows us to
make the SIGCHLD signal handler almost a no-op by simply running
check_dead_children() right before waiting on poll().

In case some systems do not interrupt systemcalls upon signal receipt,
all zombies will eventually be collected before the next poll() cycle.

Signed-off-by: Stephen R. van den Berg <srb@cuci.nl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-daemon: use LOG_PID, simplify logging codeStephen R. van den Berg Thu, 14 Aug 2008 18:02:20 +0000 (20:02 +0200)

git-daemon: use LOG_PID, simplify logging code

Make git-daemon use LOG_PID like most daemons, instead of prepending the
pid to the message ourselves, when using syslog(3).

Simplify the logging code by setting stderr to line buffered, instead of
building a single string and writing it out with a single write(2).

Give an extra log message at the daemon start-up.

Signed-off-by: Stephen R. van den Berg <srb@cuci.nl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-daemon: call logerror() instead of error()Stephen R. van den Berg Thu, 14 Aug 2008 18:02:20 +0000 (20:02 +0200)

git-daemon: call logerror() instead of error()

Use logerror(), not error(), so that the messages won't be lost,
especially when running the daemon with its log sent to the syslog
facility.

Signed-off-by: Stephen R. van den Berg <srb@cuci.nl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-submodule - Add 'foreach' subcommandMark Levedahl Sun, 10 Aug 2008 23:10:04 +0000 (19:10 -0400)

git-submodule - Add 'foreach' subcommand

submodule foreach <command-list> will execute the list of commands in
each currently checked out submodule directory. The list of commands
is arbitrary as long as it is acceptable to sh. The variables '$path'
and '$sha1' are availble to the command-list, defining the submodule
path relative to the superproject and the submodules's commitID as
recorded in the superproject (this may be different than HEAD in the
submodule).

This utility is inspired by a number of threads on the mailing list
looking for ways to better integrate submodules in a tree and work
with them as a unit. This could include fetching a new branch in each
from a given source, or possibly checking out a given named branch in
each. Currently, there is no consensus as to what additional commands
should be implemented in the porcelain, requiring all users whose needs
exceed that of git-submodule to do their own scripting. The foreach
command is intended to support such scripting, and in particular does
no error checking and produces no output, thus allowing end users
complete control over any information printed out and over what
constitutes an error. The processing does terminate if the command-list
returns an error, but processing can easily be forced for all
submodules be terminating the list with ';true'.

Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix commit_tree() buffer leakStephan Beyer Mon, 11 Aug 2008 22:35:11 +0000 (00:35 +0200)

Fix commit_tree() buffer leak

The commit_tree() strbuf has a minimum size of 8k and it has not been
released yet. This patch releases the buffer.

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Teach git log --exit-code to return an appropriate... Peter Valdemar Mørch Mon, 11 Aug 2008 06:46:25 +0000 (08:46 +0200)

Teach git log --exit-code to return an appropriate exit code

Signed-off-by: Peter Valdemar Mørch <peter@morch.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Teach git log --check to return an appropriate exit... Peter Valdemar Mørch Mon, 11 Aug 2008 06:46:24 +0000 (08:46 +0200)

Teach git log --check to return an appropriate exit code

Signed-off-by: Peter Valdemar Mørch <peter@morch.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin-reflog: Allow reflog expire to name partial refPieter de Bie Sun, 10 Aug 2008 20:22:21 +0000 (22:22 +0200)

builtin-reflog: Allow reflog expire to name partial ref

This allows you to specify 'git reflog expire master' without needing
to give the full refname like 'git reflog expire refs/heads/master'

Signed-off-by: Pieter de Bie <pdebie@ai.rug.nl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Start 1.6.1 cycleJunio C Hamano Sun, 17 Aug 2008 22:48:51 +0000 (15:48 -0700)

Start 1.6.1 cycle

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

Start 1.6.0.X maintenance seriesJunio C Hamano Sun, 17 Aug 2008 22:44:11 +0000 (15:44 -0700)

Start 1.6.0.X maintenance series

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

GIT 1.6.0 v1.6.0Junio C Hamano Sun, 17 Aug 2008 18:42:10 +0000 (11:42 -0700)

GIT 1.6.0

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

Merge git-gui 0.11.0Junio C Hamano Sun, 17 Aug 2008 18:40:56 +0000 (11:40 -0700)

Merge git-gui 0.11.0

Merge branch 'ak/p4'Junio C Hamano Sun, 17 Aug 2008 17:53:57 +0000 (10:53 -0700)

Merge branch 'ak/p4'

* ak/p4:
Utilise our new p4_read_pipe and p4_write_pipe wrappers
Add p4 read_pipe and write_pipe wrappers
Put in the two other configuration elements found in the source
Put some documentation in about the parameters that have been added
Move git-p4.syncFromOrigin into a configuration parameters section
Consistently use 'git-p4' for the configuration entries
If the user has configured various parameters, use them.
Switch to using 'p4_build_cmd'
If we are in verbose mode, output what we are about to run (or return)
Add a single command that will be used to construct the 'p4' command
Utilise the new 'p4_system' function.
Have a command that specifically invokes 'p4' (via system)
Utilise the new 'p4_read_pipe_lines' command
Create a specific version of the read_pipe_lines command for p4 invocations

Conflicts:
contrib/fast-import/git-p4

count-objects: Add total pack size to verbose outputMarcus Griep Fri, 15 Aug 2008 04:20:20 +0000 (00:20 -0400)

count-objects: Add total pack size to verbose output

Adds the total pack size (including indexes) the verbose count-objects
output, floored to the nearest kilobyte.

Updates documentation to match this addition.

Signed-off-by: Marcus Griep <marcus@griep.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: use $TEST_DIRECTORY to refer to the t/ directoryJunio C Hamano Fri, 8 Aug 2008 09:26:28 +0000 (02:26 -0700)

tests: use $TEST_DIRECTORY to refer to the t/ directory

Many test scripts assumed that they will start in a 'trash' subdirectory
that is a single level down from the t/ directory, and referred to their
test vector files by asking for files like "../t9999/expect". This will
break if we move the 'trash' subdirectory elsewhere.

To solve this, we earlier introduced "$TEST_DIRECTORY" so that they can
refer to t/ directory reliably. This finally makes all the tests use
it to refer to the outside environment.

With this patch, and a one-liner not included here (because it would
contradict with what Dscho really wants to do):

| diff --git a/t/test-lib.sh b/t/test-lib.sh
| index 70ea7e0..60e69e4 100644
| --- a/t/test-lib.sh
| +++ b/t/test-lib.sh
| @@ -485,7 +485,7 @@ fi
| . ../GIT-BUILD-OPTIONS
|
| # Test repository
| -test="trash directory"
| +test="trash directory/another level/yet another"
| rm -fr "$test" || {
| trap - exit
| echo >&5 "FATAL: Cannot prepare test area"

all the tests still pass, but we would want extra sets of eyeballs on this
type of change to really make sure.

[jc: with help from Stephan Beyer on http-push tests I do not run myself;
credits for locating silly quoting errors go to Olivier Marin.]

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

Make push more verbose about illegal combination of... Marek Zawirski Sat, 16 Aug 2008 17:58:32 +0000 (19:58 +0200)

Make push more verbose about illegal combination of options

It may be unclear that --all, --mirror, --tags and/or explicit refspecs
are illegal combinations for git push.

Git was silently failing in these cases, while we can complaint more
properly about it.

Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

index: future proof for "extended" index entriesJunio C Hamano Sun, 17 Aug 2008 06:02:08 +0000 (23:02 -0700)

index: future proof for "extended" index entries

We do not have any more bits in the on-disk index flags word, but we would
need to have more in the future. Use the last remaining bits as a signal
to tell us that the index entry we are looking at is an extended one.

Since we do not understand the extended format yet, we will just error out
when we see it.

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

git-p4: chdir now properly sets PWD environment variabl... Robert Blum Fri, 1 Aug 2008 19:50:03 +0000 (12:50 -0700)

git-p4: chdir now properly sets PWD environment variable in msysGit

P4 on Windows expects the PWD environment variable to be set to the
current working dir, but os.chdir in python doesn't do so.

Signed-off-by: Robert Blum <rob.blum@gmail.com>
Acked-by: Simon Hausmann <simon@lst.de>
Acked-by: Han-Wen Nienhuys <hanwen@xs4all.nl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Improve error output of git-rebaseStephan Beyer Sun, 17 Aug 2008 04:25:43 +0000 (06:25 +0200)

Improve error output of git-rebase

"git rebase" without arguments on initial startup showed:

fatal: Needed a single revision
invalid upstream

This patch makes it show the ordinary usage string.

If .git/rebase-merge or .git/rebase-apply/rebasing exists, git-rebase
will die with a message saying that a rebase is in progress and the user
should try --skip/--abort/--continue.

If .git/rebase-apply/applying exists, git-rebase will die with a message
saying that git-am is in progress, regardless how many arguments are
given.

If no arguments are given and .git/rebase-apply/ exists, but neither a
rebasing nor applying file is in that directory, git-rebase dies with a
message saying that rebase-apply exists and no arguments were given.

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9300: replace '!' with test_must_failMiklos Vajna Sat, 16 Aug 2008 15:17:42 +0000 (17:17 +0200)

t9300: replace '!' with test_must_fail

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge git://git.kernel.org/pub/scm/gitk/gitkJunio C Hamano Sun, 17 Aug 2008 06:21:07 +0000 (23:21 -0700)

Merge git://git.kernel.org/pub/scm/gitk/gitk

* git://git.kernel.org/pub/scm/gitk/gitk:
gitk: Allow safely calling nukefile from a run queue handler

Git.pm: Make File::Spec and File::Temp requirement... Marcus Griep Fri, 15 Aug 2008 19:53:59 +0000 (15:53 -0400)

Git.pm: Make File::Spec and File::Temp requirement lazy

This will ensure that the API at large is accessible to nearly
all Perl versions, while only the temp file caching API is tied to
the File::Temp and File::Spec modules being available.

Signed-off-by: Marcus Griep <marcus@griep.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: document the pager.* configuration settingMiklos Vajna Sat, 16 Aug 2008 02:14:33 +0000 (04:14 +0200)

Documentation: document the pager.* configuration setting

It was already documented in RelNotes-1.6.0, but not in the git-config
manual page.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-stash: improve synopsis in help and manual pageStephan Beyer Sat, 16 Aug 2008 03:27:31 +0000 (05:27 +0200)

git-stash: improve synopsis in help and manual page

"git stash -h" showed some incomplete and ugly usage information.
For example, the useful "--keep-index" option for "save" or the "--index"
option for "apply" were not shown. Also in the documentation synopsis they
were not shown, so that there is no incentive to scroll down and even see
that such options exist.

This patch improves the git-stash synopsis in the documentation by
mentioning that further options to the stash commands and then copies
this synopsis to the usage information string of git-stash.sh.

For the latter, the dashless git command string has to be inserted on the
second and the following usage lines. The code of this is taken from
git-sh-setup so that all lines will show the command string.

Note that the "create" command is not advertised at all now, because
it was not mentioned in git-stash.txt.

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Makefile: building git in cygwin 1.7.0Eric Blake Fri, 15 Aug 2008 15:01:03 +0000 (15:01 +0000)

Makefile: building git in cygwin 1.7.0

On platforms with $X, make removes any leftover scripts 'a' from
earlier builds if a new binary 'a.exe' is now built. However, on
cygwin 1.7.0, 'git' and 'git.exe' now consistently name the same file.
Test for file equality before attempting a remove, in order to avoid
nuking just-built binaries.

Signed-off-by: Eric Blake <ebb9@byu.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-am: ignore --binary optionStephan Beyer Fri, 8 Aug 2008 23:28:54 +0000 (01:28 +0200)

git-am: ignore --binary option

The git-apply documentation says that --binary is a historical option.
This patch lets git-am ignore --binary and removes advertisements of this
option.

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bash-completion: Add non-command git help files to... Marcus Griep Fri, 15 Aug 2008 17:59:28 +0000 (13:59 -0400)

bash-completion: Add non-command git help files to bash-completion

Git allows access to the gitattributes man page via `git help attributes`,
but this is not discoverable via the bash-completion mechanism. This
patch adds all current non-command man pages to the completion candidate
list.

Signed-off-by: Marcus Griep <marcus@griep.us>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix t3700 on filesystems which do not support question... Alex Riesen Fri, 15 Aug 2008 07:32:30 +0000 (09:32 +0200)

Fix t3700 on filesystems which do not support question marks in names

Use square brackets instead.

And the prominent example of the deficiency are, as usual, the filesystems
of Microsoft house.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Utilise our new p4_read_pipe and p4_write_pipe wrappersAnand Kumria Thu, 14 Aug 2008 22:40:39 +0000 (23:40 +0100)

Utilise our new p4_read_pipe and p4_write_pipe wrappers

Signed-off-by: Anand Kumria <wildfire@progsoc.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add p4 read_pipe and write_pipe wrappersAnand Kumria Thu, 14 Aug 2008 22:40:38 +0000 (23:40 +0100)

Add p4 read_pipe and write_pipe wrappers

Two additional wrappers to cover 3 places where we utilise p4 in piped
form. Found by Tor Arvid Lund.

Signed-off-by: Anand Kumria <wildfire@progsoc.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bash completion: Add '--merge' long option for 'git... Lee Marlow Thu, 14 Aug 2008 22:41:11 +0000 (16:41 -0600)

bash completion: Add '--merge' long option for 'git log'

Signed-off-by: Lee Marlow <lee.marlow@gmail.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bash completion: Add completion for 'git mergetool'Lee Marlow Thu, 14 Aug 2008 22:41:10 +0000 (16:41 -0600)

bash completion: Add completion for 'git mergetool'

The --tool= long option to "git mergetool" can be completed with:

kdiff3 tkdiff meld xxdiff emerge
vimdiff gvimdiff ecmerge opendiff

Signed-off-by: Lee Marlow <lee.marlow@gmail.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git format-patch documentation: clarify what --cover... Matt McCutchen Thu, 14 Aug 2008 17:37:41 +0000 (13:37 -0400)

git format-patch documentation: clarify what --cover-letter does

Signed-off-by: Matt McCutchen <matt@mattmccutchen.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bash completion: 'git apply' should use 'fix' not ... Eric Raible Thu, 14 Aug 2008 17:12:54 +0000 (10:12 -0700)

bash completion: 'git apply' should use 'fix' not 'strip'

Bring completion up to date with the man page.

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

revision --simplify-merges: use decoration instead... Junio C Hamano Thu, 14 Aug 2008 17:59:44 +0000 (10:59 -0700)

revision --simplify-merges: use decoration instead of commit->util field

The users of revision walking machinery may want to use the util pointer
for their own use. Use decoration to hold the data needed during merge
simplification instead.

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

xdiff-interface: hide the whole "xdiff_emit_state"... Junio C Hamano Thu, 14 Aug 2008 06:18:22 +0000 (23:18 -0700)

xdiff-interface: hide the whole "xdiff_emit_state" business from the caller

This further enhances xdi_diff_outf() interface so that it takes two
common parameters: the callback function that processes one line at a
time, and a pointer to its application specific callback data structure.
xdi_diff_outf() creates its own "xdiff_emit_state" structure and stashes
these two away inside it, which is used by the lowest level output
function in the xdiff_outf() callchain, consume_one(), to call back to the
application layer. With this restructuring, we lift the requirement that
the caller supplied callback data structure embeds xdiff_emit_state
structure as its first member.

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

Update .gitignore to ignore git-helpGustaf Hendeby Wed, 13 Aug 2008 21:32:43 +0000 (23:32 +0200)

Update .gitignore to ignore git-help

Signed-off-by: Gustaf Hendeby <hendeby@isy.liu.se>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Use strbuf for struct xdiff_emit_state's remainderBrian Downing Thu, 14 Aug 2008 05:36:51 +0000 (00:36 -0500)

Use strbuf for struct xdiff_emit_state's remainder

Continually xreallocing and freeing the remainder member of struct
xdiff_emit_state was a noticeable performance hit. Use a strbuf
instead.

This yields a decent performance improvement on "git blame" on certain
repositories. For example, before this commit:

$ time git blame -M -C -C -p --incremental server.c >/dev/null
101.52user 0.17system 1:41.73elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+39561minor)pagefaults 0swaps

With this commit:

$ time git blame -M -C -C -p --incremental server.c >/dev/null
80.38user 0.30system 1:20.81elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+50979minor)pagefaults 0swaps

Signed-off-by: Brian Downing <bdowning@lavos.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Make xdi_diff_outf interface for running xdiff_outf... Brian Downing Thu, 14 Aug 2008 05:36:50 +0000 (00:36 -0500)

Make xdi_diff_outf interface for running xdiff_outf diffs

To prepare for the need to initialize and release resources for an
xdi_diff with the xdiff_outf output function, make a new function to
wrap this usage.

Old:

ecb.outf = xdiff_outf;
ecb.priv = &state;
...
xdi_diff(file_p, file_o, &xpp, &xecfg, &ecb);

New:

xdi_diff_outf(file_p, file_o, &state.xm, &xpp, &xecfg, &ecb);

Signed-off-by: Brian Downing <bdowning@lavos.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Thu, 14 Aug 2008 02:22:29 +0000 (19:22 -0700)

Merge branch 'maint'

* maint:
t5304-prune: adjust file mtime based on system time rather than file mtime
Fix escaping of glob special characters in pathspecs

t5304-prune: adjust file mtime based on system time... Brandon Casey Thu, 14 Aug 2008 00:49:30 +0000 (19:49 -0500)

t5304-prune: adjust file mtime based on system time rather than file mtime

test-chmtime can adjust the mtime of a file based on the file's mtime, or
based on the system time. For files accessed over NFS, the file's mtime is
set by the NFS server, and as such may vary a great deal from the NFS
client's system time if the clocks of the client and server are out of
sync. Since these tests are testing the expire feature of git-prune, an
incorrect mtime could cause a file to be expired or not expired incorrectly
and produce a test failure.

Avoid this NFS pitfall by modifying the calls to test-chmtime so that the
mtime is adjusted based on the system time, rather than the file's mtime.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test-parse-options: use appropriate cast in length_callbackBrandon Casey Thu, 14 Aug 2008 00:48:57 +0000 (19:48 -0500)

test-parse-options: use appropriate cast in length_callback

OPT_CALLBACK() is passed &integer which is now an "int" rather than
"unsigned long". Update the length_callback function.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix escaping of glob special characters in pathspecsKevin Ballard Wed, 13 Aug 2008 22:34:34 +0000 (15:34 -0700)

Fix escaping of glob special characters in pathspecs

match_one implements an optimized pathspec match where it only uses
fnmatch if it detects glob special characters in the pattern. Unfortunately
it didn't treat \ as a special character, so attempts to escape a glob
special character would fail even though fnmatch() supports it.

Signed-off-by: Kevin Ballard <kevin@sb.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rebase -i -p: fix parent rewritingThomas Rast Wed, 13 Aug 2008 21:41:24 +0000 (23:41 +0200)

rebase -i -p: fix parent rewriting

The existing parent rewriting did not handle the case where a previous
commit was amended (via edit or squash). Fix by always putting the
new sha1 of the last commit into the $REWRITTEN map.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>

rebase -i -p: handle index and workdir correctlyThomas Rast Wed, 13 Aug 2008 21:41:23 +0000 (23:41 +0200)

rebase -i -p: handle index and workdir correctly

'git rebase -i -p' forgot to update the index and working directory
during fast forwards. Fix this. Makes 'GIT_EDITOR=true rebase -i -p
<ancestor>' a no-op again.

Also, it attempted to do a fast forward even if it was instructed not
to commit (via -n). Fall back to the cherry-pick code path and let
that handle the issue for us.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>

GIT 1.6.0-rc3 v1.6.0-rc3Junio C Hamano Wed, 13 Aug 2008 04:42:22 +0000 (21:42 -0700)

GIT 1.6.0-rc3

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

Merge branch 'maint'Junio C Hamano Wed, 13 Aug 2008 05:46:22 +0000 (22:46 -0700)

Merge branch 'maint'

* maint:
Do not talk about "diff" in rev-list documentation.

Do not talk about "diff" in rev-list documentation.Junio C Hamano Mon, 11 Aug 2008 18:46:56 +0000 (11:46 -0700)

Do not talk about "diff" in rev-list documentation.

Since 8c02eee (git-rev-list(1): group options; reformat; document more
options, 2006-09-01), git-rev-list documentation talks as if it supports
any kind of diff output. It doesn't.

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

Merge git://git.bogomips.org/git-svnJunio C Hamano Wed, 13 Aug 2008 04:41:29 +0000 (21:41 -0700)

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

* git://git.bogomips.org/git-svn:
git-svn: Reduce temp file usage when dealing with non-links
git-svn: Make it incrementally faster by minimizing temp files
Git.pm: Add faculties to allow temp files to be cached

Documentation: rev-list-options: move --simplify-merges... Thomas Rast Mon, 11 Aug 2008 23:55:37 +0000 (01:55 +0200)

Documentation: rev-list-options: move --simplify-merges documentation

Fits --simplify-merges documentation into the 'History Simplification'
section, including example.

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

Merge branch 'jc/post-simplify' into tr/rev-list-docsJunio C Hamano Wed, 13 Aug 2008 04:40:05 +0000 (21:40 -0700)

Merge branch 'jc/post-simplify' into tr/rev-list-docs

* jc/post-simplify:
Topo-sort before --simplify-merges
revision traversal: show full history with merge simplification
revision.c: whitespace fix

Conflicts:
Documentation/rev-list-options.txt

git-svn: Reduce temp file usage when dealing with non... Marcus Griep Tue, 12 Aug 2008 16:45:39 +0000 (12:45 -0400)

git-svn: Reduce temp file usage when dealing with non-links

Currently, in sub 'close_file', git-svn creates a temporary file and
copies the contents of the blob to be written into it. This is useful
for symlinks because svn stores symlinks in the form:

link $FILE_PATH

Git creates a blob only out of '$FILE_PATH' and uses file mode to
indicate that the blob should be interpreted as a symlink.

As git-hash-object is invoked with --stdin-paths, a duplicate of the
link from svn must be created that leaves off the first five bytes,
i.e. 'link '. However, this is wholly unnecessary for normal blobs,
though, as we already have a temp file with their contents. Copying
the entire file gains nothing, and effectively requires a file to be
written twice before making it into the object db.

This patch corrects that issue, holding onto the substr-like
duplication for symlinks, but skipping it altogether for normal blobs
by reusing the existing temp file.

Signed-off-by: Marcus Griep <marcus@griep.us>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-svn: Make it incrementally faster by minimizing... Marcus Griep Tue, 12 Aug 2008 16:00:53 +0000 (12:00 -0400)

git-svn: Make it incrementally faster by minimizing temp files

Currently, git-svn would create a temp file on four occasions:
1. Reading a blob out of the object db
2. Creating a delta from svn
3. Hashing and writing a blob into the object db
4. Reading a blob out of the object db (in another place in code)

Any time git-svn did the above, it would dutifully create and then
delete said temp file. Unfortunately, this means that between 2-4
temporary files are created/deleted per file 'add/modify'-ed in
svn (O(n)). This causes significant overhead and helps the inode
counter to spin beautifully.

By its nature, git-svn is a serial beast. Thus, reusing a temp file
does not pose significant problems. "truncate and seek" takes much
less time than "unlink and create". This patch centralizes the
tempfile creation and holds onto the tempfile until they are deleted
on exit. This significantly reduces file overhead, now requiring
at most three (3) temp files per run (O(1)).

Signed-off-by: Marcus Griep <marcus@griep.us>
Acked-by: Eric Wong <normalperson@yhbt.net>

Git.pm: Add faculties to allow temp files to be cachedMarcus Griep Tue, 12 Aug 2008 16:00:18 +0000 (12:00 -0400)

Git.pm: Add faculties to allow temp files to be cached

This patch offers a generic interface to allow temp files to be
cached while using an instance of the 'Git' package. If many
temp files are created and destroyed during the execution of a
program, this caching mechanism can help reduce the amount of
files created and destroyed by the filesystem.

The temp_acquire method provides a weak guarantee that a temp
file will not be stolen by subsequent requests. If a file is
locked when another acquire request is made, a simple error is
thrown.

Signed-off-by: Marcus Griep <marcus@griep.us>
Acked-by: Eric Wong <normalperson@yhbt.net>

Documentation: rev-list-options: Rewrite simplification... Thomas Rast Mon, 11 Aug 2008 23:55:36 +0000 (01:55 +0200)

Documentation: rev-list-options: Rewrite simplification descriptions for clarity

This completely rewrites the documentation of --full-history with lots
of examples.

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

filter-branch: use --simplify-mergesThomas Rast Tue, 12 Aug 2008 08:45:59 +0000 (10:45 +0200)

filter-branch: use --simplify-merges

Use rev-list --simplify-merges everywhere. This changes the behaviour
of --subdirectory-filter in cases such as

O -- A -\
\ \
\- B -- M

where A and B bring the same changes to the subdirectory: It now keeps
both sides of the merge. Previously, the history would have been
simplified to 'O -- A'. Merges of unrelated side histories that never
touch the subdirectory are still removed.

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

Merge branch 'jc/post-simplify' into tr/filter-branchJunio C Hamano Wed, 13 Aug 2008 00:27:28 +0000 (17:27 -0700)

Merge branch 'jc/post-simplify' into tr/filter-branch

* jc/post-simplify:
Topo-sort before --simplify-merges
revision traversal: show full history with merge simplification
revision.c: whitespace fix

filter-branch: fix ref rewriting with --subdirectory... Thomas Rast Tue, 12 Aug 2008 08:45:58 +0000 (10:45 +0200)

filter-branch: fix ref rewriting with --subdirectory-filter

The previous ancestor discovery code failed on any refs that are
(pre-rewrite) ancestors of commits marked for rewriting. This means
that in a situation

A -- B(topic) -- C(master)

where B is dropped by --subdirectory-filter pruning, the 'topic' was
not moved up to A as intended, but left unrewritten because we asked
about 'git rev-list ^master topic', which does not return anything.

Instead, we use the straightforward

git rev-list -1 $ref -- $filter_subdir

to find the right ancestor. To justify this, note that the nearest
ancestor is unique: We use the output of

git rev-list --parents -- $filter_subdir

to rewrite commits in the first pass, before any ref rewriting. If B
is a non-merge commit, the only candidate is its parent. If it is a
merge, there are two cases:

- All sides of the merge bring the same subdirectory contents. Then
rev-list already pruned away the merge in favour for just one of its
parents, so there is only one candidate.

- Some merge sides, or the merge outcome, differ. Then the merge is
not pruned and can be rewritten directly.

So it is always safe to use rev-list -1.

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

filter-branch: Extend test to show rewriting bugThomas Rast Tue, 12 Aug 2008 08:45:57 +0000 (10:45 +0200)

filter-branch: Extend test to show rewriting bug

This extends the --subdirectory-filter test in t7003 to demonstrate a
rewriting bug: when rewriting two refs A and B such that B is an
ancestor of A, it fails to rewrite B.

The underlying issue is that the rev-list invocation at
git-filter-branch.sh:332 more or less boils down to

git rev-list B --boundary ^A

which outputs nothing because B is an ancestor of A.

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

Teach git diff about BibTeX head hunk patternsGustaf Hendeby Tue, 12 Aug 2008 14:24:26 +0000 (16:24 +0200)

Teach git diff about BibTeX head hunk patterns

All BibTeX entries starts with an @ followed by an entry type. Since
there are many entry types and own can be defined, the pattern matches
legal entry type names instead of just the default types (which would
be a long list). The pattern also matches strings and comments since
they will also be useful to position oneself in a bib-file.

Signed-off-by: Gustaf Hendeby <hendeby@isy.liu.se>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitattributes: Document built in hunk header patternsGustaf Hendeby Tue, 12 Aug 2008 14:24:25 +0000 (16:24 +0200)

gitattributes: Document built in hunk header patterns

Since the hunk header pattern text was written patterns for Ruby and
Pascal/Delphi have been added. For users to be able to find them they
should be documented not only in code.

Signed-off-by: Gustaf Hendeby <hendeby@isy.liu.se>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-daemon: SysV needs the signal handler reinstated.Stephen R. van den Berg Tue, 12 Aug 2008 19:36:13 +0000 (21:36 +0200)

git-daemon: SysV needs the signal handler reinstated.

Fixes the bug on (amongst others) Solaris that only the first
child ever is reaped.

Signed-off-by: Stephen R. van den Berg <srb@cuci.nl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

pack-objects: Allow missing base objects when creating... Shawn O. Pearce Tue, 12 Aug 2008 18:31:06 +0000 (11:31 -0700)

pack-objects: Allow missing base objects when creating thin packs

If we are building a thin pack and one of the base objects we would
consider for deltification is missing its OK, the other side already
has that base object. We may be able to get a delta from another
object, or we can simply send the new object whole (no delta).

This change allows a shallow clone to store only the objects which
are unique to it, as well as the boundary commit and its trees, but
avoids storing the boundary blobs. This special form of a shallow
clone is able to represent just the difference between two trees.

Pack objects change suggested by Nicolas Pitre.

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

diff --check: do not unconditionally complain about... Junio C Hamano Tue, 12 Aug 2008 05:15:28 +0000 (22:15 -0700)

diff --check: do not unconditionally complain about trailing empty lines

Recently "git diff --check" learned to detect new trailing blank lines
just like "git apply --whitespace" does. However this check should not
trigger unconditionally. This patch makes it honor the whitespace
settings from core.whitespace and gitattributes.

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

Merge branch 'maint'Junio C Hamano Tue, 12 Aug 2008 02:24:28 +0000 (19:24 -0700)

Merge branch 'maint'

* maint:
git-bisect: fix wrong usage of read(1)

Put in the two other configuration elements found in... Anand Kumria Sun, 10 Aug 2008 18:26:35 +0000 (19:26 +0100)

Put in the two other configuration elements found in the source

I am not entirely clear what these parameters do but felt it
useful to call them out in the documentation.

Signed-off-by: Anand Kumria <wildfire@progsoc.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Put some documentation in about the parameters that... Anand Kumria Sun, 10 Aug 2008 18:26:34 +0000 (19:26 +0100)

Put some documentation in about the parameters that have been added

Signed-off-by: Anand Kumria <wildfire@progsoc.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Move git-p4.syncFromOrigin into a configuration paramet... Anand Kumria Sun, 10 Aug 2008 18:26:33 +0000 (19:26 +0100)

Move git-p4.syncFromOrigin into a configuration parameters section

Signed-off-by: Anand Kumria <wildfire@progsoc.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Consistently use 'git-p4' for the configuration entriesAnand Kumria Sun, 10 Aug 2008 18:26:32 +0000 (19:26 +0100)

Consistently use 'git-p4' for the configuration entries

Signed-off-by: Anand Kumria <wildfire@progsoc.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

If the user has configured various parameters, use... Anand Kumria Sun, 10 Aug 2008 18:26:31 +0000 (19:26 +0100)

If the user has configured various parameters, use them.

Some repositories require authentication and access to certain
hosts. Allow git-p4 to pull this information from the configuration

Signed-off-by: Anand Kumria <wildfire@progsoc.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Switch to using 'p4_build_cmd'Anand Kumria Sun, 10 Aug 2008 18:26:30 +0000 (19:26 +0100)

Switch to using 'p4_build_cmd'

Signed-off-by: Anand Kumria <wildfire@progsoc.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

If we are in verbose mode, output what we are about... Anand Kumria Sun, 10 Aug 2008 18:26:29 +0000 (19:26 +0100)

If we are in verbose mode, output what we are about to run (or return)

Signed-off-by: Anand Kumria <wildfire@progsoc.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add a single command that will be used to construct... Anand Kumria Sun, 10 Aug 2008 18:26:28 +0000 (19:26 +0100)

Add a single command that will be used to construct the 'p4' command

Rather than having three locations where the 'p4' command is built up,
refactor this into the one place. This will, eventually, allow us to
have one place where we modify the evironment or pass extra
command-line options to the 'p4' binary.

Signed-off-by: Anand Kumria <wildfire@progsoc.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Utilise the new 'p4_system' function.Anand Kumria Sun, 10 Aug 2008 18:26:27 +0000 (19:26 +0100)

Utilise the new 'p4_system' function.

Signed-off-by: Anand Kumria <wildfire@progsoc.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Have a command that specifically invokes 'p4' (via... Anand Kumria Sun, 10 Aug 2008 18:26:26 +0000 (19:26 +0100)

Have a command that specifically invokes 'p4' (via system)

Similiar to our 'p4_read_pipe_lines' command, we can isolate
specific changes to the invocation method in the one location
with this change.

Signed-off-by: Anand Kumria <wildfire@progsoc.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Utilise the new 'p4_read_pipe_lines' commandAnand Kumria Sun, 10 Aug 2008 18:26:25 +0000 (19:26 +0100)

Utilise the new 'p4_read_pipe_lines' command

Now that we have the new command, we can utilise it and then
eventually, isolate any changes required to the one place.

Signed-off-by: Anand Kumria <wildfire@progsoc.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Create a specific version of the read_pipe_lines comman... Anand Kumria Sun, 10 Aug 2008 18:26:24 +0000 (19:26 +0100)

Create a specific version of the read_pipe_lines command for p4 invocations

This will make it easier to isolate changes to how 'p4' is invoked
(whether with parameters or not, etc.).

Signed-off-by: Anand Kumria <wildfire@progsoc.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: rev-list-options: Fix a typoThomas Rast Mon, 11 Aug 2008 23:55:35 +0000 (01:55 +0200)

Documentation: rev-list-options: Fix a typo

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

Adjust for the new way of enabling the default post... Petr Baudis Mon, 11 Aug 2008 22:34:46 +0000 (00:34 +0200)

Adjust for the new way of enabling the default post-update hook

The post-update hook, which is required to be enabled in order for
the repository to be accessible over HTTP, is not enabled by
chmod a+x anymore, but instead by dropping the .sample suffix.

This patch emphasizes this change in the release notes (since
I believe this is rather noticeable backwards-incompatible change).
It also adjusts the documentation which still described the old way
and fixes t/t5540-http-push.sh, which was broken for 1.5 month
but apparently noone ever runs this test.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-bisect: fix wrong usage of read(1)Francis Moreau Mon, 11 Aug 2008 17:37:46 +0000 (19:37 +0200)

git-bisect: fix wrong usage of read(1)

Signed-off-by: Francis Moreau <francis.moro@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix typo in comments of longest_ancestor_length()Nguyễn Thái Ngọc Duy Sun, 10 Aug 2008 15:26:23 +0000 (22:26 +0700)

Fix typo in comments of longest_ancestor_length()

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Make cherry-pick use rerere for conflict resolution.Abhijit Menon-Sen Sun, 10 Aug 2008 11:48:55 +0000 (17:18 +0530)

Make cherry-pick use rerere for conflict resolution.

Cherry-picking can be helped by reusing previous confliction
resolution by invoking rerere automatically.

Signed-off-by: Abhijit Menon-Sen <ams@toroid.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

checkout --track: make up a sensible branch name if... Johannes Schindelin Sat, 9 Aug 2008 14:00:12 +0000 (16:00 +0200)

checkout --track: make up a sensible branch name if '-b' was omitted

What does the user most likely want with this command?

$ git checkout --track origin/next

Exactly. A branch called 'next', that tracks origin's branch 'next'.
Make it so.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Mon, 11 Aug 2008 21:28:35 +0000 (14:28 -0700)

Merge branch 'maint'

* maint:
Re-fix rev-list-options documentation

Re-fix rev-list-options documentationJunio C Hamano Mon, 11 Aug 2008 21:24:51 +0000 (14:24 -0700)

Re-fix rev-list-options documentation

18a2197 (Documentation: rev-list-options: Fix -g paragraph formatting,
2008-08-10) introduced the third paragraph that is continued, but it seems
to confuse docbook toolchain on FC9 machines.

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

Add test for diff-tree --stdin with two treesKarl Hasselström Sun, 10 Aug 2008 16:13:04 +0000 (18:13 +0200)

Add test for diff-tree --stdin with two trees

Signed-off-by: Karl Hasselström <kha@treskal.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Teach git diff-tree --stdin to diff treesKarl Hasselström Sun, 10 Aug 2008 16:12:58 +0000 (18:12 +0200)

Teach git diff-tree --stdin to diff trees

When feeding trees on the command line, you can give exactly two
trees, not three nor one; --stdin now supports this "two tree" form on
its input, in addition to accepting lines with one or more commits.

When diffing trees (either specified on the command line or from the
standard input), the -s, -v, --pretty, --abbrev-commit, --encoding,
--no-commit-id, and --always options are ignored, since they do not
apply to trees; and the -m, -c, and --cc options are ignored since
they would be meaningful only with three or more trees, which is not
supported (yet).

Signed-off-by: Karl Hasselström <kha@treskal.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff-tree: Note that the commit ID is printed with... Karl Hasselström Sun, 10 Aug 2008 16:12:53 +0000 (18:12 +0200)

diff-tree: Note that the commit ID is printed with --stdin

It's sort of already documented with the --no-commit-id command-line
flag, but let's not hide important information from the user.

Signed-off-by: Karl Hasselström <kha@treskal.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Refactoring: Split up diff_tree_stdinKarl Hasselström Fri, 8 Aug 2008 20:48:23 +0000 (22:48 +0200)

Refactoring: Split up diff_tree_stdin

Into a first half that determines what operation to do, and a second
half that does it.

Currently the only operation is diffing one or more commits, but a
later patch will add diffing of trees, at which point this refactoring
will pay off.

Signed-off-by: Karl Hasselström <kha@treskal.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Mon, 11 Aug 2008 07:53:31 +0000 (00:53 -0700)

Merge branch 'maint'

* maint:
Documentation: fix invalid reference to 'mybranch' in user manual
Fix deleting reflog entries from HEAD reflog
reflog test: add more tests for 'reflog delete'
Documentation: rev-list-options: Fix -g paragraph formatting

Conflicts:
Documentation/user-manual.txt

Documentation: fix invalid reference to 'mybranch'... Ivan Stankovic Sun, 10 Aug 2008 16:22:14 +0000 (18:22 +0200)

Documentation: fix invalid reference to 'mybranch' in user manual

Signed-off-by: Ivan Stankovic <pokemon@fly.srk.fer.hr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix deleting reflog entries from HEAD reflogJunio C Hamano Mon, 11 Aug 2008 06:21:25 +0000 (23:21 -0700)

Fix deleting reflog entries from HEAD reflog

dwim_ref() used to resolve HEAD symbolic ref to its target (i.e. current
branch). This incorrectly removed the reflog entry from the current
branch when 'git reflog delete HEAD@{1}' was asked for.

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

reflog test: add more tests for 'reflog delete'Pieter de Bie Sat, 9 Aug 2008 23:33:29 +0000 (01:33 +0200)

reflog test: add more tests for 'reflog delete'

This adds more tests for 'reflog delete' and marks it as
broken, as currently a call to 'git reflog delete HEAD@{1}'
deletes entries in the currently checked out branch's log,
not the HEAD log.

Noticed by John Wiegley

Signed-off-by: Pieter de Bie <pdebie@ai.rug.nl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: rev-list-options: Fix -g paragraph forma... Thomas Rast Sun, 10 Aug 2008 13:04:34 +0000 (15:04 +0200)

Documentation: rev-list-options: Fix -g paragraph formatting

- Add an escape to @{now}. Without the escape, the brace does
something magic and eats half the sentence up to the closing brace
at 'timestamp}'.

- Join the last paragraph with a '+'.

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

gitk: Allow safely calling nukefile from a run queue... Alexander Gavrilov Sat, 9 Aug 2008 10:41:50 +0000 (14:41 +0400)

gitk: Allow safely calling nukefile from a run queue handler

Originally dorunq assumed that the queue entry remained first
in the queue after the script eval, and blindly removed it.
However, if the handler calls nukefile, it may not be the
case anymore, and a random queue entry gets dropped instead.

This makes dorunq remove the entry before calling the
script, and adds a global variable to allow other functions
to determine if they are called from within a dorunq handler.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>

git-gui 0.11 gitgui-0.11.0Shawn O. Pearce Sun, 10 Aug 2008 07:02:08 +0000 (00:02 -0700)

git-gui 0.11

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Update draft RelNotes for 1.6.0Junio C Hamano Sat, 9 Aug 2008 22:11:48 +0000 (15:11 -0700)

Update draft RelNotes for 1.6.0

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

Merge branch 'maint'Junio C Hamano Sat, 9 Aug 2008 08:40:08 +0000 (01:40 -0700)

Merge branch 'maint'

* maint:
asciidoc markup fixes
Fail properly when cloning from invalid HTTP URL

Conflicts:
Documentation/git-push.txt

mailinfo: fix MIME multi-part message boundary handlingJunio C Hamano Sat, 9 Aug 2008 08:17:24 +0000 (01:17 -0700)

mailinfo: fix MIME multi-part message boundary handling

After finding a MIME multi-part message boundary line, the handle_body()
function is supposed to first flush any accumulated contents from the
previous part to the output stream. However, the code mistakenly output
the boundary line it found.

The old code that used one global, fixed-length buffer line[] used an
alternate static buffer newline[] for keeping track of this accumulated
contents and flushed newline[] upon seeing the boundary; when 3b6121f
(git-mailinfo: use strbuf's instead of fixed buffers, 2008-07-13)
converted a fixed-length buffer in this program to use strbuf,these two
buffers were converted to "line" and "prev" (the latter of which now has a
much more sensible name) strbufs, but the code mistakenly flushed "line"
(which contains the boundary we have just found), instead of "prev".

This resulted in the first boundary to be output in front of the first
line of the message.

The rewritten implementation of handle_boundary() lost the terminating
newline; this would then result in the second line of the message to be
stuck with the first line.

The is_multipart_boundary() was designed to catch both the internal
boundary and the terminating one (the one with trailing "--"); this also
was broken with the rewrite, and the code in the handle_boundary() to
handle the terminating boundary was never triggered.

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