gitweb.git
tag: Add more tests about mixing incompatible modes... Samuel Tardieu Tue, 4 Nov 2008 23:20:36 +0000 (00:20 +0100)

tag: Add more tests about mixing incompatible modes and options

Signed-off-by: Samuel Tardieu <sam@rfc1149.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tag: Check that options are only allowed in the appropr... Samuel Tardieu Tue, 4 Nov 2008 23:20:31 +0000 (00:20 +0100)

tag: Check that options are only allowed in the appropriate mode

If "git tag -d -l -v ..." is called, only "-l" is honored, which is
arbitrary and wrong. Also, unrecognized options are accepted in the
wrong modes, causing for example "git tag -n 100" to create a tag
named "100" while the user may have wanted to type "git tag -n100".

This patch checks that "git tag" knows in what mode it operates before
performing any operation and accepts only the related options.

Signed-off-by: Samuel Tardieu <sam@rfc1149.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add reference for status letters in documentation.Yann Dirson Sun, 2 Nov 2008 13:37:28 +0000 (14:37 +0100)

Add reference for status letters in documentation.

Also fix error in diff_filepair::status documentation, and point to
the in-code reference as well as the doc.

Signed-off-by: Yann Dirson <ydirson@altern.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Document that git-log takes --all-match.Mikael Magnusson Sun, 2 Nov 2008 18:32:46 +0000 (19:32 +0100)

Document that git-log takes --all-match.

Signed-off-by: Mikael Magnusson <mikachu@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft 1.6.0.4 release notesJunio C Hamano Sun, 2 Nov 2008 22:35:41 +0000 (14:35 -0800)

Update draft 1.6.0.4 release notes

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

Merge branch 'js/maint-fetch-update-head' into maintJunio C Hamano Sun, 2 Nov 2008 21:37:16 +0000 (13:37 -0800)

Merge branch 'js/maint-fetch-update-head' into maint

* js/maint-fetch-update-head:
pull: allow "git pull origin $something:$current_branch" into an unborn branch
Fix fetch/pull when run without --update-head-ok

Merge branch 'jk/maint-ls-files-other' into maintJunio C Hamano Sun, 2 Nov 2008 21:37:13 +0000 (13:37 -0800)

Merge branch 'jk/maint-ls-files-other' into maint

* jk/maint-ls-files-other:
refactor handling of "other" files in ls-files and status

Merge branch 'jc/maint-reset-remove-unmerged-new' into... Junio C Hamano Sun, 2 Nov 2008 21:36:20 +0000 (13:36 -0800)

Merge branch 'jc/maint-reset-remove-unmerged-new' into maint

* jc/maint-reset-remove-unmerged-new:
reset --hard/read-tree --reset -u: remove unmerged new paths

Merge branch 'jc/maint-co-track' into maintJunio C Hamano Sun, 2 Nov 2008 21:36:14 +0000 (13:36 -0800)

Merge branch 'jc/maint-co-track' into maint

* jc/maint-co-track:
Enhance hold_lock_file_for_{update,append}() API
demonstrate breakage of detached checkout with symbolic link HEAD
Fix "checkout --track -b newbranch" on detached HEAD

Start 1.6.0.4 cycleJunio C Hamano Sun, 2 Nov 2008 07:14:04 +0000 (00:14 -0700)

Start 1.6.0.4 cycle

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

add instructions on how to send patches to the mailing... Tom Preston-Werner Sat, 1 Nov 2008 15:28:18 +0000 (15:28 +0000)

add instructions on how to send patches to the mailing list with Gmail

Gmail is one of the most popular email providers in the world. Now that Gmail
supports IMAP, sending properly formatted patches via `git imap-send` is
trivial. This section in SubmittingPatches explains how to do so.

Signed-off-by: Tom Preston-Werner <tom@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/gitattributes: Add subsection header... Jakub Narebski Sat, 1 Nov 2008 06:24:55 +0000 (06:24 +0000)

Documentation/gitattributes: Add subsection header for each attribute

This makes attributes easier to find; before this patch some
attributes had individual subsections, and some didn't.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git send-email: avoid leaking directory file descriptors.Pierre Habouzit Fri, 31 Oct 2008 18:57:10 +0000 (18:57 +0000)

git send-email: avoid leaking directory file descriptors.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

send-pack: do not send out single-level refs such as... Jeff King Wed, 29 Oct 2008 05:17:55 +0000 (05:17 +0000)

send-pack: do not send out single-level refs such as refs/stash

Since no version of receive-pack accepts these "funny refs", we should
mirror the check when considering the list of refs to send. IOW, don't
even make them eligible for matching or mirroring.

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

fix overlapping memcpy in normalize_absolute_pathJeff King Thu, 23 Oct 2008 04:32:23 +0000 (04:32 +0000)

fix overlapping memcpy in normalize_absolute_path

The comments for normalize_absolute_path explicitly claim
that the source and destination buffers may be the same
(though they may not otherwise overlap). Thus the call to
memcpy may involve copying overlapping data, and memmove
should be used instead.

This fixes a valgrind error in t1504.

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

pack-objects: avoid reading uninitalized dataJeff King Thu, 23 Oct 2008 04:31:03 +0000 (04:31 +0000)

pack-objects: avoid reading uninitalized data

In the main loop of find_deltas, we do:

struct object_entry *entry = *list++;
...
if (!*list_size)
...
break

