gitweb.git
revert: tolerate extra spaces, tabs in insn sheetRamkumar Ramachandra Wed, 14 Dec 2011 16:54:30 +0000 (22:24 +0530)

revert: tolerate extra spaces, tabs in insn sheet

Tolerate extra spaces and tabs as part of the the field separator in
'.git/sequencer/todo', for people with fat fingers.

Suggested-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert: make commit subjects in insn sheet optionalRamkumar Ramachandra Wed, 14 Dec 2011 16:54:29 +0000 (22:24 +0530)

revert: make commit subjects in insn sheet optional

Change the instruction sheet format subtly so that the subject of the
commit message that follows the object name is optional. As a result,
an instruction sheet like this is now perfectly valid:

pick 35b0426
pick fbd5bbcbc2e
pick 7362160f

While at it, also fix a bug introduced by 5a5d80f4 (revert: Introduce
--continue to continue the operation, 2011-08-04) that failed to read
lines that are too long to fit on the commit-id-shaped buffer we
currently use; eliminate the need for the buffer altogether. In
addition to literal SHA-1 hexes, you can now safely use expressions
like the following in the instruction sheet:

featurebranch~4
rr/revert-cherry-pick-continue^2~12@{12 days ago}

[jc: simplify parsing]

Suggested-by: Jonathan Nieder <jrnieder@gmail.com>
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert: free msg in format_todo()Ramkumar Ramachandra Wed, 14 Dec 2011 16:54:28 +0000 (22:24 +0530)

revert: free msg in format_todo()

Memory allocated to the fields of msg by get_message() isn't freed.
This is potentially a big leak, because fresh memory is allocated to
store the commit message for each commit. Fix this using
free_message().

Reported-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert: stop creating and removing sequencer-old directoryJonathan Nieder Sat, 10 Dec 2011 13:06:12 +0000 (07:06 -0600)

revert: stop creating and removing sequencer-old directory

Now that "git reset" no longer implicitly removes .git/sequencer that
the operator may or may not have wanted to keep, the logic to write a
backup copy of .git/sequencer and remove it when stale is not needed
any more. Simplify the sequencer API and repository layout by
dropping it.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Revert "reset: Make reset remove the sequencer state"Jonathan Nieder Sat, 10 Dec 2011 13:03:48 +0000 (07:03 -0600)

Revert "reset: Make reset remove the sequencer state"

This reverts commit 95eb88d8ee588d89b4f06d2753ed4d16ab13b39f, which
was a UI experiment that did not reflect how "git reset" actually gets
used. The reversion also fixes a test, indicated in the patch.

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

revert: do not remove state until sequence is finishedJonathan Nieder Sat, 10 Dec 2011 13:02:12 +0000 (07:02 -0600)

revert: do not remove state until sequence is finished

As v1.7.8-rc0~141^2~4 (2011-08-04) explains, git cherry-pick removes
the sequencer state just before applying the final patch. In the
single-pick case, that was a good thing, since --abort and --continue
work fine without access to such state and removing it provides a
signal that git should not complain about the need to clobber it ("a
cherry-pick or revert is already in progress") in sequences like the
following:

git cherry-pick foo
git read-tree -m -u HEAD; # forget that; let's try a different one
git cherry-pick bar

After the recent patch "allow single-pick in the middle of cherry-pick
sequence" we don't need that hack any more. In the new regime, a
traditional "git cherry-pick <commit>" command never looks at
.git/sequencer, so we do not need to cripple "git cherry-pick
<commit>..<commit>" for it any more.

So now you can run "git cherry-pick --abort" near the end of a
multi-pick sequence and it will abort the entire sequence, instead of
misbehaving and aborting just the final commit.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert: allow single-pick in the middle of cherry-pick... Jonathan Nieder Sat, 10 Dec 2011 12:59:48 +0000 (06:59 -0600)

revert: allow single-pick in the middle of cherry-pick sequence

After messing up a difficult conflict resolution in the middle of a
cherry-pick sequence, it can be useful to be able to

git checkout HEAD . && git cherry-pick that-one-commit

to restart the conflict resolution. The current code however errors out
saying that another cherry-pick is already in progress.

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

revert: pass around rev-list args in already-parsed... Jonathan Nieder Sat, 13 Aug 2011 17:06:23 +0000 (12:06 -0500)

revert: pass around rev-list args in already-parsed form

Since 7e2bfd3f (revert: allow cherry-picking more than one commit,
2010-07-02), the pick/revert machinery has kept track of the set of
commits to be cherry-picked or reverted using commit_argc and
commit_argv variables, storing the corresponding command-line
parameters.

Future callers as other commands are built in (am, rebase, sequencer)
may find it easier to pass rev-list options to this machinery in
already-parsed form. Teach cmd_cherry_pick and cmd_revert to parse
the rev-list arguments in advance and pass the commit set to
pick_revisions() as a rev_info structure.

Original patch by Jonathan, tweaks and test from Ram.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Improved-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert: allow cherry-pick --continue to commit before... Jonathan Nieder Sat, 10 Dec 2011 12:49:25 +0000 (06:49 -0600)

revert: allow cherry-pick --continue to commit before resuming

When "git cherry-pick ..bar" encounters conflicts, permit the operator
to use cherry-pick --continue after resolving them as a shortcut for
"git commit && git cherry-pick --continue" to record the resolution
and carry on with the rest of the sequence.

This improves the analogy with "git rebase" (in olden days --continue
was the way to preserve authorship when a rebase encountered
conflicts) and fits well with a general UI goal of making "git cmd
--continue" save humans the trouble of deciding what to do next.

Example: after encountering a conflict from running "git cherry-pick
foo bar baz":

CONFLICT (content): Merge conflict in main.c
error: could not apply f78a8d98c... bar!
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'

We edit main.c to resolve the conflict, mark it acceptable with "git
add main.c", and can run "cherry-pick --continue" to resume the
sequence.

$ git cherry-pick --continue
[editor opens to confirm commit message]
[master 78c8a8c98] bar!
1 files changed, 1 insertions(+), 1 deletions(-)
[master 87ca8798c] baz!
1 files changed, 1 insertions(+), 1 deletions(-)

This is done for both codepaths to pick multiple commits and a single
commit.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert: give --continue handling its own functionJonathan Nieder Sat, 10 Dec 2011 12:47:36 +0000 (06:47 -0600)

revert: give --continue handling its own function

This makes pick_revisions() a little shorter and easier to read
straight through.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert --abort: do not leave behind useless sequencer... Jonathan Nieder Wed, 23 Nov 2011 10:04:52 +0000 (04:04 -0600)

revert --abort: do not leave behind useless sequencer-old directory

The "git cherry-pick --abort" command currently renames the
.git/sequencer directory to .git/sequencer-old instead of removing it
on success due to an accident. cherry-pick --abort is designed to
work in three steps:

1) find which commit to roll back to
2) call "git reset --merge <commit>" to move to that commit
3) remove the .git/sequencer directory

