Code

git.git
13 years agodo not depend on signed integer overflow
Erik Faye-Lund [Tue, 5 Oct 2010 07:24:10 +0000 (09:24 +0200)]
do not depend on signed integer overflow

Signed integer overflow is not defined in C, so do not depend on it.

This fixes a problem with GCC 4.4.0 and -O3 where the optimizer would
consider "consumed_bytes > consumed_bytes + bytes" as a constant
expression, and never execute the die()-call.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Acked-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agowork around buggy S_ISxxx(m) implementations
René Scharfe [Mon, 4 Oct 2010 10:53:11 +0000 (12:53 +0200)]
work around buggy S_ISxxx(m) implementations

There are buggy implementations of S_ISxxx(m) macros on some platforms
(e.g. NetBSD).  The issue is that NetBSD doesn't take care to wrap its
macro arguments in parentheses, so on Linux and sane systems we have
S_ISREG(m) defined as something like:

    (((m) & S_IFMT) == S_IFREG)

But on NetBSD:

    ((m & _S_IFMT) == _S_IFREG)

Since a caller in builtin/diff.c called our macro as `S_IFREG | 0644'
this bug introduced a logic error on NetBSD, since the precedence of
bit-wise & is higher than | in C.

[jc: took change description from Ævar Arnfjörð Bjarmason's patch]

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoxdiff: cast arguments for ctype functions to unsigned char
Jonathan Nieder [Mon, 4 Oct 2010 09:09:17 +0000 (04:09 -0500)]
xdiff: cast arguments for ctype functions to unsigned char

The ctype functions isspace(), isalnum(), et al take an integer
argument representing an unsigned character, or -1 for EOF.  On
platforms with a signed char, it is unsafe to pass a char to them
without casting it to unsigned char first.

Most of git is already shielded against this by the ctype
implementation in git-compat-util.h, but xdiff, which uses libc
ctype.h, ought to be fixed.

Noticed-by: der Mouse <mouse@Rodents-Montreal.ORG>
Reported-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoinit: plug tiny one-time memory leak
Jonathan Nieder [Mon, 4 Oct 2010 04:34:27 +0000 (23:34 -0500)]
init: plug tiny one-time memory leak

The buffer used to construct paths like ".git/objects/info" and
".git/objects/pack" is allocated on the heap and never freed.

So free it.  While at it, factor out the relevant code into its own
function and rename the sha1_dir variable to object_directory (to
match the change in everyday usage after the renaming of
SHA1_FILE_DIRECTORY in v0.99~603^2~7, 2005).

Noticed by valgrind while setting up tests (in test-lib).

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agodiffcore-pickaxe.c: remove unnecessary curly braces
Brandon Casey [Mon, 4 Oct 2010 22:51:47 +0000 (17:51 -0500)]
diffcore-pickaxe.c: remove unnecessary curly braces

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge early part of git-svn into maint
Junio C Hamano [Tue, 5 Oct 2010 15:36:10 +0000 (08:36 -0700)]
Merge early part of git-svn into maint

* commit 'git-svn/master~1':
  git-svn: fix processing of decorated commit hashes
  git-svn: check_cherry_pick should exclude commits already in our history
  Documentation/git-svn: discourage "noMetadata"

13 years agot3020 (ls-files-error-unmatch): remove stray '1' from end of file
Elijah Newren [Sun, 3 Oct 2010 20:00:00 +0000 (14:00 -0600)]
t3020 (ls-files-error-unmatch): remove stray '1' from end of file

Acked-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agosetup: make sure git dir path is in a permanent buffer
Jonathan Nieder [Sat, 2 Oct 2010 08:36:52 +0000 (03:36 -0500)]
setup: make sure git dir path is in a permanent buffer

If setup_git_env() is run before the usual repository discovery
sequence and .git is a file with the text

gitdir: <path>

(with <path> any string) then the in-core git_dir variable is set to
the result of converting <path> to an absolute path using
make_absolute_path().

Unfortunately make_absolute_path() returns its result in a static
buffer that is overwritten by later calls.  Such a call could cause
later accesses to git_dir (from git_pathdup(), for example) to read
the wrong path, leaving git very confused.

It is not obvious whether any existing code in git will trigger the
problem, but in any case, it is worth a few dozen bytes to copy the
return value from make_absolute_path() for some added peace of mind.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoenvironment.c: remove unused variable
Jonathan Nieder [Sat, 2 Oct 2010 08:35:29 +0000 (03:35 -0500)]
environment.c: remove unused variable

After v1.6.0-rc0~230^2^ (environment.c: remove unused function,
2008-06-19), git_refs_dir is not used any more.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoFix typo in pack-objects' usage
Johannes Schindelin [Wed, 29 Sep 2010 22:22:33 +0000 (23:22 +0100)]
Fix typo in pack-objects' usage

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMake sure that git_getpass() never returns NULL
Johannes Schindelin [Wed, 29 Sep 2010 22:22:32 +0000 (23:22 +0100)]
Make sure that git_getpass() never returns NULL

The result of git_getpass() is used without checking for NULL, so let's
just die() instead of returning NULL.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agodiff: avoid repeated scanning while looking for funcname
René Scharfe [Sun, 26 Sep 2010 16:26:56 +0000 (18:26 +0200)]
diff: avoid repeated scanning while looking for funcname

For each hunk, xdl_find_func searches the preimage for a function name
until the beginning of the file. If the file does not contain any
function names, this search has complexity O(n^2) in the number of
hunks n.

Instead, inline xdl_find_func() and keep track of up to which line we
have scanned already and the contents of the last funcname line that
we have found.

Noticed and a different approach proposed by Clemens Buchacher.
This alternative solution was done by René Scharfe.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot0004 (unwritable files): simplify error handling
Jonathan Nieder [Tue, 7 Sep 2010 01:50:17 +0000 (20:50 -0500)]
t0004 (unwritable files): simplify error handling

Instead of

... normal test script ...
status=$?
... cleanup ...
(exit $status)

set up cleanup commands with test_when_finished.  This makes the
test script a little shorter, and more importantly, it ensures errors
during cleanup are reported.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agorev-list-options: clarify --parents and --children
Michael J Gruber [Thu, 30 Sep 2010 15:31:43 +0000 (17:31 +0200)]
rev-list-options: clarify --parents and --children

Make it clearer that --parents resp. --children list the parent resp.
child commits next to each commit, so that I understand next time.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoblame,cat-file --textconv: Don't assume mode is ``S_IFREF | 0664''
Kirill Smelkov [Wed, 29 Sep 2010 11:35:24 +0000 (15:35 +0400)]
blame,cat-file --textconv: Don't assume mode is ``S_IFREF | 0664''

We need to get the correct mode when blame reads the source from the
working tree, the index, or trees.  This allows us to omit running
textconv filters on symbolic links.

Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
Reviewed-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoblame,cat-file: Demonstrate --textconv is wrongly running converter on symlinks
Kirill Smelkov [Wed, 29 Sep 2010 11:35:23 +0000 (15:35 +0400)]
blame,cat-file: Demonstrate --textconv is wrongly running converter on symlinks

git blame --textconv is wrongly calling the textconv filter on
symlinks: symlinks are stored as blobs whose content is the target of
the link, and blame calls the textconv filter on a temporary file
filled-in with the content of this blob.

For example:

    $ git blame -C -C regular-file.pdf
    Error: May not be a PDF file (continuing anyway)
    Error: PDF file is damaged - attempting to reconstruct xref table...
    Error: Couldn't find trailer dictionary
    Error: Couldn't read xref table
    Warning: program returned non-zero exit code #1
    fatal: unable to read files to diff

That errors come from pdftotext run on symlink.pdf being extracted to
/tmp/ with one-line plain-text content pointing to link destination.

So several failures are demonstrated here:

  - git cat-file --textconv :symlink.bin    # also HEAD:symlink.bin
  - git blame --textconv symlink.bin
  - git blame -C -C --textconv regular-file # but also looks on symlink.bin

At present they all fail with something like.

    E: /tmp/j3ELEs_symlink.bin is not "binary" file

NOTE: git diff doesn't try to textconv the pathnames, it runs the
textual diff without textconv, which is the expected behavior.

Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
Reviewed-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoblame,cat-file: Prepare --textconv tests for correctly-failing conversion program
Kirill Smelkov [Wed, 29 Sep 2010 11:35:22 +0000 (15:35 +0400)]
blame,cat-file: Prepare --textconv tests for correctly-failing conversion program

The textconv filter is sometimes incorrectly ran on a temporary file
whose content is the target of a symbolic link, instead of actual file
content. Prepare to test this by marking the content of the file to
convert with "bin:", and let the helper die if "bin:" is not found in
the file content.

NOTE: I've changed $@ to $1 in helper becase textconv program "should
take a single argument" (see Documentation/gitattributes.txt), so
making this more explicit makes sense and also helps to avoid
problems with feeding arguments to echo.

Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
Reviewed-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMinGW: avoid collisions between "tags" and "TAGS"
Junio C Hamano [Tue, 28 Sep 2010 21:08:38 +0000 (16:08 -0500)]
MinGW: avoid collisions between "tags" and "TAGS"

On case insensitive filesystems, "tags" and "TAGS" target will try to
overwrite the same file.  Allow MinGW to use "ETAGS" instead.

These two targets do produce real files; do not put them on .PHONY target
list.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agodiff: trivial fix for --output file error message
Matthieu Moy [Wed, 29 Sep 2010 07:26:23 +0000 (09:26 +0200)]
diff: trivial fix for --output file error message

The option argument is either after the equal sign in --output=... or in
the next command-line argument. optarg is the reliable way to access it.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agouser-manual: fix anchor name Finding-comments-With-given-Content
Michael J Gruber [Tue, 28 Sep 2010 11:16:07 +0000 (13:16 +0200)]
user-manual: fix anchor name Finding-comments-With-given-Content

Change the anchor name to

Finding-commits-With-given-Content

so that it corresponds to the actual content there.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agouser-manual: be consistent in illustrations to 'git rebase'
Kirill Smelkov [Tue, 28 Sep 2010 08:20:24 +0000 (12:20 +0400)]
user-manual: be consistent in illustrations to 'git rebase'

Since we use a-b-c for mywork commits in one place, I think it would be
logical to also use a-b-c too in other illustration on this topic.

Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agostash: simplify parsing fixes
Jon Seymour [Mon, 27 Sep 2010 15:32:45 +0000 (01:32 +1000)]
stash: simplify parsing fixes

This patch simplifies Brian's fix for the recent regression by:

* eliminating the extra loop
* eliminating use of git rev-parse for parsing flags
* making use of the for opt idiom for the retained loop
* eliminating the redundant -- case

The patch has been tested with the tests in current maint.

Signed-off-by: Jon Seymour <jon.seymour@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoGit 1.7.3.1 v1.7.3.1
Junio C Hamano [Wed, 29 Sep 2010 16:42:53 +0000 (09:42 -0700)]
Git 1.7.3.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agostash: fix git stash branch regression when branch creation fails
Jon Seymour [Tue, 28 Sep 2010 13:19:52 +0000 (23:19 +1000)]
stash: fix git stash branch regression when branch creation fails

"git stash branch <branch> <stash>" started discarding the stash
when the branch creation fails.  It should have kept the stash
intact when aborting.

Signed-off-by: Jon Seymour <jon.seymour@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agostash drops the stash even if creating the branch fails because it already exists
Tomas Carnecky [Tue, 28 Sep 2010 13:19:51 +0000 (23:19 +1000)]
stash drops the stash even if creating the branch fails because it already exists

This bug was disovered by someone on IRC when he tried to

    $ git stash branch <branch> <stash>

while <branch> already existed. In that case the stash is dropped even
though it isn't applied on any branch, so the stash is effectively lost.

Signed-off-by: Tomas Carnecky <tom@dbservice.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoFix missing 'does' in man-page for 'git checkout'
Linus Torvalds [Mon, 27 Sep 2010 19:14:57 +0000 (12:14 -0700)]
Fix missing 'does' in man-page for 'git checkout'

Reported-by: Rainer Standke <rainer.standke@krankikom.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoDocumentation: pack.compression: explain how to recompress
Jan Krüger [Mon, 27 Sep 2010 12:21:58 +0000 (14:21 +0200)]
Documentation: pack.compression: explain how to recompress

Add a small remark about how to recompress all existing objects after
changing the compression level for pack files.

Signed-off-by: Jan Krüger <jk@jk.gs>
Acked-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agorepack: add -F flag to let user choose between --no-reuse-delta/object
Jan Krüger [Mon, 27 Sep 2010 12:19:36 +0000 (14:19 +0200)]
repack: add -F flag to let user choose between --no-reuse-delta/object

In 479b56ba ('make "repack -f" imply "pack-objects --no-reuse-object"'),
git repack -f was changed to include recompressing all objects on the
zlib level on the assumption that if the user wants to spend that much
time already, some more time won't hurt (and recompressing is useful if
the user changed the zlib compression level).

However, "some more time" can be quite long with very big repositories,
so some users are going to appreciate being able to choose. If we are
going to give them the choice, --no-reuse-object will probably be
interesting a lot less frequently than --no-reuse-delta. Hence, this
reverts -f to the old behaviour (--no-reuse-delta) and adds a new -F
option that replaces the current -f.

Measurements taken using this patch on a current clone of git.git
indicate a 17% decrease in time being made available to users:

git repack -Adf  34.84s user 0.56s system 145% cpu 24.388 total
git repack -AdF  38.79s user 0.56s system 133% cpu 29.394 total

Signed-off-by: Jan Krüger <jk@jk.gs>
Acked-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMakefile: add CC to TRACK_CFLAGS
Ævar Arnfjörð Bjarmason [Sun, 12 Sep 2010 22:37:45 +0000 (22:37 +0000)]
Makefile: add CC to TRACK_CFLAGS

Change the git make process so that everything's rebuilt if the CC is
changed. Before we wouldn't rebuilt if e.g. the CC variable was
changed from gcc to clang.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agodir.c: squelch false uninitialized memory warning
Pat Notz [Thu, 16 Sep 2010 20:53:22 +0000 (14:53 -0600)]
dir.c: squelch false uninitialized memory warning

GCC 4.4.4 on MacOS incorrectly warns about potential use of uninitialized memory.

Signed-off-by: Pat Notz <patnotz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-send-email.perl: ensure $domain is defined before using it
Brandon Casey [Mon, 27 Sep 2010 03:18:01 +0000 (22:18 -0500)]
git-send-email.perl: ensure $domain is defined before using it

valid_fqdn() may attempt to operate on an undefined value if
Net::Domain::domainname fails to determine the domain name.  This causes
perl to emit unpleasant warnings.

So, add a check for whether $domain has been defined before using it.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agowt-status.c: don't leak directory entries when processing untracked,ignored
Brandon Casey [Mon, 27 Sep 2010 02:49:13 +0000 (21:49 -0500)]
wt-status.c: don't leak directory entries when processing untracked,ignored

When iterating through the list of directory entries, searching for
untracked entries, only the entries added to the string_list were free'd.
The rest (tracked or not matching the pathspec) were leaked.

Ditto for the "ignored" loop.

Rearrange the loops so that all entries are free'd.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot6050 (replace): fix bogus "fetch branch with replacement" test
Christian Couder [Sun, 26 Sep 2010 05:20:18 +0000 (07:20 +0200)]
t6050 (replace): fix bogus "fetch branch with replacement" test

The test was missing some "&&" at the end of some lines and it
was wrong because, as the replacement refs were not fetched,
the commits from the parallel branch should not show up. This
was found by Elijah Newren.

This is fixed by checking that after the branch from HASH6 is
fetched, the commits from the parallel branch don't show up,
and then by fetching the replacement refs and checking that
they do show up afterwards.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoDocumentation: Refer to git-commit-tree in git-filter-branch help
Wesley J. Landaker [Mon, 13 Sep 2010 14:59:54 +0000 (08:59 -0600)]
Documentation: Refer to git-commit-tree in git-filter-branch help

Currently, the help for git filter-branch refers users of --env-filter
to git-commit for information about environment variables affecting
commits. However, this information is not contained in the git-commit
help, but is very explicitly detailed in git-commit-tree.

Signed-off-by: Wesley J. Landaker <wjl@icecavern.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoupdate comment and documentation for :/foo syntax
Matthieu Moy [Fri, 24 Sep 2010 16:43:59 +0000 (18:43 +0200)]
update comment and documentation for :/foo syntax

The documentation in revisions.txt did not match the implementation, and
the comment in sha1_name.c was incomplete.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoImprovements to `git checkout -h`
Daniel Knittl-Frank [Fri, 24 Sep 2010 16:21:59 +0000 (18:21 +0200)]
Improvements to `git checkout -h`

be a little more verbose about what each option does

Signed-off-by: Daniel Knittl-Frank <knittl89+git@googlemail.com>
Reviewed-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocontrib/completion: --no-index option to git diff
Michael J Gruber [Thu, 23 Sep 2010 12:33:51 +0000 (14:33 +0200)]
contrib/completion: --no-index option to git diff

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoget_author_ident_from_commit(): remove useless quoting
Uwe Kleine-König [Thu, 23 Sep 2010 09:22:10 +0000 (11:22 +0200)]
get_author_ident_from_commit(): remove useless quoting

The command 's/'\''/'\''\'\'\''/g' only triples single quotes:

$ echo "What's up?" | sed 's/'\''/'\''\'\'\''/g'
What'''s up?

This doesn't hurt as compared to a single single quote it only adds an
empty string, but it makes the script needlessly complicated and hard to
understand.  The useful quoting is done by s/'\''/'\''\\'\'\''/g at the
beginning of the script and only once for all three variables.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoprefer test -h over test -L in shell scripts
Jeff King [Wed, 22 Sep 2010 00:35:59 +0000 (20:35 -0400)]
prefer test -h over test -L in shell scripts

Even though "-L" is POSIX, the former is more portable, and
we tend to prefer it already.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoCodingGuidelines: spell Arithmetic Expansion with $(($var))
Junio C Hamano [Wed, 22 Sep 2010 19:15:37 +0000 (12:15 -0700)]
CodingGuidelines: spell Arithmetic Expansion with $(($var))

POSIX wants shells to support both "N" and "$N" and requires them to yield
the same answer to $((N)) and $(($N)), but we should aim for portability
in a case like this, especially when the price we pay to do so is so
small, i.e. a few extra dollars.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot1503: Fix arithmetic expansion syntax error when using dash
Ramsay Jones [Tue, 21 Sep 2010 17:45:09 +0000 (18:45 +0100)]
t1503: Fix arithmetic expansion syntax error when using dash

On systems which have dash as /bin/sh, such as Ubuntu, the final
test (master@{n} for various n) fails with a syntax error while
processing an arithmetic expansion. The syntax error is caused by
using a bare name ('N') as a variable reference in the expression.

In order to avoid the syntax error, we spell the variable reference
as '$N' rather than simply 'N'.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoremote-helpers: build in platform independent directory
Michael J Gruber [Fri, 17 Sep 2010 21:00:53 +0000 (23:00 +0200)]
remote-helpers: build in platform independent directory

The build directory which is used by distutils depends on the platform
(e.g. build/lib on Fedora 13, build/lib.linux-i686-2.6 on Ubuntu 9.04).
But test-lib.sh expects to find the build in build/lib which can cause
t5800-remote-helpers.sh to fail early.

Override distutils' choice so that the build is always in build/lib.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agostrbuf.h: fix comment typo
Pat Notz [Thu, 16 Sep 2010 20:53:23 +0000 (14:53 -0600)]
strbuf.h: fix comment typo

Signed-off-by: Pat Notz <patnotz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agobuiltin/revert.c: don't dereference a NULL pointer
Brandon Casey [Mon, 27 Sep 2010 17:29:45 +0000 (12:29 -0500)]
builtin/revert.c: don't dereference a NULL pointer

cherry-pick will segfault when transplanting a root commit if the --ff
option is used.  This happens because the "parent" pointer is set to NULL
when the commit being cherry-picked has no parents.  Later, when "parent"
is dereferenced, the cherry-pick segfaults.

Fix this by checking whether "parent" is NULL before dereferencing it and
add a test for this case of cherry-picking a root commit with --ff.

Reported-by: Zbyszek Szmek <zbyszek@in.waw.pl>
Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-stash: fix flag parsing
Brian Gernhardt [Fri, 24 Sep 2010 22:15:34 +0000 (18:15 -0400)]
git-stash: fix flag parsing

Currently git-stash uses `git rev-parse --no-revs -- "$@"` to set its
FLAGS variable.  This is the same as `FLAGS="-- $@"`.  It should use
`git rev-parse --no-revs --flags "$@"`, but that eats any "-q" or
"--quiet" argument.  So move the check for quiet before rev-parse.

Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot/t3903-stash: improve testing of git-stash show
Brandon Casey [Fri, 24 Sep 2010 20:40:38 +0000 (15:40 -0500)]
t/t3903-stash: improve testing of git-stash show

Recently, the 'stash show' functionality was broken for the case when a
stash-like argument was supplied.  Since, commit 9bf09e, 'stash show' when
supplied a stash-like argument prints nothing and still exists with a zero
status.  Unfortunately, the flaw slipped through the test suite cracks
since the output of 'stash show' was not verified to be correct.

Improve and expand on the existing tests so that this flaws is detected.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-svn: fix processing of decorated commit hashes
Mathias Lafeldt [Thu, 23 Sep 2010 22:05:03 +0000 (00:05 +0200)]
git-svn: fix processing of decorated commit hashes

The function working_head_info() fails to parse commit hashes if they
are decorated (i.e. log.decorate is true), causing dcommit, rebase, and
other vital git-svn commands to malfunction.

This patch disables decorated log output with --no-decorate.

[ew: wrapped long line]

Signed-off-by: Mathias Lafeldt <misfire@debugon.org>
Acked-by: Eric Wong <normalperson@yhbt.net>
13 years agogit-svn: check_cherry_pick should exclude commits already in our history
Steven Walter [Thu, 2 Sep 2010 22:32:06 +0000 (18:32 -0400)]
git-svn: check_cherry_pick should exclude commits already in our history

The merge-base between @$parents and $merge_tip may have been reached
through a merge commit.  This means that some commits that are ancestors
of @$parents will not be ancestors of $merge_base.  The mergeinfo
property will not list commits that are ancestors of @$parents, so we
need to explicitly exclude them.

[ew: squashed and cleaned up test case from Steven]

Signed-off-by: Steven Walter <stevenrwalter@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
13 years agoDocumentation/git-svn: discourage "noMetadata"
Eric Wong [Sat, 21 Aug 2010 18:52:14 +0000 (18:52 +0000)]
Documentation/git-svn: discourage "noMetadata"

"noMetadata" is a sometimes harmful option, so better document
its behavior and limitations.

Suggested-by: Vadim Zeitlin
Signed-off-by: Eric Wong <normalperson@yhbt.net>
13 years agodo not search functions for patch ID
Clemens Buchacher [Sun, 19 Sep 2010 09:59:28 +0000 (11:59 +0200)]
do not search functions for patch ID

Visual aids, such as the function name in the hunk
header, are not necessary for the purposes of
computing a patch ID.

This is a performance optimization.

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoadd rebase patch id tests
Clemens Buchacher [Sun, 19 Sep 2010 09:59:27 +0000 (11:59 +0200)]
add rebase patch id tests

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agodiff: don't use pathname-based diff drivers for symlinks
Jeff King [Tue, 21 Sep 2010 21:01:24 +0000 (17:01 -0400)]
diff: don't use pathname-based diff drivers for symlinks

When we're diffing symlinks, we consider the contents to be
the pathname that the symlink points to. When a user sets up
a userdiff driver like "*.pdf diff=pdf", their "diff.pdf.*"
config generally tells us what to do with the content of
pdf files.

With the current code, we will actually process a symlink
like "link.pdf" using a configured pdf driver, meaning we
are using contents which consist of a pathname with
configuration that is expecting contents that consist of an
actual pdf file.

The most noticeable example of this would have been
textconv; however, it was already protected in its own
textconv-specific code path. We can still see the breakage
with something like "diff.*.binary", though. You could
also see it with diff.*.funcname, though it is a bit harder
to trigger accidentally there.

This patch adds a check for S_ISREG lower in the callstack
than the textconv-specific check, which should block use of
any userdiff config for non-regular files. We can drop the
check in the textconv code, which is now redundant.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-reset.txt: make modes description more consistent
Michael J Gruber [Wed, 15 Sep 2010 20:47:44 +0000 (22:47 +0200)]
git-reset.txt: make modes description more consistent

Currently, the structure of the individual mode entries is different
which makes it difficult to grasp the differences between the modes.
Also, the same items are named differently (e.g. <commit>, "the named
commit", "the given commit", "the commit being switched to").

Structure and word all mode entries consistently.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-reset.txt: point to git-checkout
Michael J Gruber [Wed, 15 Sep 2010 20:47:43 +0000 (22:47 +0200)]
git-reset.txt: point to git-checkout

for the case of updating a file in index and worktree, or from the index
to the worktree.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-reset.txt: use "working tree" consistently
Michael J Gruber [Wed, 15 Sep 2010 20:47:42 +0000 (22:47 +0200)]
git-reset.txt: use "working tree" consistently

as per git help glossary

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-reset.txt: reset --soft is not a no-op
Michael J Gruber [Wed, 15 Sep 2010 20:47:41 +0000 (22:47 +0200)]
git-reset.txt: reset --soft is not a no-op

Make it clearer that git reset --soft actually does something (changing
HEAD). While it is mentioned in the previous paragraph already it can
be easily overlooked otherwise.

Also, git reset --soft does not look at the index nor the worktree, so
there is no "good order" requirement.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-reset.txt: reset does not change files in target
Michael J Gruber [Wed, 15 Sep 2010 20:47:40 +0000 (22:47 +0200)]
git-reset.txt: reset does not change files in target

git-reset obviously cannot change files in an existing commit. Make it
not sound as if it could: reset can change HEAD and, in that sense, can
change which state a file in HEAD is in.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-reset.txt: clarify branch vs. branch head
Michael J Gruber [Wed, 15 Sep 2010 20:47:39 +0000 (22:47 +0200)]
git-reset.txt: clarify branch vs. branch head

"Change the branch" can be misunderstood to mean "change which branch is
checked out". Make it clearer that git-reset changes the branch head of
the currently checked out branch.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoGit 1.7.3 v1.7.3
Junio C Hamano [Sat, 18 Sep 2010 21:55:08 +0000 (14:55 -0700)]
Git 1.7.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'js/ls-files-x-doc'
Junio C Hamano [Sat, 18 Sep 2010 21:46:44 +0000 (14:46 -0700)]
Merge branch 'js/ls-files-x-doc'

* js/ls-files-x-doc:
  ls-files documentation: reword for consistency
  git-ls-files.txt: clarify -x/--exclude option

Conflicts:
Documentation/git-ls-files.txt

13 years agogit-rebase--interactive.sh: replace cut with ${v%% *}
Chris Johnsen [Fri, 17 Sep 2010 21:42:51 +0000 (16:42 -0500)]
git-rebase--interactive.sh: replace cut with ${v%% *}

Some versions of cut do not cope well with lines that do not end in
an LF. In this case, we can completely avoid cut by using the
${var%% *} parameter expansion (suggested by Brandon Casey).

I found this problem when t3404's "avoid unnecessary reset" failed
due to the "rebase -i" not avoiding updating the tested timestamp.

On a Mac OS X 10.4.11 system:

    % printf '%s' 'foo bar' | /usr/bin/cut -d ' ' -f 1
    cut: stdin: Illegal byte sequence

Signed-off-by: Chris Johnsen <chris_johnsen@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot/t7300: workaround ancient touch by rearranging arguments
Brandon Casey [Wed, 15 Sep 2010 20:58:22 +0000 (15:58 -0500)]
t/t7300: workaround ancient touch by rearranging arguments

The ancient touch on Solaris 7 thinks that a decimal number supplied as
the first argument specifies a date_time to give to the files specified by
the remaining arguments.  In this case, it fails to parse '1' as a proper
date_time and exits with a failure status.  Workaround this flaw by
rearranging the arguments supplied to touch so that a non-digit appears
first and touch will not be confused.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'bg/fix-t7003'
Junio C Hamano [Thu, 16 Sep 2010 14:43:41 +0000 (07:43 -0700)]
Merge branch 'bg/fix-t7003'

* bg/fix-t7003:
  t7003: Use test_commit instead of custom function

13 years agols-files documentation: reword for consistency
Junio C Hamano [Thu, 16 Sep 2010 00:34:20 +0000 (17:34 -0700)]
ls-files documentation: reword for consistency

Similar to descriptions of other options, state what -x does in imperative
mood.  Start sentences for -X and --exclude-per-directory options in
capital letters.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-ls-files.txt: clarify -x/--exclude option
Jay Soffian [Wed, 15 Sep 2010 23:56:48 +0000 (19:56 -0400)]
git-ls-files.txt: clarify -x/--exclude option

Since b5227d8, -x/--exclude does not apply to cached files.
This is easy to miss unless you read the discussion in the
EXCLUDE PATTERNS section. Clarify that the option applies
to untracked files and direct the reader to EXCLUDE PATTERNS.

Signed-off-by: Jay Soffian <jaysoffian@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoGit 1.7.3 rc2 v1.7.3-rc2
Junio C Hamano [Wed, 15 Sep 2010 19:47:37 +0000 (12:47 -0700)]
Git 1.7.3 rc2

13 years agoMerge branch 'dr/maint-ls-tree-prefix-recursion-fix'
Junio C Hamano [Wed, 15 Sep 2010 19:41:13 +0000 (12:41 -0700)]
Merge branch 'dr/maint-ls-tree-prefix-recursion-fix'

* dr/maint-ls-tree-prefix-recursion-fix:
  ls-tree $di $dir: do not mistakenly recurse into directories

13 years agoMerge branch 'os/fix-rebase-diff-no-prefix'
Junio C Hamano [Wed, 15 Sep 2010 19:40:33 +0000 (12:40 -0700)]
Merge branch 'os/fix-rebase-diff-no-prefix'

* os/fix-rebase-diff-no-prefix:
  Add --src/dst-prefix to git-formt-patch in git-rebase.sh

13 years agoMerge branch 'jl/fix-test'
Junio C Hamano [Wed, 15 Sep 2010 19:40:12 +0000 (12:40 -0700)]
Merge branch 'jl/fix-test'

* jl/fix-test:
  t1020: Get rid of 'cd "$HERE"' at the start of each test
  t2016 (checkout -p): add missing &&
  t1302 (core.repositoryversion): style tweaks
  t2105 (gitfile): add missing &&
  t1450 (fsck): remove dangling objects
  tests: subshell indentation stylefix
  Several tests: cd inside subshell instead of around

13 years agoMerge branch 'ch/filter-branch-deprecate-remap-to-ancestor'
Junio C Hamano [Wed, 15 Sep 2010 19:39:32 +0000 (12:39 -0700)]
Merge branch 'ch/filter-branch-deprecate-remap-to-ancestor'

* ch/filter-branch-deprecate-remap-to-ancestor:
  filter-branch: retire --remap-to-ancestor

13 years agoMerge branch 'ch/maint-cannot-create-bundle-error'
Junio C Hamano [Wed, 15 Sep 2010 19:39:22 +0000 (12:39 -0700)]
Merge branch 'ch/maint-cannot-create-bundle-error'

* ch/maint-cannot-create-bundle-error:
  bundle: detect if bundle file cannot be created

13 years agoMerge branch 'ks/recursive-rename-add-identical'
Junio C Hamano [Wed, 15 Sep 2010 19:39:12 +0000 (12:39 -0700)]
Merge branch 'ks/recursive-rename-add-identical'

* ks/recursive-rename-add-identical:
  RE: [PATCH] Avoid rename/add conflict when contents are identical

13 years agoMerge git://repo.or.cz/git-gui
Junio C Hamano [Wed, 15 Sep 2010 19:34:37 +0000 (12:34 -0700)]
Merge git://repo.or.cz/git-gui

* 'master' of git://repo.or.cz/git-gui:
  git-gui 0.13
  git-gui: avoid mis-encoding the copyright message on Windows.
  git-gui: Update Swedish translation (521t).
  git-gui: ensure correct application termination in git-gui--askpass
  git-gui: handle textconv filter on Windows and in development
  git-gui: use shell to launch textconv filter in "blame"
  git-gui: display error launching blame as a message box.
  git-gui: Make usage statement visible on Windows.

13 years agogit-gui 0.13 gitgui-0.13.0
Pat Thoyts [Tue, 14 Sep 2010 21:42:37 +0000 (22:42 +0100)]
git-gui 0.13

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agogit-gui: avoid mis-encoding the copyright message on Windows.
Pat Thoyts [Mon, 13 Sep 2010 19:41:42 +0000 (20:41 +0100)]
git-gui: avoid mis-encoding the copyright message on Windows.

On Windows the tcl script file will use the system encoding and attempting
to convert the copyright mis-encodes the string. Instead, keep the message
as ASCII and substitute in the correct unicode character when running.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agogit-gui: Update Swedish translation (521t).
Peter Krefting [Sun, 12 Sep 2010 20:13:29 +0000 (21:13 +0100)]
git-gui: Update Swedish translation (521t).

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agot7003: Use test_commit instead of custom function
Brian Gernhardt [Fri, 10 Sep 2010 22:06:36 +0000 (18:06 -0400)]
t7003: Use test_commit instead of custom function

t7003-filter-branch.sh had a make_commit() function that was identical
to test_commit() in test-lib.sh except that it used tr to create a
lowercase file name from the uppercase branch name instead of
appending ".t".

Not only is this unneeded code duplication, it also was something
simply waiting to fail on case-insensitive file systems.  So replace
all uses of make_commit with test_commit.

While we're editing the setup, chain it together with && so that
failures early in the sequence don't get lost and add a commit graph.

Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'maint'
Junio C Hamano [Sun, 12 Sep 2010 20:53:03 +0000 (13:53 -0700)]
Merge branch 'maint'

* maint:
  t3101: modernise style
  compat/nedmalloc: don't force NDEBUG on the rest of git

Conflicts:
Makefile

13 years agols-tree $di $dir: do not mistakenly recurse into directories
Junio C Hamano [Sat, 11 Sep 2010 18:47:09 +0000 (11:47 -0700)]
ls-tree $di $dir: do not mistakenly recurse into directories

When applying two pathspecs, one of which is named as a prefix to the
other, we mistakenly recursed into the shorter one.

Noticed and fixed by David Reis.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot3101: modernise style
Junio C Hamano [Sat, 11 Sep 2010 17:53:29 +0000 (10:53 -0700)]
t3101: modernise style

Also add a few " &&" cascade that were missing.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agovcs-svn: Fix some printf format compiler warnings
Ramsay Jones [Thu, 9 Sep 2010 17:24:06 +0000 (18:24 +0100)]
vcs-svn: Fix some printf format compiler warnings

In particular, on systems that define uint32_t as an unsigned long,
gcc complains as follows:

      CC vcs-svn/fast_export.o
  vcs-svn/fast_export.c: In function `fast_export_modify':
  vcs-svn/fast_export.c:28: warning: unsigned int format, uint32_t arg (arg 2)
  vcs-svn/fast_export.c:28: warning: int format, uint32_t arg (arg 3)
  vcs-svn/fast_export.c: In function `fast_export_commit':
  vcs-svn/fast_export.c:42: warning: int format, uint32_t arg (arg 5)
  vcs-svn/fast_export.c:62: warning: int format, uint32_t arg (arg 2)
  vcs-svn/fast_export.c: In function `fast_export_blob':
  vcs-svn/fast_export.c:72: warning: int format, uint32_t arg (arg 2)
  vcs-svn/fast_export.c:72: warning: int format, uint32_t arg (arg 3)
      CC vcs-svn/svndump.o
  vcs-svn/svndump.c: In function `svndump_read':
  vcs-svn/svndump.c:260: warning: int format, uint32_t arg (arg 3)

In order to suppress the warnings we use the C99 format specifier
macros PRIo32 and PRIu32 from <inttypes.h>.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Acked-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocompat/nedmalloc: don't force NDEBUG on the rest of git
René Scharfe [Sat, 11 Sep 2010 09:59:18 +0000 (11:59 +0200)]
compat/nedmalloc: don't force NDEBUG on the rest of git

Define the nedmalloc feature configuration macros for nedmalloc.o, only.
This keeps assert(3) working for the rest of the git source; it was
turned off for nedmalloc users before by defining NDEBUG globally.

Also remove -DUSE_NED_ALLOCATOR as this macro isn't used anywhere.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoGit 1.7.3 rc1 v1.7.3-rc1
Junio C Hamano [Fri, 10 Sep 2010 18:55:55 +0000 (11:55 -0700)]
Git 1.7.3 rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'np/relnotes-in-subdir'
Junio C Hamano [Fri, 10 Sep 2010 18:54:58 +0000 (11:54 -0700)]
Merge branch 'np/relnotes-in-subdir'

* np/relnotes-in-subdir:
  install-webdoc: keep installed RelNotes-*.txt
  Documentation: move RelNotes into a directory of their own

13 years agoPrepare for 1.7.3 rc1
Junio C Hamano [Fri, 10 Sep 2010 18:54:34 +0000 (11:54 -0700)]
Prepare for 1.7.3 rc1

13 years agoMerge branch 'maint'
Junio C Hamano [Fri, 10 Sep 2010 16:39:08 +0000 (09:39 -0700)]
Merge branch 'maint'

* maint:
  config.txt: fix placement of diff.noprefix

13 years agouserdiff.c: add builtin fortran regex patterns
Brandon Casey [Fri, 10 Sep 2010 16:18:14 +0000 (11:18 -0500)]
userdiff.c: add builtin fortran regex patterns

This adds fortran xfuncname and wordRegex patterns to the list of builtin
patterns.  The intention is for the patterns to be appropriate for all
versions of fortran including 77, 90, 95.  The patterns can be enabled by
adding the diff=fortran attribute to the .gitattributes file for the
desired file glob.

This also adds a new macro named IPATTERN which is just like the PATTERNS
macro except it sets the REG_ICASE flag so that case will be ignored.

The test code in t4018 and the docs were updated as appropriate.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agopost-receive-email: ensure sent messages are not empty
Kevin P. Fleming [Fri, 10 Sep 2010 16:09:39 +0000 (11:09 -0500)]
post-receive-email: ensure sent messages are not empty

Changes the logic in the script to determine whether an email message
will be sent before invoking the send_mail() function; otherwise, if
the logic determines that a message will not be sent, send_mail() will
cause an empty email to be sent. In addition, ensures that if multiple
refs are updated and a message cannot be sent for one of them,
the others are still processed normally.

Signed-off-by: Kevin P. Fleming <kpfleming@digium.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoconfig.txt: fix placement of diff.noprefix
Mark Lodato [Fri, 10 Sep 2010 01:39:37 +0000 (21:39 -0400)]
config.txt: fix placement of diff.noprefix

In git-config(1), diff.noprefix was placed in between
diff.mnemonicprefix and the list of mnemonic prefixes, which is
obviously incorrect and very confusing to readers.  Now, it is located
after the end of the explanation of mnemonicprefix, which makes much
more sense.

Signed-off-by: Mark Lodato <lodatom@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot/t4018: avoid two unnecessary sub-shell invocations
Brandon Casey [Fri, 10 Sep 2010 16:13:38 +0000 (11:13 -0500)]
t/t4018: avoid two unnecessary sub-shell invocations

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'maint'
Junio C Hamano [Fri, 10 Sep 2010 00:29:40 +0000 (17:29 -0700)]
Merge branch 'maint'

* maint:
  xdiff-interface.c: always trim trailing space from xfuncname matches
  diff.c: call regfree to free memory allocated by regcomp when necessary

13 years agot/t4018: test whether the word_regex patterns compile
Brandon Casey [Thu, 9 Sep 2010 19:02:47 +0000 (14:02 -0500)]
t/t4018: test whether the word_regex patterns compile

Previously (e3bf5e43), a test was added to test whether the builtin
xfuncname regular expressions could be compiled without error by regcomp.
Let's do the same for the word_regex patterns.  This should help catch any
cross-platform incompatibilities that exist between the pattern creator's
system and the various platforms that the test suite is commonly run on.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoxdiff-interface.c: always trim trailing space from xfuncname matches
Brandon Casey [Thu, 9 Sep 2010 19:02:46 +0000 (14:02 -0500)]
xdiff-interface.c: always trim trailing space from xfuncname matches

Generally, trailing space is removed from the string matched by the
xfuncname patterns.  The exception is when the matched string exceeds the
length of the fixed-size buffer that it will be copied in to.  But, a
string that exceeds the buffer can still contain trailing space in the
portion of the string that will be copied into the buffer.  So, simplify
this code slightly, and just perform the trailing space removal always.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agodiff.c: call regfree to free memory allocated by regcomp when necessary
Brandon Casey [Thu, 9 Sep 2010 19:02:45 +0000 (14:02 -0500)]
diff.c: call regfree to free memory allocated by regcomp when necessary

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot/t5510-fetch.sh: improve testing with explicit URL and merge spec
Brandon Casey [Thu, 9 Sep 2010 18:56:37 +0000 (13:56 -0500)]
t/t5510-fetch.sh: improve testing with explicit URL and merge spec

Commit 6106ce46 introduced a test to demonstrate fetch's failure to
retrieve any objects or update FETCH_HEAD when it was supplied a repository
URL and the current branch had a configured merge spec.  This commit
expands the original test based on comments from Junio Hamano.  In addition
to actually verifying that the fetch updates FETCH_HEAD correctly, and does
not update the current branch, two more tests are added to ensure that the
merge configuration is ignored even when the supplied URL matches the URL
of the remote configured for the branch.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agobuiltin/fetch.c: comment that branch->remote_name is usable when has_merge
Brandon Casey [Thu, 9 Sep 2010 18:56:36 +0000 (13:56 -0500)]
builtin/fetch.c: comment that branch->remote_name is usable when has_merge

Save future readers the trouble of tracing code to determine that the two
uses of branch->remote_name are safe when has_merge is set, by adding a
comment explaining that it is so.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMakefile: use compat regex on IRIX 6.5
Brandon Casey [Thu, 9 Sep 2010 19:15:58 +0000 (14:15 -0500)]
Makefile: use compat regex on IRIX 6.5

The IRIX 6.5 regex.h header file defines REG_STARTEND, but the feature does
not appear to work.  Since REG_STARTEND is required for proper functioning
of git-grep, set NO_REGEX and use the alternative regex libraries in compat/

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot/t7008: workaround broken handling of \000 by printf on IRIX
Brandon Casey [Thu, 9 Sep 2010 19:15:57 +0000 (14:15 -0500)]
t/t7008: workaround broken handling of \000 by printf on IRIX

On IRIX 6.5, the printf utility in /usr/bin does not appear to handle the
\ddd notation according to POSIX.  This printf appears to halt processing
of the string argument and ignore any additional characters in the string.
Work around this flaw by replacing the \000's with 'Q' and using the
q_to_nul helper function provided by test-lib.sh

This problem with printf is not apparent when using the Bash shell since
Bash implements a POSIX compatible printf function internally.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoAdd --src/dst-prefix to git-formt-patch in git-rebase.sh
Oded Shimon [Thu, 9 Sep 2010 18:49:51 +0000 (21:49 +0300)]
Add --src/dst-prefix to git-formt-patch in git-rebase.sh

For the case of "diff.noprefix" in git-config, git-format-patch should
still output diff with standard prefixes for git-am

Signed-off-by: Oded Shimon <ods15@ods15.dyndns.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoinstall-webdoc: keep installed RelNotes-*.txt
Junio C Hamano [Thu, 9 Sep 2010 23:17:59 +0000 (16:17 -0700)]
install-webdoc: keep installed RelNotes-*.txt

Otherwise URLs in the wild that point at older release notes will become
dangling.

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