Because we look at and increment *list _before_ the check of
list_size, in the very last iteration of the loop we will
look at uninitialized data, and increment the pointer beyond
one past the end of the allocated space. Since we don't
actually do anything with the data until after the check,
this is not a problem in practice.

But since it technically violates the C standard, and
because it provokes a spurious valgrind warning, let's just
move the initialization of entry to a safe place.

This fixes valgrind errors in t5300, t5301, t5302, t303, and
t9400.

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

correct cache_entry allocationJeff King Thu, 23 Oct 2008 04:30:58 +0000 (04:30 +0000)

correct cache_entry allocation

Most cache_entry structs are allocated by using the
cache_entry_size macro, which rounds the size of the struct
up to the nearest multiple of 8 bytes (presumably to avoid
memory fragmentation).

There is one exception: the special "conflict entry" is
allocated with an empty name, and so is explicitly given
just one extra byte to hold the NUL.

However, later code doesn't realize that this particular
struct has been allocated differently, and happily tries
reading and copying it based on the ce_size macro, which
assumes the 8-byte alignment.

This can lead to reading uninitalized data, though since
that data is simply padding, there shouldn't be any problem
as a result. Still, it makes sense to hold the padding
assumption so as not to surprise later maintainers.

This fixes valgrind errors in t1005, t3030, t4002, and
t4114.

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

Merge branch 'maint' of git://repo.or.cz/git-gui into... Junio C Hamano Sun, 2 Nov 2008 05:31:14 +0000 (22:31 -0700)

Merge branch 'maint' of git://repo.or.cz/git-gui into maint

* 'maint' of git://repo.or.cz/git-gui:
git-gui: Help identify aspell version on Windows too

git-svn: change dashed git-commit-tree to git commit... Deskin Miller Fri, 31 Oct 2008 04:10:25 +0000 (00:10 -0400)

git-svn: change dashed git-commit-tree to git commit-tree

Signed-off-by: Deskin Miller <deskinm@umich.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: clarify information about 'ident' attributeJan Krüger Thu, 30 Oct 2008 18:14:33 +0000 (19:14 +0100)

Documentation: clarify information about 'ident' attribute

The documentation spoke of the attribute being set "to" a path; this can
mistakenly be interpreted as "the attribute needs to have its value set to
some kind of path". This clarifies things.

Signed-off-by: Jan Krüger <jk@jk.gs>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bash completion: add doubledash to "git show"Markus Heidelberg Fri, 31 Oct 2008 00:04:46 +0000 (01:04 +0100)

bash completion: add doubledash to "git show"

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Use test-chmtime -v instead of perl in t5000 to get... Alex Riesen Thu, 30 Oct 2008 10:20:27 +0000 (11:20 +0100)

Use test-chmtime -v instead of perl in t5000 to get mtime of a file

The test was broken on admittedly broken combination of Windows, Cygwin,
and ActiveState Perl.

Signed-off-by: Alex Riesen <ariesen@harmanbecker.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add --verbose|-v to test-chmtimeAlex Riesen Thu, 30 Oct 2008 09:00:29 +0000 (10:00 +0100)

Add --verbose|-v to test-chmtime

This allows us replace perl when getting the mtime of a file because
of time zone conversions, though at the moment only one platform which
does this has been identified: Cygwin when used with ActiveState Perl
(as usual).

The output format is:

<mtime1> TAB <filename1> <LF>
<mtime2> TAB <filename2> <LF>
...

which, if only mtime is needed can be parsed with cut(1):

test-chmtime -v +0 filename1 | cut -f 1

Also, the change adds a description of programs features, with examples.

Signed-off-by: Alex Riesen <ariesen@harmanbecker.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

asciidoc: add minor workaround to add an empty line... Jonas Fonseca Thu, 30 Oct 2008 10:45:03 +0000 (11:45 +0100)

asciidoc: add minor workaround to add an empty line after code blocks

Insert an empty <simpara> in manpages after code blocks to force and
empty line.

The problem can be seen on the manpage for the git tutorial, where an
example command and the following paragraph is printed with no empty
line between them:

First, note that you can get documentation for a command such as git
log --graph with:

$ man git-log
It is a good idea to introduce yourself to git [...]

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Plug a memleak in builtin-revertAlex Riesen Tue, 28 Oct 2008 17:27:33 +0000 (18:27 +0100)

Plug a memleak in builtin-revert

Probably happened when working around git_path's problem with returned
buffer being reused.

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

Add file delete/create info when we overflow rename_limitLinus Torvalds Mon, 27 Oct 2008 20:06:16 +0000 (13:06 -0700)

Add file delete/create info when we overflow rename_limit

When we refuse to do rename detection due to having too many files
created or deleted, let the user know the numbers. That way there is a
reasonable starting point for setting the diff.renamelimit option.

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

Install git-cvsserver in $(bindir)Nanako Shiraishi Wed, 10 Sep 2008 11:03:18 +0000 (20:03 +0900)

Install git-cvsserver in $(bindir)

It is one of the server side programs and needs to be found on usual $PATH.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Install git-shell in bindir, tooTommi Virtanen Sun, 24 Aug 2008 20:23:25 +0000 (23:23 +0300)

Install git-shell in bindir, too

/etc/passwd shell field must be something execable, you can't enter
"/usr/bin/git shell" there. git-shell must be present as a separate
executable, or it is useless.

Signed-off-by: Tommi Virtanen <tv@eagain.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

add -p: warn if only binary changes presentThomas Rast Sun, 26 Oct 2008 19:37:06 +0000 (20:37 +0100)