But the careless author forgot step 3 entirely. The only reason the
command worked anyway is that "git reset --merge <commit>" renames the
.git/sequencer directory as a secondary effect --- after moving to
<commit>, or so the logic goes, it is unlikely but possible that the
caller of git reset wants to continue the series of cherry-picks that
was in progress, so git renames the sequencer state to
.git/sequencer-old to be helpful while allowing the cherry-pick to be
resumed if the caller did not want to end the sequence after all.

By running "git cherry-pick --abort", the operator has clearly
indicated that she is not planning to continue cherry-picking. Remove
the (renamed) .git/sequencer directory as intended all along.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix revert --abort on WindowsJohannes Sixt Wed, 23 Nov 2011 08:49:38 +0000 (09:49 +0100)

Fix revert --abort on Windows

On Windows, it is not possible to rename or remove a directory that has
open files. 'revert --abort' renamed .git/sequencer when it still had
.git/sequencer/head open. Close the file as early as possible to allow
the rename operation on Windows.

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

revert: do not pass non-literal string as format to... Nguyễn Thái Ngọc Duy Wed, 23 Nov 2011 12:45:36 +0000 (19:45 +0700)

revert: do not pass non-literal string as format to git_path()

This fixes the following warning.

CC builtin/revert.o
builtin/revert.c: In function ‘write_cherry_pick_head’:
builtin/revert.c:311: warning: format not a string literal and no format arguments

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

Update 1.7.8 draft release notes in preparation for rc4Junio C Hamano Wed, 23 Nov 2011 02:23:36 +0000 (18:23 -0800)

Update 1.7.8 draft release notes in preparation for rc4

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

Merge branch 'jn/revert-quit'Junio C Hamano Wed, 23 Nov 2011 02:22:08 +0000 (18:22 -0800)

Merge branch 'jn/revert-quit'

* jn/revert-quit:
revert: remove --reset compatibility option
revert: introduce --abort to cancel a failed cherry-pick
revert: write REVERT_HEAD pseudoref during conflicted revert
revert: improve error message for cherry-pick during cherry-pick
revert: rearrange pick_revisions() for clarity
revert: rename --reset option to --quit

revert: remove --reset compatibility optionJonathan Nieder Tue, 22 Nov 2011 11:20:46 +0000 (05:20 -0600)

revert: remove --reset compatibility option

Remove the "git cherry-pick --reset" option, which has a different
preferred spelling nowadays ("--quit"). Luckily the old --reset name
was not around long enough for anyone to get used to it.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert: introduce --abort to cancel a failed cherry... Jonathan Nieder Wed, 23 Nov 2011 01:27:21 +0000 (19:27 -0600)

revert: introduce --abort to cancel a failed cherry-pick

After running some ill-advised command like "git cherry-pick
HEAD..linux-next", the bewildered novice may want to return to more
familiar territory. Introduce a "git cherry-pick --abort" command
that rolls back the entire cherry-pick sequence and places the
repository back on solid ground.

Just like "git merge --abort", this internally uses "git reset
--merge", so local changes not involved in the conflict resolution are
preserved.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert: write REVERT_HEAD pseudoref during conflicted... Jonathan Nieder Tue, 22 Nov 2011 11:17:36 +0000 (05:17 -0600)

revert: write REVERT_HEAD pseudoref during conflicted revert

When conflicts are encountered while reverting a commit, it can be
handy to have the name of that commit easily available. For example,
to produce a copy of the patch to refer to while resolving conflicts:

$ git revert 2eceb2a8
error: could not revert 2eceb2a8... awesome, buggy feature
$ git show -R REVERT_HEAD >the-patch
$ edit $(git diff --name-only)

Set a REVERT_HEAD pseudoref when "git revert" does not make a commit,
for cases like this. This also makes it possible for scripts to
distinguish between a revert that encountered conflicts and other
sources of an unmerged index.

After successfully committing, resetting with "git reset", or moving
to another commit with "git checkout" or "git reset", the pseudoref is
no longer useful, so remove it.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert: improve error message for cherry-pick during... Jonathan Nieder Tue, 22 Nov 2011 11:15:47 +0000 (05:15 -0600)

revert: improve error message for cherry-pick during cherry-pick

