Code

git.git
13 years agoCorrect help blurb in checkout -p and friends
Jonathan "Duke" Leto [Thu, 28 Oct 2010 00:49:20 +0000 (17:49 -0700)]
Correct help blurb in checkout -p and friends

When git checkout -p from the index or HEAD is run in edit mode, the
help message about removing '-' and '+' lines was backwards. Because it
is reverse applying the patch, the meanings of '-' and '+' are reversed.

Signed-off-by: Jonathan "Duke" Leto <jonathan@leto.net>
Acked-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoFix copy-pasted comments related to tree diff handling.
Yann Dirson [Sun, 24 Oct 2010 21:03:10 +0000 (23:03 +0200)]
Fix copy-pasted comments related to tree diff handling.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agomake pack-objects a bit more resilient to repo corruption
Nicolas Pitre [Fri, 22 Oct 2010 20:26:23 +0000 (16:26 -0400)]
make pack-objects a bit more resilient to repo corruption

Right now, packing valid objects could fail when creating a thin pack
simply because a pack edge object used as a preferred base is corrupted.
Since preferred base objects are not strictly needed to produce a valid
pack, let's not consider the inability to read them as a fatal error.
Delta compression may well be attempted against other objects in the
search window.  To avoid warning storms (we are in the inner loop of
the delta search window) a warning is emitted only on the first
occurrence.

Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoFix handling of git-p4 on deleted files
Andrew Waters [Fri, 22 Oct 2010 12:26:02 +0000 (13:26 +0100)]
Fix handling of git-p4 on deleted files

Signed-off-by: Andrew Waters <apwaters@googlemail.com>
Tested-by: Thomas Berg <merlin66b@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agodiff: don't presume empty file when corresponding object is missing
Nicolas Pitre [Fri, 22 Oct 2010 04:02:27 +0000 (00:02 -0400)]
diff: don't presume empty file when corresponding object is missing

The low-level diff code will happily produce totally bogus diff output
with a broken repository via format-patch and friends by treating missing
objects as empty files.  Let's prevent that from happening any longer.

Reported-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoGit 1.7.3.2 v1.7.3.2
Junio C Hamano [Fri, 22 Oct 2010 00:14:32 +0000 (17:14 -0700)]
Git 1.7.3.2

13 years agoMerge branch 'sn/doc-opt-notation' into maint
Junio C Hamano [Thu, 21 Oct 2010 23:26:42 +0000 (16:26 -0700)]
Merge branch 'sn/doc-opt-notation' into maint

* sn/doc-opt-notation:
  Fix {update,checkout}-index usage strings
  Put a space between `<' and argument in pack-objects usage string
  Remove stray quotes in --pretty and --format documentation
  Use parentheses and `...' where appropriate
  Fix odd markup in --diff-filter documentation
  Use angles for placeholders consistently

13 years agoMerge branch 'mg/fix-build-remote-helpers' into maint
Junio C Hamano [Thu, 21 Oct 2010 23:26:38 +0000 (16:26 -0700)]
Merge branch 'mg/fix-build-remote-helpers' into maint

* mg/fix-build-remote-helpers:
  remote-helpers: build in platform independent directory

13 years agodocs: give more hints about how "add -e" works
Jeff King [Thu, 21 Oct 2010 14:30:35 +0000 (10:30 -0400)]
docs: give more hints about how "add -e" works

The previous text was not exactly accurate; it is OK to
change space and minus lines, but only in certain ways. This
patch attempts to cover explicitly what can be done at the
individual line level, and cautions the user that
conceptually larger changes (like modifying a line) require
some understanding of the patch format.

Signed-off-by: Jeff King <peff@peff.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agodiff: handle lines containing only whitespace and tabs better
Kevin Ballard [Wed, 20 Oct 2010 22:17:26 +0000 (15:17 -0700)]
diff: handle lines containing only whitespace and tabs better

When a line contains nothing but whitespace with at least one tab
and the core.whitespace config option contains blank-at-eol, the
whitespace on the line is being printed twice, once unhighlighted
(unless otherwise matched by one of the other core.whitespace values),
and a second time highlighted for blank-at-eol.

Update the leading indentation check to stop checking when it reaches
the trailing whitespace.