add -p: warn if only binary changes present

Current 'git add -p' will say "No changes." if there are no changes to
text files, which can be confusing if there _are_ changes to binary
files. Add some code to distinguish the two cases, and give a
different message in the latter one.

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

git-archive: work in bare reposCharles Bailey Sat, 25 Oct 2008 15:38:14 +0000 (11:38 -0400)

git-archive: work in bare repos

This moves the call to git_config to a place where it doesn't break the
logic for using git archive in a bare repository but retains the fix to
make git archive respect core.autocrlf.

Tests are by René Scharfe.

Signed-off-by: Charles Bailey <charles@hashpling.org>
Tested-by: Deskin Miller <deskinm@umich.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: change dashed git-config to git configDeskin Miller Thu, 23 Oct 2008 19:21:34 +0000 (15:21 -0400)

git-svn: change dashed git-config to git config

Signed-off-by: Deskin Miller <deskinm@umich.edu>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

GIT 1.6.0.3 v1.6.0.3Junio C Hamano Tue, 21 Oct 2008 20:37:42 +0000 (13:37 -0700)

GIT 1.6.0.3

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

rehabilitate 'git index-pack' inside the object storeNicolas Pitre Tue, 21 Oct 2008 01:17:07 +0000 (21:17 -0400)

rehabilitate 'git index-pack' inside the object store

Before commit d0b92a3f6e it was possible to run 'git index-pack'
directly in the .git/objects/pack/ directory. Restore that ability.

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

Fix testcase failure when extended attributes are in useJunio C Hamano Mon, 20 Oct 2008 05:51:17 +0000 (22:51 -0700)

Fix testcase failure when extended attributes are in use

06cbe855 (Make core.sharedRepository more generic, 2008-04-16) made
several testcases in t1301-shared-repo.sh which fail if on a system
which creates files with extended attributes (e.g. SELinux), since ls
appends a '+' sign to the permission set in such cases. In fact,
POSIX.1 allows ls to add a single printable character after the usual
3x3 permission bits to show that an optional alternate/additional access
method is associated with the path.

This fixes the testcase to strip any such sign prior to verifying the
permission set.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Tested-by: Deskin Miller <deskinm@umich.edu>

Enhance hold_lock_file_for_{update,append}() APIJunio C Hamano Fri, 17 Oct 2008 22:44:39 +0000 (15:44 -0700)

Enhance hold_lock_file_for_{update,append}() API

This changes the "die_on_error" boolean parameter to a mere "flags", and
changes the existing callers of hold_lock_file_for_update/append()
functions to pass LOCK_DIE_ON_ERROR.

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

demonstrate breakage of detached checkout with symbolic... Junio C Hamano Fri, 17 Oct 2008 22:56:11 +0000 (15:56 -0700)

demonstrate breakage of detached checkout with symbolic link HEAD

When core.prefersymlinkrefs is in use, detaching the HEAD by
checkout incorrectly clobbers the tip of the current branch.

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

Documentation: Clarify '--signoff' for git-commitAbhijit Bhopatkar Sun, 19 Oct 2008 04:19:23 +0000 (09:49 +0530)

Documentation: Clarify '--signoff' for git-commit

'--signoff' uses commiter name always to add the signoff line,
make it explicit in the documentation.

Signed-off-by: Abhijit Bhopatkar <bain@devslashzero.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

reset --hard/read-tree --reset -u: remove unmerged... Junio C Hamano Wed, 15 Oct 2008 23:00:06 +0000 (16:00 -0700)

reset --hard/read-tree --reset -u: remove unmerged new paths

When aborting a failed merge that has brought in a new path using "git
reset --hard" or "git read-tree --reset -u", we used to first forget about
the new path (via read_cache_unmerged) and then matched the working tree
to what is recorded in the index, thus ending up leaving the new path in
the work tree.

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

Hopefully the final draft release notes update before... Junio C Hamano Sat, 18 Oct 2008 15:26:39 +0000 (08:26 -0700)

Hopefully the final draft release notes update before 1.6.0.3

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

diff(1): clarify what "T"ypechange status meansJunio C Hamano Sat, 18 Oct 2008 15:20:51 +0000 (08:20 -0700)

diff(1): clarify what "T"ypechange status means

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

Merge branch 'db/maint-checkout-b' into maintJunio C Hamano Sat, 18 Oct 2008 15:18:11 +0000 (08:18 -0700)

Merge branch 'db/maint-checkout-b' into maint

* db/maint-checkout-b:
Check early that a new branch is new and valid

contrib: update packinfo.pl to not use dashed commandsDan McGee Sat, 18 Oct 2008 02:41:18 +0000 (21:41 -0500)

contrib: update packinfo.pl to not use dashed commands

Signed-off-by: Dan McGee <dpmcgee@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

force_object_loose: Fix memory leakBjörn Steinbrink Sat, 18 Oct 2008 00:37:31 +0000 (02:37 +0200)

force_object_loose: Fix memory leak

read_packed_sha1 expectes its caller to free the buffer it returns, which
force_object_loose didn't do.

This leak is eventually triggered by "git gc", when it is manually invoked
or there are too many packs around, making gc totally unusable when there
are lots of unreachable objects.

Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Acked-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix "checkout --track -b newbranch" on detached HEADJunio C Hamano Fri, 17 Oct 2008 06:37:44 +0000 (23:37 -0700)

Fix "checkout --track -b newbranch" on detached HEAD