In the spirit of v1.6.3.3~3^2 (refuse to merge during a merge,
2009-07-01), "git cherry-pick" refuses to start a new cherry-pick when
in the middle of an existing conflicted cherry-pick in the following
sequence:

1. git cherry-pick HEAD..origin
2. resolve conflicts
3. git cherry-pick HEAD..origin (instead of "git cherry-pick
--continue", by mistake)

Good. However, the error message on attempting step 3 is more
convoluted than necessary:

$ git cherry-pick HEAD..origin
error: .git/sequencer already exists.
error: A cherry-pick or revert is in progress.
hint: Use --continue to continue the operation
hint: or --quit to forget about it
fatal: cherry-pick failed

Clarify by removing the redundant first "error:" message, simplifying
the advice, and using lower-case and no full stops to be consistent
with other commands that prefix their messages with "error:", so it
becomes

error: a cherry-pick or revert is already in progress
hint: try "git cherry-pick (--continue | --quit)"
fatal: cherry-pick failed

The "fatal: cherry-pick failed" line seems unnecessary, too, but
that can be fixed some other day.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert: rearrange pick_revisions() for clarityJonathan Nieder Tue, 22 Nov 2011 11:15:10 +0000 (05:15 -0600)

revert: rearrange pick_revisions() for clarity

Deal completely with "cherry-pick --quit" and --continue at the
beginning of pick_revisions(), leaving the rest of the function for
the more interesting "git cherry-pick <commits>" case.

No functional change intended. The impact is just to unindent the
code a little.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert: rename --reset option to --quitJonathan Nieder Tue, 22 Nov 2011 11:14:29 +0000 (05:14 -0600)

revert: rename --reset option to --quit

The option to "git cherry-pick" and "git revert" to discard the
sequencer state introduced by v1.7.8-rc0~141^2~6 (revert: Introduce
--reset to remove sequencer state, 2011-08-04) has a confusing name.
Change it now, while we still have the time.

The new name for "cherry-pick, please get out of my way, since I've
long forgotten about the sequence of commits I was cherry-picking when
you wrote that old .git/sequencer directory" is --quit. Mnemonic:
this is analagous to quiting a program the user is no longer using ---
we just want to get out of the multiple-command cherry-pick procedure
and not to reset HEAD or rewind any other old state.

The "--reset" option is kept as a synonym to minimize the impact. We
might consider dropping it for simplicity in a separate patch, though.

Adjust documentation and tests to use the newly preferred name (--quit)
instead of --reset. While at it, let's clarify the short descriptions
of these operations in "-h" output.

Before:

--reset forget the current operation
--continue continue the current operation

After:

--quit end revert or cherry-pick sequence
--continue resume revert or cherry-pick sequence

Noticed-by: Phil Hord <phil.hord@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Mon, 21 Nov 2011 22:30:45 +0000 (14:30 -0800)

Merge branch 'maint'

* maint:
documentation fix: git difftool uses diff tools, not merge tools.

Merge branch 'rr/misc-fixes'Junio C Hamano Mon, 21 Nov 2011 19:03:20 +0000 (11:03 -0800)

Merge branch 'rr/misc-fixes'

* rr/misc-fixes:
convert.c: Fix return type of git_path_check_eol()

convert.c: Fix return type of git_path_check_eol()Ramsay Jones Mon, 21 Nov 2011 18:42:09 +0000 (18:42 +0000)

convert.c: Fix return type of git_path_check_eol()

The git_path_check_eol() function converts a string value to the
corresponding 'enum eol' value. However, the function is currently
declared to return an 'enum crlf_action', which causes sparse to
complain thus:

SP convert.c
convert.c:736:50: warning: mixing different enum types
convert.c:736:50: int enum crlf_action versus
convert.c:736:50: int enum eol

In order to suppress the warning, we simply correct the return type
in the function declaration.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

documentation fix: git difftool uses diff tools, not... Thomas Hochstein Mon, 14 Nov 2011 22:55:52 +0000 (23:55 +0100)

documentation fix: git difftool uses diff tools, not merge tools.

Let the documentation for -t list valid *diff* tools,
not valid *merge* tools.

Signed-off-by: Thomas Hochstein <thh@inter.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

config.c: Fix a static buffer overwrite bug by avoiding... Ramsay Jones Sat, 19 Nov 2011 19:42:00 +0000 (19:42 +0000)

config.c: Fix a static buffer overwrite bug by avoiding mkpath()

On cygwin, test number 21 of t3200-branch.sh (git branch -m q q2
without config should succeed) fails. The failure involves the
functions from path.c which parcel out internal static buffers
from the git_path() and mkpath() functions.

In particular, the rename_ref() function calls safe_create_leading\
_directories() with a filename returned by git_path("logs/%s", ref).
safe_create_leading_directories(), in turn, calls stat() on each
element of the path it is given. On cygwin, this leads to a call
to git_config() for each component of the path, since this test
explicitly removes the config file. git_config() calls mkpath(), so
on the fourth component of the path, the original buffer passed
into the function is overwritten with the config filename.

Note that this bug is specific to cygwin and it's schizophrenic
stat() functions (see commits adbc0b6, 7faee6b and 7974843). The
lack of a config file and a path with at least four elements is
also important to trigger the bug.

In order to fix the problem, we replace the call to mkpath() with
a call to mksnpath() and provide our own buffer.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5501-*.sh: Fix url passed to clone in setup testRamsay Jones Sat, 19 Nov 2011 19:38:54 +0000 (19:38 +0000)

t5501-*.sh: Fix url passed to clone in setup test

In particular, the url passed to git-clone has an extra '/' given
after the 'file://' schema prefix, thus:

git clone --reference=original "file:///$(pwd)/original one

Once the prefix is removed, the remainder of the url looks something
like "//home/ramsay/git/t/...", which is then interpreted as an
network path. This then results in a "Permission denied" error, like
so:

ramsay $ ls //home
ls: cannot access //home: No such host or network path
ramsay $ ls //home/ramsay
ls: cannot access //home/ramsay: Permission denied
ramsay $

In order to fix the problem, we simply remove the extraneous '/'
character from the url.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Hopefully final update of release notes before 1.7... Junio C Hamano Fri, 18 Nov 2011 22:19:45 +0000 (14:19 -0800)

Hopefully final update of release notes before 1.7.8 final

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

Merge branch 'rr/misc-fixes'Junio C Hamano Fri, 18 Nov 2011 22:13:48 +0000 (14:13 -0800)

Merge branch 'rr/misc-fixes'

* rr/misc-fixes:
git-compat-util: don't assume value for undefined variable
sha1_file: don't mix enum with int
convert: don't mix enum with int
http: remove unused function hex()

Makefile: add option to disable automatic dependency... Jonathan Nieder Fri, 18 Nov 2011 09:58:21 +0000 (03:58 -0600)

Makefile: add option to disable automatic dependency generation

Now that the COMPUTE_HEADER_DEPENDENCIES feature is turned on
automatically for compilers that support it (see v1.7.8-rc0~142^2~1,
2011-08-18), there is no easy way to force it off. For example,
setting COMPUTE_HEADER_DEPENDENCIES to the empty string in config.mak
just tells the makefile to treat it as undefined and run a test
command to see if the -MMD option is supported.

So allow setting COMPUTE_HEADER_DEPENDENCIES=no to explicitly force
the feature off. The new semantics:

- "yes" means to explicitly enable the feature
- "no" means to disable it
- "auto" means to autodetect

The default is still "auto". Any value other than these three will
cause the build to error out with a descriptive message so typos and
stale settings in config.mak don't result in mysterious behavior.

Makefile:1278: *** please set COMPUTE_HEADER_DEPENDENCIES to
yes, no, or auto (not "1"). Stop.

So now when someone using a compiler without -MMD support reports
trouble building git, you can reproduce it by running "make
COMPUTE_HEADER_DEPENDENCIES=no".

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

Sync with 1.7.7.4Junio C Hamano Fri, 18 Nov 2011 19:30:02 +0000 (11:30 -0800)

Sync with 1.7.7.4

Git 1.7.7.4 v1.7.7.4Junio C Hamano Fri, 18 Nov 2011 19:28:05 +0000 (11:28 -0800)

Git 1.7.7.4

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

Merge branch 'jc/maint-name-rev-all' into maintJunio C Hamano Fri, 18 Nov 2011 19:14:16 +0000 (11:14 -0800)

Merge branch 'jc/maint-name-rev-all' into maint

* jc/maint-name-rev-all:
name-rev --all: do not even attempt to describe non-commit object

Merge branch 'ml/mailmap' into maintJunio C Hamano Fri, 18 Nov 2011 19:14:00 +0000 (11:14 -0800)

Merge branch 'ml/mailmap' into maint

* ml/mailmap:
mailmap: xcalloc mailmap_info

Conflicts:
mailmap.c

Merge branch 'jn/maint-notes-avoid-va-args' into maintJunio C Hamano Fri, 18 Nov 2011 19:11:50 +0000 (11:11 -0800)

Merge branch 'jn/maint-notes-avoid-va-args' into maint

* jn/maint-notes-avoid-va-args:
notes merge: eliminate OUTPUT macro

Conflicts:
notes-merge.c

Makefile: add missing header file dependenciesJonathan Nieder Fri, 18 Nov 2011 10:02:02 +0000 (04:02 -0600)

Makefile: add missing header file dependencies

When the streaming filter API was introduced in v1.7.7-rc0~60^2~7
(2011-05-20), we forgot to add its header to LIB_H. Most translation
units depend on streaming.h via cache.h.

v1.7.5-rc0~48 (Fix sparse warnings, 2011-03-22) introduced undeclared
dependencies by url.o on url.h and thread-utils.o on thread-utils.h.

Noticed by make CHECK_HEADER_DEPENDENCIES=1.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

notes merge: eliminate OUTPUT macroJonathan Nieder Fri, 18 Nov 2011 01:27:46 +0000 (19:27 -0600)

notes merge: eliminate OUTPUT macro

The macro is variadic, which breaks support for pre-C99 compilers,
and it hides an "if", which can make code hard to understand on
first reading if some arguments have side-effects.

The OUTPUT macro seems to have been inspired by the "output" function
from merge-recursive. But that function in merge-recursive exists to
indent output based on the level of recursion and there is no similar
justification for such a function in "notes merge".

Noticed with 'make CC="gcc -std=c89 -pedantic"':

notes-merge.c:24:22: warning: anonymous variadic macros were introduced in C99 [-Wvariadic-macros]

Encouraged-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

do not let git_path clobber errno when reporting errorsJonathan Nieder Wed, 16 Nov 2011 08:03:36 +0000 (02:03 -0600)

do not let git_path clobber errno when reporting errors

Because git_path() calls vsnprintf(), code like

fd = open(git_path("SQUASH_MSG"), O_WRONLY | O_CREAT, 0666);
die_errno(_("Could not write to '%s'"), git_path("SQUASH_MSG"));

can end up printing an error indicator from vsnprintf() instead of
open() by mistake. Store the path we are trying to write to in a
temporary variable and pass _that_ to die_errno(), so the messages
written by git cherry-pick/revert and git merge can avoid this source
of confusion.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.7.8-rc3 v1.7.8-rc3Junio C Hamano Thu, 17 Nov 2011 19:06:15 +0000 (11:06 -0800)

Git 1.7.8-rc3

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

refs: loosen over-strict "format" checkJunio C Hamano Thu, 17 Nov 2011 00:54:32 +0000 (16:54 -0800)

refs: loosen over-strict "format" check

The add_extra_ref() interface is used to add an extra-ref that is _not_
our ref for the purpose of helping auto-following of tags and reducing
object transfer from remote repository, and they are typically formatted
as a tagname followed by ^{} to make sure no valid refs match that
pattern. In other words, these entries are deliberately formatted not to
pass check-refname-format test.

A recent series however added a test unconditionally to the add_ref()
function that is called from add_extra_ref(). The check may be sensible
for other two callsites of the add_ref() interface, but definitely is
a wrong thing to do in add_extra_ref(). Disable it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Michael Haggerty <mhagger@alum.mit.edu>

mailmap: xcalloc mailmap_infoMarc-André Lureau Thu, 17 Nov 2011 01:25:06 +0000 (02:25 +0100)

mailmap: xcalloc mailmap_info

This is to avoid reaching free of uninitialized members.

With an invalid .mailmap (and perhaps in other cases), it can reach
free(mi->name) with garbage for example.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert: prettify fatal messagesRamkumar Ramachandra Tue, 15 Nov 2011 09:31:32 +0000 (15:01 +0530)

revert: prettify fatal messages

Some of the fatal messages printed by revert and cherry-pick look ugly
like the following:

fatal: Could not open .git/sequencer/todo.: No such file or directory

The culprit here is that these callers of the die_errno() function did not
take it into account that the message string they give to it is followed
by ": <strerror>", hence the message typically should not end with the
full-stop.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-compat-util: don't assume value for undefined variableRamkumar Ramachandra Tue, 15 Nov 2011 17:31:09 +0000 (23:01 +0530)

git-compat-util: don't assume value for undefined variable

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

sha1_file: don't mix enum with intRamkumar Ramachandra Tue, 15 Nov 2011 16:59:39 +0000 (22:29 +0530)

sha1_file: don't mix enum with int

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

convert: don't mix enum with intRamkumar Ramachandra Tue, 15 Nov 2011 16:59:37 +0000 (22:29 +0530)

convert: don't mix enum with int

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

http: remove unused function hex()Ramkumar Ramachandra Tue, 15 Nov 2011 16:59:36 +0000 (22:29 +0530)

http: remove unused function hex()

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

name-rev --all: do not even attempt to describe non... Junio C Hamano Tue, 15 Nov 2011 23:51:05 +0000 (15:51 -0800)

name-rev --all: do not even attempt to describe non-commit object

This even dates back to the very beginning of "git name-rev";
it does not make much sense to dump all objects in the repository
and label non-commits as "undefined".

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

Revert "upload-archive: use start_command instead of... Junio C Hamano Tue, 15 Nov 2011 23:39:33 +0000 (15:39 -0800)

Revert "upload-archive: use start_command instead of fork"

This reverts commit c09cd77ea2fe3580b33918a99fe138d239ac2aaf, expecting a
better version to be rerolled soon.

Git 1.7.8-rc2 v1.7.8-rc2Junio C Hamano Sun, 13 Nov 2011 06:14:53 +0000 (22:14 -0800)

Git 1.7.8-rc2

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

Merge branch 'ly/mktree-using-strbuf'Junio C Hamano Sat, 12 Nov 2011 05:34:06 +0000 (21:34 -0800)

Merge branch 'ly/mktree-using-strbuf'

* ly/mktree-using-strbuf:
mktree: fix a memory leak in write_tree()

Merge "Move 'builtin-*' into a 'builtin/' subdirectory"Junio C Hamano Thu, 10 Nov 2011 17:10:51 +0000 (09:10 -0800)

Merge "Move 'builtin-*' into a 'builtin/' subdirectory"

Merge 'build-in git-mktree'Junio C Hamano Thu, 10 Nov 2011 17:05:31 +0000 (09:05 -0800)

Merge 'build-in git-mktree'

* commit '633e3556ccbc': (5835 commits)
build-in git-mktree
allow -t abbreviation for --track in git branch
gitweb: Remove function prototypes (cleanup)
Documentation: cloning to empty directory is allowed
Clarify kind of conflict in merge-one-file helper
git config: clarify --add and --get-color
archive-tar.c: squelch a type mismatch warning
Start 1.6.4 development
Start 1.6.3.1 maintenance series.
GIT 1.6.3
t4029: use sh instead of bash
t4200: convert sed expression which operates on non-text file to perl
t4200: remove two unnecessary lines
t/annotate-tests.sh: avoid passing a non-newline terminated file to sed
t4118: avoid sed invocation on file without terminating newline
t4118: add missing '&&'
t8005: use egrep when extended regular expressions are required
git-clean doc: the command only affects paths under $(cwd)
improve error message in config.c
t4018-diff-funcname: add cpp xfuncname pattern to syntax test
...

mktree: fix a memory leak in write_tree()Liu Yuan Thu, 10 Nov 2011 08:39:22 +0000 (16:39 +0800)

mktree: fix a memory leak in write_tree()

We forget to call strbuf_release to release the buf memory.

Signed-off-by: Liu Yuan <tailai.ly@taobao.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'sn/complete-bash-wo-process-subst'Junio C Hamano Wed, 9 Nov 2011 13:46:39 +0000 (05:46 -0800)

Merge branch 'sn/complete-bash-wo-process-subst'

* sn/complete-bash-wo-process-subst:
completion: don't leak variable from the prompt into environment

completion: don't leak variable from the prompt into... SZEDER Gábor Wed, 9 Nov 2011 10:02:50 +0000 (11:02 +0100)

completion: don't leak variable from the prompt into environment

Commit e5b8eebc (completion: fix issue with process substitution not
working on Git for Windows, 2011-10-26) introduced a new variable in
__git_ps1_show_upstream(), but didn't declare it as local to prevent it
from leaking into the environment.

We may want to rewrite it like the following, but that can wait until the
next cycle.

while read key value
do
...
done <<-EOF
$(git config -z --get-regexp ...)
EOF

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

Update draft release notes to 1.7.8Junio C Hamano Wed, 9 Nov 2011 00:42:33 +0000 (16:42 -0800)

Update draft release notes to 1.7.8

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

Merge branch 'jc/remote-setbranches-usage-fix'Junio C Hamano Wed, 9 Nov 2011 00:40:31 +0000 (16:40 -0800)

Merge branch 'jc/remote-setbranches-usage-fix'

* jc/remote-setbranches-usage-fix:
remote: fix set-branches usage

Merge branch 'fc/remote-seturl-usage-fix'Junio C Hamano Wed, 9 Nov 2011 00:40:27 +0000 (16:40 -0800)

Merge branch 'fc/remote-seturl-usage-fix'

* fc/remote-seturl-usage-fix:
remote: fix remote set-url usage

Sync with 1.7.7.3Junio C Hamano Wed, 9 Nov 2011 00:38:14 +0000 (16:38 -0800)

Sync with 1.7.7.3

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

Git 1.7.7.3 v1.7.7.3Junio C Hamano Wed, 9 Nov 2011 00:37:00 +0000 (16:37 -0800)

Git 1.7.7.3

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

Merge branch 'jc/maint-remove-renamed-ref' into maintJunio C Hamano Wed, 9 Nov 2011 00:35:53 +0000 (16:35 -0800)

Merge branch 'jc/maint-remove-renamed-ref' into maint

* jc/maint-remove-renamed-ref:
branch -m/-M: remove undocumented RENAMED-REF

Conflicts:
refs.c

Merge branch 'jm/maint-gitweb-filter-forks-fix' into... Junio C Hamano Wed, 9 Nov 2011 00:26:50 +0000 (16:26 -0800)

Merge branch 'jm/maint-gitweb-filter-forks-fix' into maint

* jm/maint-gitweb-filter-forks-fix:
gitweb: fix regression when filtering out forks

Merge branch 'dm/pack-objects-update' into maintJunio C Hamano Wed, 9 Nov 2011 00:26:45 +0000 (16:26 -0800)

Merge branch 'dm/pack-objects-update' into maint

* dm/pack-objects-update:
pack-objects: don't traverse objects unnecessarily
pack-objects: rewrite add_descendants_to_write_order() iteratively
pack-objects: use unsigned int for counter and offset values
pack-objects: mark add_to_write_order() as inline

docs: Update install-doc-quickJunio C Hamano Tue, 8 Nov 2011 18:17:40 +0000 (10:17 -0800)

docs: Update install-doc-quick

The preformatted documentation pages live in their own repositories
these days. Adjust the installation procedure to the updated layout.

Tested-by: Stefan Naewe <stefan.naewe@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

docs: don't mention --quiet or --exit-code in git-log(1)Jeff King Tue, 8 Nov 2011 21:29:30 +0000 (16:29 -0500)

docs: don't mention --quiet or --exit-code in git-log(1)

These are diff-options, but they don't actually make sense
in the context of log.

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

Git 1.7.8-rc1 v1.7.8-rc1Junio C Hamano Tue, 8 Nov 2011 00:48:34 +0000 (16:48 -0800)

Git 1.7.8-rc1

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

Merge branch 'ss/blame-textconv-fake-working-tree'Junio C Hamano Tue, 8 Nov 2011 00:43:19 +0000 (16:43 -0800)

Merge branch 'ss/blame-textconv-fake-working-tree'

* ss/blame-textconv-fake-working-tree:
blame.c: Properly initialize strbuf after calling textconv_object(), again

blame.c: Properly initialize strbuf after calling textc... Sebastian Schuberth Mon, 7 Nov 2011 17:33:34 +0000 (18:33 +0100)

blame.c: Properly initialize strbuf after calling textconv_object(), again

2564aa4 started to initialize buf.alloc, but that should actually be one
more byte than the string length due to the trailing \0. Also, do not
modify buf.alloc out of the strbuf code. Use the existing strbuf_attach
instead.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'ab/i18n-test-fix'Junio C Hamano Mon, 7 Nov 2011 05:22:22 +0000 (21:22 -0800)

Merge branch 'ab/i18n-test-fix'

* ab/i18n-test-fix:
t/t7508-status.sh: use test_i18ncmp
t/t6030-bisect-porcelain.sh: use test_i18ngrep

Merge branch 'sn/http-auth-with-netrc-fix'Junio C Hamano Mon, 7 Nov 2011 05:22:19 +0000 (21:22 -0800)

Merge branch 'sn/http-auth-with-netrc-fix'

* sn/http-auth-with-netrc-fix:
http: don't always prompt for password

Merge branch 'pw/p4-appledouble-fix'Junio C Hamano Mon, 7 Nov 2011 05:21:57 +0000 (21:21 -0800)

Merge branch 'pw/p4-appledouble-fix'

* pw/p4-appledouble-fix:
git-p4: ignore apple filetype

remote: fix remote set-url usageFelipe Contreras Mon, 7 Nov 2011 03:36:57 +0000 (05:36 +0200)

remote: fix remote set-url usage

Bad copy-paste.

Otherwise the help text for "git remote set-url --help" would show help
for "git remote update" subcommand.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote: fix set-branches usageJunio C Hamano Mon, 7 Nov 2011 05:12:59 +0000 (21:12 -0800)

remote: fix set-branches usage

Bad copy-paste.

Otherwise "git remote set-branches" without necessary argument
will result in an error message and help for set-url subcommand.

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

git-p4: ignore apple filetypePete Wyckoff Sat, 5 Nov 2011 17:36:07 +0000 (13:36 -0400)

git-p4: ignore apple filetype

Revert 97a21ca (git-p4: stop ignoring apple filetype, 2011-10-16)
and add a test case.

Reported-by: Michael Wookey <michaelwookey@gmail.com>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t/t7508-status.sh: use test_i18ncmpÆvar Arnfjörð Bjarmason Sat, 5 Nov 2011 17:28:43 +0000 (17:28 +0000)

t/t7508-status.sh: use test_i18ncmp

Change a i18n-specific comparison in t/t7508-status.sh to use
test_i18ncmp instead. This was introduced in v1.7.6.3~11^2 and has
been broken under GETTEXT_POISON=YesPlease since.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t/t6030-bisect-porcelain.sh: use test_i18ngrepÆvar Arnfjörð Bjarmason Sat, 5 Nov 2011 17:28:42 +0000 (17:28 +0000)

t/t6030-bisect-porcelain.sh: use test_i18ngrep

Change a i18n-specific grep in t/t6030-bisect-porcelain.sh to use
test_i18ngrep instead. This was introduced in v1.7.7.2~5^2~11 and has
been broken under GETTEXT_POISON=YesPlease since.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

http: don't always prompt for passwordStefan Naewe Fri, 4 Nov 2011 07:03:08 +0000 (08:03 +0100)

http: don't always prompt for password

When a username is already specified at the beginning of any HTTP
transaction (e.g. "git push https://user@hosting.example.com/project.git"
or "git ls-remote https://user@hosting.example.com/project.git"), the code
interactively asks for a password before calling into the libcurl library.
It is very likely that the reason why user included the username in the
URL is because the user knows that it would require authentication to
access the resource. Asking for the password upfront would save one
roundtrip to get a 401 response, getting the password and then retrying
the request. This is a reasonable optimization.

HOWEVER.

This is done even when $HOME/.netrc might have a corresponding entry to
access the site, or the site does not require authentication to access the
resource after all. But neither condition can be determined until we call
into libcurl library (we do not read and parse $HOME/.netrc ourselves). In
these cases, the user is forced to respond to the password prompt, only to
give a password that is not used in the HTTP transaction. If the password
is in $HOME/.netrc, an empty input would later let the libcurl layer to
pick up the password from there, and if the resource does not require
authentication, any input would be taken and then discarded without
getting used. It is wasteful to ask this unused information to the end
user.

Reduce the confusion by not trying to optimize for this case and always
incur roundtrip penalty. An alternative might be to document this and keep
this round-trip optimization as-is.

Signed-off-by: Stefan Naewe <stefan.naewe@gmail.com>
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

receive-pack: do not expect object 0{40} to existJunio C Hamano Thu, 3 Nov 2011 19:15:08 +0000 (12:15 -0700)

receive-pack: do not expect object 0{40} to exist

When pushing to delete a ref, it uses 0{40} as an object name to signal
that the request is a deletion. We shouldn't trigger "deletion of a
corrupt ref" warning in such a case, which was designed to notice that a
ref points at an object that is truly missing from the repository.

Reported-by: Stefan Näwe
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t3200: add test case for 'branch -m'Stefan Naewe Wed, 2 Nov 2011 15:07:05 +0000 (16:07 +0100)

t3200: add test case for 'branch -m'

Signed-off-by: Stefan Naewe <stefan.naewe@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

branch -m: handle no arg properlyTay Ray Chuan Wed, 2 Nov 2011 16:17:12 +0000 (00:17 +0800)

branch -m: handle no arg properly

Modify the option parsing heuristic to handle all -m (rename) cases,
including the no-arg case.

Previously, this "fell through" to the (argc <= 2) case and caused
segfault.

Reported-by: Stefan Näwe <stefan.naewe@atlas-elektronik.com>
Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.7.8Junio C Hamano Tue, 1 Nov 2011 23:37:33 +0000 (16:37 -0700)

Update draft release notes to 1.7.8

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

Sync with 1.7.7.2Junio C Hamano Tue, 1 Nov 2011 23:20:42 +0000 (16:20 -0700)

Sync with 1.7.7.2

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

Git 1.7.7.2 v1.7.7.2Junio C Hamano Tue, 1 Nov 2011 23:16:36 +0000 (16:16 -0700)

Git 1.7.7.2

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

Merge branch 'rs/maint-estimate-cache-size' into maintJunio C Hamano Tue, 1 Nov 2011 23:41:41 +0000 (16:41 -0700)

Merge branch 'rs/maint-estimate-cache-size' into maint

* rs/maint-estimate-cache-size:
t7511: avoid use of reserved filename on Windows.

Merge branch 'md/smtp-tls-hello-again' into maintJunio C Hamano Tue, 1 Nov 2011 23:12:19 +0000 (16:12 -0700)

Merge branch 'md/smtp-tls-hello-again' into maint

* md/smtp-tls-hello-again:
send-email: Honour SMTP domain when using TLS

Merge branch 'jk/pull-rebase-with-work-tree' into maintJunio C Hamano Tue, 1 Nov 2011 23:11:00 +0000 (16:11 -0700)

Merge branch 'jk/pull-rebase-with-work-tree' into maint

* jk/pull-rebase-with-work-tree:
pull,rebase: handle GIT_WORK_TREE better

Conflicts:
git-pull.sh

Merge branch 'jc/maint-diffstat-numstat-context' into... Junio C Hamano Tue, 1 Nov 2011 23:10:56 +0000 (16:10 -0700)

Merge branch 'jc/maint-diffstat-numstat-context' into maint

* jc/maint-diffstat-numstat-context:
diff: teach --stat/--numstat to honor -U$num

Merge branch 'js/bisect-no-checkout' into maintJunio C Hamano Tue, 1 Nov 2011 23:03:35 +0000 (16:03 -0700)

Merge branch 'js/bisect-no-checkout' into maint

* js/bisect-no-checkout:
bisect: fix exiting when checkout failed in bisect_start()

Merge branch 'bc/attr-ignore-case' into maintJunio C Hamano Tue, 1 Nov 2011 22:54:45 +0000 (15:54 -0700)

Merge branch 'bc/attr-ignore-case' into maint

* bc/attr-ignore-case:
attr.c: respect core.ignorecase when matching attribute patterns
attr: read core.attributesfile from git_default_core_config
builtin/mv.c: plug miniscule memory leak
cleanup: use internal memory allocation wrapper functions everywhere
attr.c: avoid inappropriate access to strbuf "buf" member

Conflicts:
remote.c

Merge branch 'cn/fetch-prune' into maintJunio C Hamano Tue, 1 Nov 2011 22:51:01 +0000 (15:51 -0700)

Merge branch 'cn/fetch-prune' into maint

* cn/fetch-prune:
fetch: treat --tags like refs/tags/*:refs/tags/* when pruning
fetch: honor the user-provided refspecs when pruning refs
remote: separate out the remote_find_tracking logic into query_refspecs
t5510: add tests for fetch --prune
fetch: free all the additional refspecs

Merge branch 'sp/smart-http-failure' into maintJunio C Hamano Tue, 1 Nov 2011 22:45:16 +0000 (15:45 -0700)

Merge branch 'sp/smart-http-failure' into maint

* sp/smart-http-failure:
remote-curl: Fix warning after HTTP failure

Merge jn/maint-http-error-messageJunio C Hamano Tue, 1 Nov 2011 22:42:25 +0000 (15:42 -0700)

Merge jn/maint-http-error-message

* commit 'be22d92eac809ad2bfa2b7c83ad7cad5a15f1c43':
http: avoid empty error messages for some curl errors
http: remove extra newline in error message

Merge branch 'jk/name-hash-dirent'Junio C Hamano Tue, 1 Nov 2011 22:31:12 +0000 (15:31 -0700)

Merge branch 'jk/name-hash-dirent'

* jk/name-hash-dirent:
name-hash.c: always initialize dir_next pointer

name-hash.c: always initialize dir_next pointerJohannes Sixt Tue, 1 Nov 2011 22:21:06 +0000 (23:21 +0100)

name-hash.c: always initialize dir_next pointer

Test t2021-checkout-overwrite.sh reveals a segfault in 'git add' on a
case-insensitive file system when git is compiled with XMALLOC_POISON
defined. The reason is that 2548183b (fix phantom untracked files when
core.ignorecase is set) added a new member dir_next to struct cache_entry,
but forgot to initialize it in all cases.

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

Merge branch 'ss/blame-textconv-fake-working-tree'Junio C Hamano Tue, 1 Nov 2011 22:20:28 +0000 (15:20 -0700)

Merge branch 'ss/blame-textconv-fake-working-tree'

* ss/blame-textconv-fake-working-tree:
(squash) test for previous
blame.c: Properly initialize strbuf after calling, textconv_object()

Conflicts:
t/t8006-blame-textconv.sh

Merge branch 'ef/mingw-upload-archive'Junio C Hamano Tue, 1 Nov 2011 22:20:22 +0000 (15:20 -0700)

Merge branch 'ef/mingw-upload-archive'

* ef/mingw-upload-archive:
mingw: poll.h is no longer in sys/
upload-archive: use start_command instead of fork
compat/win32/poll.c: upgrade from upstream
mingw: move poll out of sys-folder

Merge branch 'dm/pack-objects-update'Junio C Hamano Tue, 1 Nov 2011 22:20:07 +0000 (15:20 -0700)

Merge branch 'dm/pack-objects-update'

* dm/pack-objects-update:
pack-objects: don't traverse objects unnecessarily
pack-objects: rewrite add_descendants_to_write_order() iteratively
pack-objects: use unsigned int for counter and offset values
pack-objects: mark add_to_write_order() as inline

Merge branch 'nd/pretty-commit-log-message'Junio C Hamano Tue, 1 Nov 2011 22:20:03 +0000 (15:20 -0700)

Merge branch 'nd/pretty-commit-log-message'

* nd/pretty-commit-log-message:
pretty.c: use original commit message if reencoding fails
pretty.c: free get_header() return value

svn: Quote repository root in regex matchTed Percival Mon, 31 Oct 2011 22:37:12 +0000 (16:37 -0600)

svn: Quote repository root in regex match

Fixes a problem matching repository URLs, especially those with a '+' in
the URL, such as svn+ssh:// URLs. Parts of the URL were interpreted as
special characters by the regex matching.

Signed-off-by: Ted Percival <ted.percival@quest.com>
Acked-by: Eric Wong <normalperson@yhbt.net>

mingw: poll.h is no longer in sys/Erik Faye-Lund Tue, 1 Nov 2011 11:56:21 +0000 (12:56 +0100)

mingw: poll.h is no longer in sys/

Earlier we moved this header file in the code but forgot to
update the Makefile that refers to it.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>