Signed-off-by: Kevin Ballard <kevin@sb.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agotest-lib: extend test_decode_color to handle more color codes
Kevin Ballard [Wed, 20 Oct 2010 22:17:25 +0000 (15:17 -0700)]
test-lib: extend test_decode_color to handle more color codes

Enhance the test_decode_color function to handle all common color codes,
including background colors and escapes that contain multiple codes.
This change necessitates changing <WHITE> to <BOLD>, so update t4034
as well.

This change is necessary for the next commit in order to test
background colors properly.

Signed-off-by: Kevin Ballard <kevin@sb.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot/gitweb-lib: Don't pass constant to decode_utf8
Brian Gernhardt [Wed, 20 Oct 2010 05:57:11 +0000 (01:57 -0400)]
t/gitweb-lib: Don't pass constant to decode_utf8

Encode.pm started updating the string to decode in-place when a second
argument is passed in version 2.40.

This causes 'decode_utf8("", Encode::FB_CROAK)' to die with a message
like:

  Modification of a read-only value attempted at .../Encode.pm line 216.

Work around this by passing an empty variable instead of a constant
string.

Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot4203: do not let "git shortlog" DWIM based on tty
Junio C Hamano [Wed, 20 Oct 2010 06:32:06 +0000 (23:32 -0700)]
t4203: do not let "git shortlog" DWIM based on tty

The "shortlog" command defaults to HEAD only when its standard input is
connected to a terminal; otherwise it acts in the traditional "filter"
mode to read and summarize the "git log" output.

Two new tests added to t4203 assumed that the command always default to
HEAD, but when the standard input is closed (or connected to /dev/null),
it output empty, which is a summary of its empty input, causing the test
to break.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot/t9001-send-email.sh: fix stderr redirection in 'Invalid In-Reply-To'
Antonio Ospite [Tue, 19 Oct 2010 09:50:39 +0000 (11:50 +0200)]
t/t9001-send-email.sh: fix stderr redirection in 'Invalid In-Reply-To'

Signed-off-by: Antonio Ospite <ospite@studenti.unina.it>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoClarify and extend the "git diff" format documentation
Andreas Gruenbacher [Thu, 14 Oct 2010 10:53:11 +0000 (12:53 +0200)]
Clarify and extend the "git diff" format documentation

Move the similarity and dissimilarity index header description closer to
where those extended headers are described.

Describe and/or clarify the format used for file modes, pathnames, and
the index header.

Document that all "old" files refer to the state before applying the
*entire* output, and all "new" files refer to the state thereafter.

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-show-ref.txt: clarify the pattern matching
Michael J Gruber [Mon, 18 Oct 2010 11:33:32 +0000 (13:33 +0200)]
git-show-ref.txt: clarify the pattern matching

git-show-ref really does not do what one would expect under the name
pattern matching, so describe it.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agodocumentation: git-config minor cleanups
Cliff Frey [Mon, 18 Oct 2010 03:10:45 +0000 (20:10 -0700)]
documentation: git-config minor cleanups

Change push.default's description to add hyphens between values and
descriptions to make the manpage easier to read.  The html version is
readable either way.

Change status.showUntrackedFiles to make item descriptions be
sentences and to use the same asciidoc format as push.default.  The
only visual change is the additions of "."

Signed-off-by: Cliff Frey <cliff@meraki.com>
Acked-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoUpdate test script annotate-tests.sh to handle missing/extra authors
Kevin Ballard [Sat, 16 Oct 2010 11:09:20 +0000 (04:09 -0700)]
Update test script annotate-tests.sh to handle missing/extra authors

The current script used by annotate-tests.sh (used by t8001 and t8002) fails
to emit a warning if any of the expected authors never show up in the output
or if authors that show up in the output were never specified as expected.
Update the script to fail in both of these scenarios.

Helped-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Kevin Ballard <kevin@sb.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agorepack: place temporary packs under .git/objects/pack/
Thomas Rast [Tue, 19 Oct 2010 09:50:43 +0000 (11:50 +0200)]
repack: place temporary packs under .git/objects/pack/

git-pack-objects is already careful to start out its temporary packs
under .git/objects/pack/ (cf. 8b4eb6b, Do not perform cross-directory
renames when creating packs, 2008-09-22), but git-repack did not
respond in kind so the effort was lost when the filesystem boundary is
exactly at that directory.