The test to make sure that checkout fails when --track was asked for and
we cannot set up tracking information in t7201 was wrong, and it turns out
that the implementation for that feature itself was buggy. This fixes it.

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

refactor handling of "other" files in ls-files and... Jeff King Thu, 16 Oct 2008 15:07:26 +0000 (11:07 -0400)

refactor handling of "other" files in ls-files and status

When the "git status" display code was originally converted
to C, we copied the code from ls-files to discover whether a
pathname returned by read_directory was an "other", or
untracked, file.

Much later, 5698454e updated the code in ls-files to handle
some new cases caused by gitlinks. This left the code in
wt-status.c broken: it would display submodule directories
as untracked directories. Nobody noticed until now, however,
because unless status.showUntrackedFiles was set to "all",
submodule directories were not actually reported by
read_directory. So the bug was only triggered in the
presence of a submodule _and_ this config option.

This patch pulls the ls-files code into a new function,
cache_name_is_other, and uses it in both places. This should
leave the ls-files functionality the same and fix the bug
in status.

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

tests: shell negation portability fixJeff King Mon, 13 Oct 2008 09:35:59 +0000 (05:35 -0400)

tests: shell negation portability fix

Commit 969c8775 introduced a test which uses the non-portable construct:

command1 && ! command2 | command3

which must be

command1 && ! (command2 | command3)

to work on bsd shells (this is another example of bbf08124, which fixed
several similar cases).

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

pull: allow "git pull origin $something:$current_branch... Junio C Hamano Tue, 14 Oct 2008 22:32:20 +0000 (15:32 -0700)

pull: allow "git pull origin $something:$current_branch" into an unborn branch

Some misguided documents floating on the Net suggest this sequence:

mkdir newdir && cd newdir
git init
git remote add origin $url
git pull origin master:master

"git pull" has known about misguided "pull" that lets the underlying fetch
update the current branch for a long time. It also has known about
"git pull origin master" into a branch yet to be born.

These two workarounds however were not aware of the existence of each
other and did not work well together. This fixes it.

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

t1301-shared-repo.sh: don't let a default ACL interfere... Matt McCutchen Fri, 17 Oct 2008 02:32:14 +0000 (22:32 -0400)

t1301-shared-repo.sh: don't let a default ACL interfere with the test

This test creates files with several different umasks and expects their
permissions to be initialized according to the umask, so a default ACL on the
trash directory (which overrides the umask for files created in that directory)
causes the test to fail. To avoid that, remove the default ACL if possible with
setfacl(1).

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

git-check-attr(1): add output and example sectionsJonas Fonseca Wed, 15 Oct 2008 07:10:58 +0000 (09:10 +0200)

git-check-attr(1): add output and example sections

Plumbing tools should document what output can be expected.

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

xdiff-interface.c: strip newline (and cr) from line... Brandon Casey Wed, 1 Oct 2008 19:28:26 +0000 (14:28 -0500)

xdiff-interface.c: strip newline (and cr) from line before pattern matching

POSIX doth sayeth:

"In the regular expression processing described in IEEE Std 1003.1-2001,
the <newline> is regarded as an ordinary character and both a period and
a non-matching list can match one. ... Those utilities (like grep) that
do not allow <newline>s to match are responsible for eliminating any
<newline> from strings before matching against the RE."

Thus far git has not been removing the trailing newline from strings matched
against regular expression patterns. This has the effect that (quoting
Jonathan del Strother) "... a line containing just 'FUNCNAME' (terminated by
a newline) will be matched by the pattern '^(FUNCNAME.$)' but not
'^(FUNCNAME$)'", and more simply not '^FUNCNAME$'.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

t4018-diff-funcname: demonstrate end of line funcname... Brandon Casey Thu, 16 Oct 2008 00:58:50 +0000 (19:58 -0500)

t4018-diff-funcname: demonstrate end of line funcname matching flaw

Since the newline is not removed from lines before pattern matching, a
pattern cannot match to the end of the line using the '$' operator without
using an additional operator which will indirectly match the '\n' character.

Introduce a test which should pass, but which does not due to this flaw.

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

t4018-diff-funcname: rework negated last expression... Brandon Casey Thu, 16 Oct 2008 00:58:49 +0000 (19:58 -0500)

t4018-diff-funcname: rework negated last expression test

This test used the non-zero exit status of 'git diff' to indicate that a
negated funcname pattern, when placed last, was correctly rejected.

The problem with this is that 'git diff' always returns non-zero if it
finds differences in the files it is comparing, and the files must
contain differences in order to trigger the funcname pattern codepath.

Instead of checking for non-zero exit status, make sure the expected
error message is printed.

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

Typo "does not exists" when git remote update remote.Mikael Magnusson Fri, 19 Sep 2008 13:48:08 +0000 (15:48 +0200)

Typo "does not exists" when git remote update remote.

remote.c: correct the check for a leading '/' in a... Brandon Casey Tue, 14 Oct 2008 20:30:21 +0000 (15:30 -0500)

remote.c: correct the check for a leading '/' in a remote name

This test is supposed to disallow remote entries in the config file of the
form:

[remote "/foobar"]
...

The leading slash in '/foobar' is not acceptable.

Instead it was incorrectly testing that the subkey had no leading '/', which
had no effect since the subkey pointer was made to point at a '.' in the
preceding lines.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Acked-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add testcase to ensure merging an early part of a branc... Miklos Vajna Mon, 13 Oct 2008 20:54:25 +0000 (22:54 +0200)

Add testcase to ensure merging an early part of a branch is done properly

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

Update draft release notes to 1.6.0.3Junio C Hamano Mon, 13 Oct 2008 22:41:36 +0000 (15:41 -0700)

Update draft release notes to 1.6.0.3

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

Fix fetch/pull when run without --update-head-okJohannes Schindelin Mon, 13 Oct 2008 09:36:52 +0000 (11:36 +0200)

Fix fetch/pull when run without --update-head-ok

Some confusing tutorials suggested that it would be a good idea to fetch
into the current branch with something like this:

git fetch origin master:master

(or even worse: the same command line with "pull" instead of "fetch").
While it might make sense to store what you want to pull, it typically is
plain wrong when the current branch is "master". This should only be
allowed when (an incorrect) "git pull origin master:master" tries to work
around by giving --update-head-ok to underlying "git fetch", and otherwise
we should refuse it, but somewhere along the lines we lost that behavior.

The check for the current branch is now _only_ performed in non-bare
repositories, which is an improvement from the original behaviour.

Some newer tests were depending on the broken behaviour of "git fetch"
this patch fixes, and have been adjusted.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Acked-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test-lib: fix broken printfShawn O. Pearce Sun, 12 Oct 2008 20:13:59 +0000 (13:13 -0700)

test-lib: fix broken printf

b8eecafd888d219633f4c29e8b6a90fc21a46dfd introduced usage of
printf without a format string.

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

git apply --directory broken for new filesJeff King Sun, 12 Oct 2008 04:06:11 +0000 (00:06 -0400)

git apply --directory broken for new files

We carefully verify that the input to git-apply is sane,
including cross-checking that the filenames we see in "+++"
headers match what was provided on the command line of "diff
--git". When --directory is used, however, we ended up
comparing the unadorned name to one with the prepended root,
causing us to complain about a mismatch.

We simply need to prepend the root directory, if any, when
pulling the name out of the git header.

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

rebase -i: do not fail when there is no commit to cherr... Johannes Schindelin Fri, 10 Oct 2008 11:42:12 +0000 (13:42 +0200)

rebase -i: do not fail when there is no commit to cherry-pick

In case there is no commit to apply (for example because you rebase to
upstream and all your local patches have been applied there), do not
fail. The non-interactive rebase already behaves that way.

Do this by introducing a new command, "noop", which is substituted for
an empty commit list, so that deleting the commit list can still abort
as before.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

test-lib: fix color reset in say_color()Miklos Vajna Thu, 9 Oct 2008 22:07:10 +0000 (00:07 +0200)

test-lib: fix color reset in say_color()

When executing a single test with colors enabled, the cursor was not set
back to the previous one, and you had to hit an extra enter to get it
back.

Work around this problem by calling 'tput sgr0' before printing the
final newline.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

fix pread()'s short read in index-packNicolas Pitre Fri, 10 Oct 2008 02:08:51 +0000 (22:08 -0400)

fix pread()'s short read in index-pack

Since v1.6.0.2~13^2~ the completion of a thin pack uses sha1write() for
its ability to compute a SHA1 on the written data. This also provides
data buffering which, along with commit 92392b4a45, will confuse pread()
whenever an appended object is 1) freed due to memory pressure because
of the depth-first delta processing, and 2) needed again because it has
many delta children, and 3) its data is still buffered by sha1write().

Let's fix the issue by simply forcing cached data out when such an
object is written so it can be pread()'d at leisure.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Merge branch 'sg/maint-intrebase-msghook' into maintShawn O. Pearce Thu, 9 Oct 2008 16:33:23 +0000 (09:33 -0700)

Merge branch 'sg/maint-intrebase-msghook' into maint

* sg/maint-intrebase-msghook:
rebase -i: remove leftover debugging
rebase -i: proper prepare-commit-msg hook argument when squashing

builtin-apply: fix typo leading to stack corruptionImre Deak Wed, 8 Oct 2008 21:24:16 +0000 (00:24 +0300)

builtin-apply: fix typo leading to stack corruption

This typo led to stack corruption for lines with whitespace fixes
and length > 1024.

Signed-off-by: Imre Deak <imre.deak@gmail.com>
Looks-good-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git-stash.sh: fix flawed fix of invalid ref handling... Brandon Casey Thu, 2 Oct 2008 23:52:11 +0000 (18:52 -0500)

git-stash.sh: fix flawed fix of invalid ref handling (commit da65e7c1)

The referenced commit tried to fix a flaw in stash's handling of a user
supplied invalid ref. i.e. 'git stash apply fake_ref@{0}' should fail
instead of applying stash@{0}. But, it did so in a naive way by avoiding the
use of the --default option of rev-parse, and instead manually supplied the
default revision if the user supplied an empty command line. This prevented
a common usage scenario of supplying flags on the stash command line (i.e.
non-empty command line) which would be parsed by lower level git commands,
without supplying a specific revision. This should fall back to the default
revision, but now it causes an error. e.g. 'git stash show -p'

The correct fix is to use the --verify option of rev-parse, which fails
properly if an invalid ref is supplied, and still allows falling back to a
default ref when one is not supplied.

Convert stash-drop to use --verify while we're at it, since specifying
multiple revisions for any of these commands is also an error and --verify
makes it so.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Merge branch 'jk/maint-soliconv' into maintShawn O. Pearce Thu, 9 Oct 2008 16:08:43 +0000 (09:08 -0700)

Merge branch 'jk/maint-soliconv' into maint