Let git-repack pass a path under .git/objects/pack/ as the base for
its temporary packs.

This means we might need the $PACKDIR sooner (before the pack-objects
invocation), so move the mkdir up just to be safe.

Also note that the only use of *.pack is in the find invocation way
before the pack-objects call, so the temporary packs will not suddenly
show up in any wildcards because of the directory change.

Reported-by: Marat Radchenko <marat@slonopotamus.org>
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agosend-pack: avoid redundant "pack-objects died with strange error"
Jonathan Nieder [Sat, 16 Oct 2010 17:09:54 +0000 (12:09 -0500)]
send-pack: avoid redundant "pack-objects died with strange error"

Saying "pack-objects died with strange error" after "pack-objects died
of signal 13" seems kind of redundant.  The latter message was
introduced when the run-command API changed to report abnormal exits
on behalf of the caller (v1.6.5-rc0~86^2~5, 2009-07-04).

Similarly, after a controlled pack-objects failure (detectable as a
normal exit with nonzero status), a "died with strange error" message
would be redundant next to the message from pack-objects itself.

So leave off the "strange error" messages.

The result should look something like this:

$ git push sf master
Counting objects: 21542, done.
Compressing objects: 100% (4179/4179), done.
fatal: Unable to create temporary file: Permission denied
error: pack-objects died of signal 13
error: failed to push some refs to 'ssh://sf.net/gitroot/project/project'
$

Or in the "controlled exit" case (contrived example):

[...]
fatal: delta size changed
error: failed to push some refs to 'ssh://example.com/foo/bar'
$

Improved-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agomerge-file: correctly find files when called in subdir
Thomas Rast [Sun, 17 Oct 2010 19:23:22 +0000 (21:23 +0200)]
merge-file: correctly find files when called in subdir