* jk/maint-soliconv:
Makefile: do not set NEEDS_LIBICONV for Solaris 8

builtin-merge.c: allocate correct amount of memoryBrandon Casey Thu, 9 Oct 2008 00:07:54 +0000 (19:07 -0500)

builtin-merge.c: allocate correct amount of memory

Fix two memory allocation errors which allocate space for a pointer
rather than enough space for the structure itself.

This:

struct commit_list *parent = xmalloc(sizeof(struct commit_list *));

should have been this:

struct commit_list *parent = xmalloc(sizeof(struct commit_list));

But while we're at it, change the allocation to reference the
variable it is allocating memory for to try to prevent a similar
mistake, for example if the type is changed, in the future.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Acked-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Do not use errno when pread() returns 0Samuel Tardieu Mon, 6 Oct 2008 17:28:41 +0000 (19:28 +0200)

Do not use errno when pread() returns 0

If we use pread() while at the end of the file, it will return 0, which is
not an error from the operating system point of view. In this case, errno
has not been set and must not be used.

Signed-off-by: Samuel Tardieu <sam@rfc1149.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git init: --bare/--shared overrides system/global configDeskin Miller Tue, 7 Oct 2008 05:37:48 +0000 (01:37 -0400)

git init: --bare/--shared overrides system/global config

If core.bare or core.sharedRepository are set in /etc/gitconfig or
~/.gitconfig, then 'git init' will read the values when constructing a
new config file; reading them, however, will override the values
specified on the command line. In the case of --bare, this ends up
causing a segfault, without the repository being properly initialised;
in the case of --shared, the permissions are set according to the
existing config settings, not what was specified on the command line.

This fix saves any specified values for --bare and --shared prior to
reading existing config settings, and restores them after reading but
before writing the new config file. core.bare is ignored in all
situations, while core.sharedRepository will only be used if --shared
is not specified to git init.

Also includes testcases which use a specified global config file
override, demonstrating the former failure scenario.

Signed-off-by: Deskin Miller <deskinm@umich.edu>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git-push.txt: Describe --repo option in more detailJohannes Sixt Tue, 7 Oct 2008 14:26:20 +0000 (16:26 +0200)

git-push.txt: Describe --repo option in more detail

The --repo option was described in a way that the reader would have to
assume that it is the same as the <repository> parameter. But it actually
servers a purpose, which is now written down.

Furthermore, the --mirror option was missing from the synopsis.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git rm: refresh index before up-to-date checkJohannes Schindelin Tue, 7 Oct 2008 16:08:21 +0000 (18:08 +0200)

git rm: refresh index before up-to-date check

Since "git rm" is supposed to be porcelain, we should convince it to
be user friendly by refreshing the index itself.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Fix a few typos in relnotesMikael Magnusson Tue, 7 Oct 2008 18:15:25 +0000 (20:15 +0200)

Fix a few typos in relnotes

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

Update release notes for 1.6.0.3Shawn O. Pearce Mon, 6 Oct 2008 15:22:19 +0000 (08:22 -0700)

Update release notes for 1.6.0.3

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

Teach rebase -i to honor pre-rebase hookNanako Shiraishi Mon, 6 Oct 2008 05:14:24 +0000 (14:14 +0900)

Teach rebase -i to honor pre-rebase hook

The original git-rebase honored pre-rebase hook so that public branches
can be protected from getting rebased, but rebase --interactive ignored
the hook entirely. This fixes it.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

docs: describe pre-rebase hookNanako Shiraishi Sun, 5 Oct 2008 13:26:54 +0000 (22:26 +0900)

docs: describe pre-rebase hook

Documentation/git-rebase.txt talks about pre-rebase hook, but it
appears that Documentation/git-hooks.txt does not have corresponding
entry for it.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

do not segfault if make_cache_entry failedDmitry Potapov Sun, 5 Oct 2008 02:14:40 +0000 (06:14 +0400)

do not segfault if make_cache_entry failed

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

make prefix_path() never return NULLDmitry Potapov Sun, 5 Oct 2008 00:40:36 +0000 (04:40 +0400)

make prefix_path() never return NULL

There are 9 places where prefix_path is called, and only in one of
them the returned pointer was checked to be non-zero and only to
call exit(128) as it is usually done by die(). In other 8 places,
the returned value was not checked and it caused SIGSEGV when a
path outside of the working tree was used. For instance, running
git update-index --add /some/path/outside
caused SIGSEGV.

This patch changes prefix_path() to die if the path is outside of
the repository, so it never returns NULL.

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

fix bogus "diff --git" header from "diff --no-index"Linus Torvalds Sun, 5 Oct 2008 19:35:15 +0000 (15:35 -0400)

fix bogus "diff --git" header from "diff --no-index"

When "git diff --no-index" is given an absolute pathname, it
would generate a diff header with the absolute path
prepended by the prefix, like:

diff --git a/dev/null b/foo

Not only is this nonsensical, and not only does it violate
the description of diffs given in git-diff(1), but it would
produce broken binary diffs. Unlike text diffs, the binary
diffs don't contain the filenames anywhere else, and so "git
apply" relies on this header to figure out the filename.

This patch just refuses to use an invalid name for anything
visible in the diff.

Now, this fixes the "git diff --no-index --binary a
/dev/null" kind of case (and we'll end up using "a" as the
basename), but some other insane cases are impossible to
handle. If you do

git diff --no-index --binary a /bin/echo

you'll still get a patch like

diff --git a/a b/bin/echo
old mode 100644
new mode 100755
index ...

and "git apply" will refuse to apply it for a couple of
reasons, and the diff is simply bogus.

And that, btw, is no longer a bug, I think. It's impossible
to know whethe the user meant for the patch to be a rename
or not. And as such, refusing to apply it because you don't
know what name you should use is probably _exactly_ the
right thing to do!

Original problem reported by Imre Deak. Test script and problem
description by Jeff King.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Fix fetch/clone --quiet when stdout is connectedTuncer Ayaz Sun, 5 Oct 2008 13:53:00 +0000 (15:53 +0200)

Fix fetch/clone --quiet when stdout is connected

Fixes the `git clone --quiet` issue raised by Dave Jones in
http://marc.info/?l=git&m=121529226023180&w=2

With this simple patch applied we no longer see the following remote
messages as no-progress is correctly sent to the remote site:

remote: Counting objects: 84102, done.
remote: Compressing objects: 100% (24720/24720), done.
remote: Total 84102 (delta 60949), reused 80810 (delta 57900)

Signed-off-by: Tuncer Ayaz <tuncer.ayaz@gmail.com>
Acked-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

builtin-blame: Fix blame -C -C with submodules.Alexander Gavrilov Fri, 3 Oct 2008 16:23:50 +0000 (20:23 +0400)

builtin-blame: Fix blame -C -C with submodules.

When performing copy detection, git-blame tries to
read gitlinks as blobs, which causes it to die.

This patch adds a check to skip them.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

bash: remove fetch, push, pull dashed form leftoversSZEDER Gábor Fri, 3 Oct 2008 19:34:49 +0000 (21:34 +0200)

bash: remove fetch, push, pull dashed form leftovers

We don't provide complation for git-commands in dashed form anymore,
so there is no need to keep those cases.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Tested-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Makefile: do not set NEEDS_LIBICONV for Solaris 8Jeff King Fri, 3 Oct 2008 06:39:36 +0000 (02:39 -0400)

Makefile: do not set NEEDS_LIBICONV for Solaris 8

This breaks my build on Solaris 8, as there is no separate
libiconv.

The history of this line is somewhat convoluted. In 2fd955c
(in November 2005), NEEDS_LIBICONV was turned on for all
Solaris builds, claiming to "fix an error in Solaris 10 by
setting NEEDS_LIBICONV".

Later, e15f545 (in February of 2006) claimed that "Solaris
9+ don't need iconv", and moved NEEDS_LIBICONV into a
section for Solaris 8.

Furthermore, Brandon Casey claims in

<5A1KxlhmUIHe8iXPxnXYuNXsq0Yjlbwkz2eBin3z7ELuL9nK-4tSpw@cipher.nrlssc.navy.mil>

that he does not set NEEDS_LIBICONV for Solaris 7.

So either one of those commits is totally wrong, or there is
some other magic going on where some Solaris installs need
it and others don't.

Given Brandon's statement and my problems on Solaris 8 with
NEEDS_LIBICONV, I am inclined to think the first commit was
bogus, and that NEEDS_LIBICONV shouldn't be set for Solaris
at all by default. If somebody wants to use iconv and has
installed it manually, they can set it in their config.mak.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

rebase -i: remove leftover debuggingSZEDER Gábor Fri, 3 Oct 2008 09:33:20 +0000 (11:33 +0200)

rebase -i: remove leftover debugging

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

rebase -i: proper prepare-commit-msg hook argument... SZEDER Gábor Fri, 3 Oct 2008 00:08:21 +0000 (02:08 +0200)

rebase -i: proper prepare-commit-msg hook argument when squashing

One would expect that the prepare-commit-msg hook gets 'squash' as the
second argument when squashing commits with 'rebase -i'. However,
that was not the case, as it got 'merge' instead. This patch fixes
the problem.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

gitweb: Add path_info tests to t/t9500-gitweb-standalon... Jakub Narebski Thu, 2 Oct 2008 14:52:20 +0000 (16:52 +0200)

gitweb: Add path_info tests to t/t9500-gitweb-standalone-no-errors.sh

Note that those tests only check that there are no errors nor
warnings from Perl; they do not check for example if gitweb doesn't
use ARRAY(0x8e3cc20) instead of correct value in links, etc.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Acked-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

gitweb: Fix two 'uninitialized value' warnings in git_t... Jakub Narebski Thu, 2 Oct 2008 14:50:04 +0000 (16:50 +0200)

gitweb: Fix two 'uninitialized value' warnings in git_tree()

If we did try to access nonexistent directory or file, which means
that git_get_hash_by_path() returns `undef`, uninitialized $hash
variable was passed to 'open' call. Now we fail early with "404 Not
Found - No such tree" error. (If we try to access something which
does not resolve to tree-ish, for example a file / 'blob' object, the
error will be caught later, as "404 Not Found - Reading tree failed"
error).

If we tried to use 'tree' action without $file_name ('f' parameter)
set, which means either tree given by hash or a top tree (and we
currently cannot distinguish between those two cases), we cannot print
path breadcrumbs with git_print_page_path(). Fix this by moving call
to git_print_page_path() inside conditional.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Acked-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Solaris: Use OLD_ICONV to avoid compile warningsDavid Soria Parra Thu, 2 Oct 2008 00:08:47 +0000 (02:08 +0200)

Solaris: Use OLD_ICONV to avoid compile warnings

Solaris systems use the old styled iconv(3) call and therefore
the OLD_ICONV variable should be set. Otherwise we get annoying compile
warnings.