Since b541248 (merge.conflictstyle: choose between "merge" and "diff3
-m" styles, 2008-08-29), git-merge-file uses setup_directory_gently(),
thus cd'ing around to find any possible config files to use.

This broke merge-file when it is called from within a subdirectory of
a repository, and the arguments are all relative paths.

Fix by prepending the prefix, as passed down from the main git
setup code, if there is any.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoprefix_filename(): safely handle the case where pfx_len=0
Thomas Rast [Sun, 17 Oct 2010 19:23:21 +0000 (21:23 +0200)]
prefix_filename(): safely handle the case where pfx_len=0

Current prefix_filename() is proofed against the case where the prefix
'pfx' is NULL or a 0-length string, _except on Windows_.

Change the behaviour to work the same on both platforms, and only
check pfx_len so that callers passing a NULL prefix with a nonzero
pfx_len segfault early on both.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot4203 (mailmap): stop hardcoding commit ids and dates
Jonathan Nieder [Fri, 15 Oct 2010 17:12:19 +0000 (12:12 -0500)]
t4203 (mailmap): stop hardcoding commit ids and dates

A seemingly innocuous change like adding test_tick somewhere can
completely upset the final mailmap test, since it checks commit
hashes and dates.  Make the test less fragile by fuzzing away the
unpredictable parts and leaving in the authors (which is what the
test is about, anyway).

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agodiff --check: correct line numbers of new blank lines at EOF
Christoph Mallon [Sun, 10 Oct 2010 17:24:06 +0000 (19:24 +0200)]
diff --check: correct line numbers of new blank lines at EOF

The whitespace check printed the value of the wrong variable, i.e. the
beginning of the block of blank lines at the EOF (possibly absent) in the
old file.

As "git diff --check" is used by users to check their changes before
making a commit, we should point at the line number in the file after
the change.

Signed-off-by: Christoph Mallon <christoph.mallon@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agomailmap: fix use of freed memory
Jim Meyering [Mon, 11 Oct 2010 15:41:16 +0000 (17:41 +0200)]
mailmap: fix use of freed memory

On an x86_64 system (F13-based), I ran these commands in an empty directory:

    git init
    printf '%s\n' \
      '<jdoe@example.com> <jdoe@example.COM>' \
      'John <jdoe@example.com>' > .mailmap
    git shortlog < /dev/null

Here's the result:

    (reading log message from standard input)
    *** glibc detected *** git: free(): invalid pointer: 0x0000000000f53730 ***
    ======= Backtrace: =========
    /lib64/libc.so.6[0x31ba875676]
    git[0x48c2a5]
    git[0x4b9858]
    ...
    zsh: abort (core dumped)  git shortlog

What happened?

Some .mailmap entry is of the <email1> <email2> form,
while a subsequent one looks like "User Name <Email2>,
and the two email addresses on the right are not identical
but are "equal" when using a case-insensitive comparator.

Then, when add_mapping is processing the latter line, new_email is NULL
and we free me->email, yet do not replace it with a new strdup'd string.
Thus, when later we attempt to use the buffer behind that ->email pointer,
we reference freed memory.

The solution is to free ->email and ->name only if we're about to replace them.

[jc: squashed in the tests from Jonathan]

Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoBetter advice on using topic branches for kernel development
Luck, Tony [Fri, 1 Oct 2010 18:57:52 +0000 (11:57 -0700)]
Better advice on using topic branches for kernel development

Linus Torvalds wrote:
> The real problem is that maintainers often pick random - and not at
> all stable - points for their development to begin with. They just
> pick some random "this is where Linus -git tree is today", and do
> their development on top of that. THAT is the problem - they are
> unaware that there's some nasty bug in that version.

Maybe they do this because they read it in the Git user-manual.

Fix the manual to give them better guidance.

Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoDocumentation: update implicit "--no-index" behavior in "git diff"
Jonathan Nieder [Mon, 11 Oct 2010 16:06:18 +0000 (11:06 -0500)]
Documentation: update implicit "--no-index" behavior in "git diff"

Originally "--no-index" mode triggered for untracked files within the
tracked tree, but with v1.5.6-rc1~41 (Merge branch 'jc/diff-no-no-index,
2008-05-26) the command was fixed to only implicitly trigger when paths
outside the tracked tree are mentioned.

Reported-by: Yann Dirson <dirson@bertin.fr>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoDocumentation: expand 'git diff' SEE ALSO section
Jonathan Nieder [Mon, 11 Oct 2010 16:05:32 +0000 (11:05 -0500)]
Documentation: expand 'git diff' SEE ALSO section

Point in many directions in the hope of helping the reader find what
is needed more quickly.

This commit also removes the summary attached to the SEE ALSO entry
for difftool, to avoid making the SEE ALSO list too verbose.  If the
reader wants a summary of the commands referred to, she can always
look to the top of the named pages or to the table of contents on the
main git(1) page.

Suggested-by: Goswin von Brederlow <goswin-v-b@web.de>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoDocumentation: diff can compare blobs
Jonathan Nieder [Mon, 11 Oct 2010 16:04:08 +0000 (11:04 -0500)]
Documentation: diff can compare blobs

Meanwhile, there is no plumbing command to compare two blobs.
Strange.

Reported-by: Yann Dirson <dirson@bertin.fr>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoDocumentation: gitrevisions is in section 7
Jonathan Nieder [Mon, 11 Oct 2010 16:03:32 +0000 (11:03 -0500)]
Documentation: gitrevisions is in section 7

Fix references to gitrevisions(1) in the manual pages and HTML
documentation.

In practice, this will not matter much unless someone tries to use a
hard copy of the git reference manual.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agorev-list: handle %x00 NUL in user format
Jeff King [Thu, 7 Oct 2010 18:25:43 +0000 (14:25 -0400)]
rev-list: handle %x00 NUL in user format

The code paths for showing commits in "git log" and "git
rev-list --graph" correctly handle embedded NULs by looking
only at the resulting strbuf's length, and never treating it
as a C string. The code path for regular rev-list, however,
used printf("%s"), which resulted in truncated output. This
patch uses fwrite instead, like the --graph code path.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agosubmodule sync: Update "submodule.<name>.url" for empty directories
Andreas Köhler [Fri, 8 Oct 2010 01:07:48 +0000 (03:07 +0200)]
submodule sync: Update "submodule.<name>.url" for empty directories

If a submodule directory has not been filled by "git submodule update"
yet, then "git submodule sync" must still update the super-project's
configuration for submodule.<name>.url.

This situation occurs when switching between branches with a module from
different urls and other branches without the submodule.

Signed-off-by: Andreas Köhler <andi5.py@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoapply: Recognize epoch timestamps with : in the timezone
Anders Kaseorg [Wed, 29 Sep 2010 20:49:49 +0000 (16:49 -0400)]
apply: Recognize epoch timestamps with : in the timezone

Some patches have a timezone formatted like ‘-08:00’ instead of
‘-0800’ (e.g. http://lwn.net/Articles/131729/), so git apply would
fail to recognize the epoch timestamp of deleted files and would
create empty files instead.  Teach it to support both formats, and add
a test case.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoshell portability: no "export VAR=VAL"
Junio C Hamano [Wed, 13 Oct 2010 18:36:36 +0000 (11:36 -0700)]
shell portability: no "export VAR=VAL"

It is more portable to say "VAR=VAL && export VAR" instead.

Noticed by Ævar.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoCodingGuidelines: reword parameter expansion section
Junio C Hamano [Wed, 13 Oct 2010 18:15:14 +0000 (11:15 -0700)]
CodingGuidelines: reword parameter expansion section

Group entries related to parameter substitutions together and avoid
using the word "regexp" to refer to the ${parameter/pattern/string}
substitution (banned), as the pattern there is a shell glob and not
a regular expression.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoDocumentation: update-index: -z applies also to --index-info
Bert Wesarg [Fri, 8 Oct 2010 06:50:20 +0000 (08:50 +0200)]
Documentation: update-index: -z applies also to --index-info

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoDocumentation: No argument of ALLOC_GROW should have side-effects
Jonathan Nieder [Fri, 8 Oct 2010 16:46:59 +0000 (11:46 -0500)]
Documentation: No argument of ALLOC_GROW should have side-effects

The explanatory comment before the definition of ALLOC_GROW carefully
lists arguments that will be used more than once and thus cannot have
side-effects; a lazy reader might conclude that the arguments not
listed are used only once and side effects safe.

Correct it to list all three arguments, avoiding this confusion.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoFix {update,checkout}-index usage strings
Štěpán Němec [Fri, 8 Oct 2010 17:31:20 +0000 (19:31 +0200)]
Fix {update,checkout}-index usage strings

The `<file>' argument is optional in both cases (the man pages are
already correct).

Signed-off-by: Štěpán Němec <stepnem@gmail.com>
Acked-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoPut a space between `<' and argument in pack-objects usage string
Štěpán Němec [Fri, 8 Oct 2010 17:31:19 +0000 (19:31 +0200)]
Put a space between `<' and argument in pack-objects usage string

This makes it cosistent with other places (including the
git-pack-objects(1) manpage itself) and avoids possible confusion (I,
for one, mistook `<object-list' for a `<object-list>' typo at first when
preparing this series).

Signed-off-by: Štěpán Němec <stepnem@gmail.com>
Acked-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoRemove stray quotes in --pretty and --format documentation
Štěpán Němec [Fri, 8 Oct 2010 17:31:18 +0000 (19:31 +0200)]
Remove stray quotes in --pretty and --format documentation

Quotes (for emphasis) are used in option explanations, not the
headings.

Signed-off-by: Štěpán Němec <stepnem@gmail.com>
Acked-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoUse parentheses and `...' where appropriate
Štěpán Němec [Fri, 8 Oct 2010 17:31:17 +0000 (19:31 +0200)]
Use parentheses and `...' where appropriate

Remove some stray usage of other bracket types and asterisks for the
same purpose.

Signed-off-by: Štěpán Němec <stepnem@gmail.com>
Acked-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoFix odd markup in --diff-filter documentation
Štěpán Němec [Fri, 8 Oct 2010 18:40:32 +0000 (20:40 +0200)]
Fix odd markup in --diff-filter documentation

Instead of using the regex-like bracket expression, use grouping to make
it more consistent with other similar places. The brackets now have the
same meaning as in other documentation (i.e., the argument is optional).

Signed-off-by: Štěpán Němec <stepnem@gmail.com>
Mentored-and-Acked-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoUse angles for placeholders consistently
Štěpán Němec [Fri, 8 Oct 2010 17:31:15 +0000 (19:31 +0200)]
Use angles for placeholders consistently

Signed-off-by: Štěpán Němec <stepnem@gmail.com>
Acked-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot/t3415: use && where applicable.
Yann Dirson [Fri, 1 Oct 2010 21:19:19 +0000 (23:19 +0200)]
t/t3415: use && where applicable.

Signed-off-by: Yann Dirson <ydirson@altern.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoSubmittingPatches: Document some extra tags used in commit messages
Ramkumar Ramachandra [Sat, 2 Oct 2010 04:37:43 +0000 (10:07 +0530)]
SubmittingPatches: Document some extra tags used in commit messages

Document the meanings of the tags "Reported-by:", "Acked-by:",
"Reviewed-by:" and "Tested-by:" clearly. Also mention that the user is
free to use any custom tags.

Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Liked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoDocumentation/git-clone: describe --mirror more verbosely
Uwe Kleine-König [Mon, 4 Oct 2010 17:28:27 +0000 (19:28 +0200)]
Documentation/git-clone: describe --mirror more verbosely

Some people in #linux-rt noticed that describing what "--mirror" option does
with "it mirrors" is way insufficient.

Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Darren 'Some People' Hart <darren@dvhart.com>
Cc: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 years agoperl: use "use warnings" instead of -w
Ævar Arnfjörð Bjarmason [Fri, 24 Sep 2010 20:00:53 +0000 (20:00 +0000)]
perl: use "use warnings" instead of -w

Change the Perl scripts to turn on lexical warnings instead of setting
the global $^W variable via the -w switch.

The -w sets warnings for all code that interpreter runs, while "use
warnings" is lexically scoped. The former is probably not what the
authors wanted.

As an auxiliary benefit it's now possible to build Git with:

    PERL_PATH='/usr/bin/env perl'

Which would previously result in failures, since "#!/usr/bin/env perl -w"
doesn't work as a shebang.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoperl: bump the required Perl version to 5.8 from 5.6.[21]
Ævar Arnfjörð Bjarmason [Fri, 24 Sep 2010 20:00:52 +0000 (20:00 +0000)]
perl: bump the required Perl version to 5.8 from 5.6.[21]

Formalize our dependency on perl 5.8, bumped from 5.6.[12]. We already
used the three-arg form of open() which was introduced in 5.6.1, but
t/t9700/test.pl explicitly depended on 5.6.2.

However git-add--interactive.pl has been failing on the 5.6 line since
it was introduced in v1.5.0-rc0~12^2~2 back in 2006 due to this open
syntax:

    sub run_cmd_pipe {
           my $fh = undef;
           open($fh, '-|', @_) or die;
           return <$fh>;
    }

Which when executed dies on "Can't use an undefined value as
filehandle reference". Several of our tests also fail on 5.6 (even
more when compiled with NO_PERL_MAKEMAKER=1):

    t2016-checkout-patch.sh
    t3904-stash-patch.sh
    t3701-add-interactive.sh
    t7105-reset-patch.sh
    t7501-commit.sh
    t9700-perl-git.sh