Signed-off-by: David Soria Parra <dsp@php.net>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

gitweb: remove PATH_INFO from $my_url and $my_uriGiuseppe Bilotta Mon, 29 Sep 2008 13:07:42 +0000 (15:07 +0200)

gitweb: remove PATH_INFO from $my_url and $my_uri

This patch fixes PATH_INFO handling by removing the relevant part from
$my_url and $my_uri, thus making it unnecessary to specify them by hand
in the gitweb configuration.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Acked-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Improve git-log documentation wrt file filtersmartin f. krafft Tue, 30 Sep 2008 19:57:50 +0000 (21:57 +0200)

Improve git-log documentation wrt file filters

The need for "--" in the git-log synopsis was previously unclear and
confusing. This patch makes it a little clearer.

Thanks to hyy <yiyihu@gmail.com> for his help.

[sp: Changed -- to \-- per prior commit e1ccf53.]

Signed-off-by: martin f. krafft <madduck@madduck.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Documentation: remove '\' in front of short optionsSZEDER Gábor Tue, 30 Sep 2008 17:27:10 +0000 (19:27 +0200)

Documentation: remove '\' in front of short options

... because they show up in the man and html outputs.

This escaping is only needed for double dashes to be compatible with
older asciidoc versions; see commit e1ccf53 ([PATCH] Escape asciidoc's
built-in em-dash replacement, 2005-09-12).

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git-svn: call 'fatal' correctly in set-treeLuc Heinrich Mon, 29 Sep 2008 13:58:18 +0000 (15:58 +0200)

git-svn: call 'fatal' correctly in set-tree

When doing a set-tree and there is no revision to commit to, the following unrelated error message is displayed: "Undefined subroutine &Git::SVN::fatal called at /opt/local/libexec/git-core/git-svn line 2575." The following patch fixes the problem and allows the real error message to be shown.

Signed-off-by: Luc Heinrich <luc@honk-honk.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Replace svn.foo.org with svn.example.com in git-svn... Michael Prokop Mon, 29 Sep 2008 23:01:34 +0000 (01:01 +0200)

Replace svn.foo.org with svn.example.com in git-svn docs (RFC 2606)

foo.org is an existing domain, use RFC 2606 complying example.com instead
as used in other docs as well.

Signed-off-by: Michael Prokop <mika@grml.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

t0024: add executable permissionSZEDER Gábor Tue, 30 Sep 2008 13:32:47 +0000 (15:32 +0200)

t0024: add executable permission

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Merge branch 'bc/maint-diff-hunk-header-fix' into maintShawn O. Pearce Mon, 29 Sep 2008 17:23:19 +0000 (10:23 -0700)

Merge branch 'bc/maint-diff-hunk-header-fix' into maint

* bc/maint-diff-hunk-header-fix:
t4018-diff-funcname: test syntax of builtin xfuncname patterns
diff hunk pattern: fix misconverted "\{" tex macro introducers
diff: use extended regexp to find hunk headers
diff.*.xfuncname which uses "extended" regex's for hunk header selection
diff.c: associate a flag with each pattern and use it for compiling regex
diff.c: return pattern entry pointer rather than just the hunk header pattern

Conflicts:
Documentation/gitattributes.txt

Merge branch 'mg/maint-remote-fix' into maintShawn O. Pearce Mon, 29 Sep 2008 16:39:53 +0000 (09:39 -0700)

Merge branch 'mg/maint-remote-fix' into maint

* mg/maint-remote-fix:
make "git remote" report multiple URLs

Clarify commit error message for unmerged filesRafael Garcia-Suarez Mon, 29 Sep 2008 16:04:41 +0000 (18:04 +0200)

Clarify commit error message for unmerged files

Currently, trying to use git-commit with unmerged files in the index
will show the message "Error building trees", which can be a bit
obscure to the end user. This patch makes the error message clearer, and
consistent with what git-write-tree reports in a similar situation.

Signed-off-by: Rafael Garcia-Suarez <rgarciasuarez@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Use strchrnul() instead of strchr() plus manual workaroundJohan Herland Sat, 27 Sep 2008 22:24:36 +0000 (00:24 +0200)

Use strchrnul() instead of strchr() plus manual workaround

Also gets rid of a C++ comment.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Use remove_path from dir.c instead of own implementationAlex Riesen Fri, 26 Sep 2008 22:59:14 +0000 (00:59 +0200)

Use remove_path from dir.c instead of own implementation

Besides, it fixes a memleak (builtin-rm.c) and accidental change of
the input const argument (builtin-merge-recursive.c).

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Add remove_path: a function to remove as much as possib... Alex Riesen Fri, 26 Sep 2008 22:56:46 +0000 (00:56 +0200)

Add remove_path: a function to remove as much as possible of a path

The function has two potential users which both managed to get wrong
their implementations (the one in builtin-rm.c one has a memleak, and
builtin-merge-recursive.c scribles over its const argument).

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git-submodule: Fix "Unable to checkout" for the initial... Ping Yin Fri, 26 Sep 2008 15:33:23 +0000 (23:33 +0800)

git-submodule: Fix "Unable to checkout" for the initial 'update'

Since commit 55218("checkout: do not lose staged removal"), in
cmd_add/cmd_update, "git checkout <commit>" following
"git clone -n" may fail if <commit> is different from HEAD.

So Use "git checkout -f <commit>" to fix this.

Signed-off-by: Ping Yin <pkufranky@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>