Our code is bitrotting on 5.6 with no-one interested in fixing it, and
pinning us to such an ancient release of Perl is keeping us from using
useful features introduced in the 5.8 release.

The 5.6 series is now over 10 years old, and the 5.6.2 maintenance
release almost 7. 5.8 on the other hand is more than 8 years old.

All the modern Unix-like operating systems have now upgraded to it or
a later version, and 5.8 packages are available for old IRIX, AIX
Solaris and Tru64 systems.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Acked-by: Tor Arntsen <tor@spacetec.no>
Acked-by: Randal L. Schwartz <merlyn@stonehenge.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 years agosmart-http: Don't change POST to GET when following redirect
Tay Ray Chuan [Sat, 25 Sep 2010 04:20:35 +0000 (12:20 +0800)]
smart-http: Don't change POST to GET when following redirect

For a long time (29508e1 "Isolate shared HTTP request functionality", Fri
Nov 18 11:02:58 2005), we've followed HTTP redirects with
CURLOPT_FOLLOWLOCATION.

However, when the remote HTTP server returns a redirect the default
libcurl action is to change a POST request into a GET request while
following the redirect, but the remote http backend does not expect
that.

Fix this by telling libcurl to always keep the request as type POST with
CURLOPT_POSTREDIR.

For users of libcurl older than 7.19.1, use CURLOPT_POST301 instead,
which only follows 301s instead of both 301s and 302s.

Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>