gitweb.git
fmt-merge-msg: refactor merge title formattingTay Ray Chuan Mon, 10 May 2010 17:17:50 +0000 (01:17 +0800)

fmt-merge-msg: refactor merge title formatting

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fmt-merge-msg: minor refactor of fmt_merge_msg()Tay Ray Chuan Mon, 10 May 2010 17:17:49 +0000 (01:17 +0800)

fmt-merge-msg: minor refactor of fmt_merge_msg()

Shift implementation into a private function, do_fmt_merge_msg(). This
allows for further changes to the implementation, without affecting the
interface.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

merge: rename variableTay Ray Chuan Mon, 10 May 2010 17:17:48 +0000 (01:17 +0800)

merge: rename variable

It is more accurate to call it 'merge_names' instead of 'msg', as it
does not contain the final message.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

merge: update commentTay Ray Chuan Mon, 10 May 2010 17:17:47 +0000 (01:17 +0800)

merge: update comment

ce9d823 (merge: do not add standard message when message is given with
-m option) changed the behaviour of the code that the comment addressed,
but the comment was not similarly updated.

Fix this.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7604-merge-custom-message: show that --log doesn't... Tay Ray Chuan Mon, 10 May 2010 17:17:46 +0000 (01:17 +0800)

t7604-merge-custom-message: show that --log doesn't append to -m

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7604-merge-custom-message: shift expected output creationTay Ray Chuan Mon, 10 May 2010 17:17:45 +0000 (01:17 +0800)

t7604-merge-custom-message: shift expected output creation

Squash in a minor rename too.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

handle "git --bare init <dir>" properlyJeff King Mon, 10 May 2010 09:42:06 +0000 (05:42 -0400)

handle "git --bare init <dir>" properly

If we know we are creating a bare repository, we use setenv
to set the GIT_DIR directory to the current directory
(either where we already were, or one we created and chdir'd
into with "git init --bare <dir>").

However, with "git --bare init <dir>" (note the --bare as a
git wrapper option), the setup code actually sets GIT_DIR
for us, but it uses the wrong, original cwd when a directory
is given. Because our setenv does not use the overwrite
flag, it is ignored.

We need to set the overwrite flag, but only when we are
given a directory on the command line. That still allows:

GIT_DIR=foo.git git init --bare

to work. The behavior is changed for:

GIT_DIR=foo.git git init --bare bar.git

which used to create the repository in foo.git, but now will
use bar.git. This is more sane, as command line options
should generally override the environment.

Noticed by Oliver Hoffmann.

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

clone: reword messages to match the end-user perceptionPete Harlan Sun, 9 May 2010 20:10:17 +0000 (13:10 -0700)

clone: reword messages to match the end-user perception

When cloning into a non-bare repository, e.g. "git clone $URL mine",
we used to report that we are cloning into "mine/.git". Reword the
report to say "Cloning into mine" instead, as that matches what the
end-user asked for closer.

Make the message for "git clone --bare $URL mine" to say "Cloning
into bare repository mine" do make the distinction between this case and
the above stand out a bit more prominently.

Suggested-by: Jeff King <peff@peff.net>
Signed-off-by: Pete Harlan <pgit@pcharlan.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/notes: nitpicksJonathan Nieder Sun, 9 May 2010 03:37:21 +0000 (22:37 -0500)

Documentation/notes: nitpicks

Spell out “or” in the NAME line and simplify the leading sentence
in the DESCRIPTION.

Some other language cleanups, too.

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

Documentation/notes: clean up description of rewriting... Jonathan Nieder Sun, 9 May 2010 03:33:28 +0000 (22:33 -0500)

Documentation/notes: clean up description of rewriting configuration

Clarify that the GIT_NOTES_REWRITE_REFS environment variable
overrides both ‘[notes "rewrite"] <command>’ and ‘[notes] rewriteRef’.

Add explanations of GIT_NOTES_REWRITE_MODE and GIT_NOTES_REWRITE_REFS
to the ENVIRONMENT section.

Cc: Leif Arne Storset <lstorset@opera.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/notes: simplify treatment of default... Jonathan Nieder Sun, 9 May 2010 03:32:24 +0000 (22:32 -0500)

Documentation/notes: simplify treatment of default display refs

The main description of display refs for notes should be in
git-log.1, where there is a chance to give a leisurely description
of all the ways they can be set, what they are used for, and so
on. The description in git-notes.1 is only meant to be a quick
reminder of how notes are used.

So simplify it.

Also add an entry for GIT_NOTES_DISPLAY_REF to the environment
section.

Cc: Thomas Rast <trast@student.ethz.ch>
Cc: Johan Herland <johan@herland.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/log: add a CONFIGURATION sectionJonathan Nieder Sun, 9 May 2010 03:30:41 +0000 (22:30 -0500)

Documentation/log: add a CONFIGURATION section

Add a configuration section summarizing variables that affect the
log family of commands.

Cc: Thomas Rast <trast@student.ethz.ch>
Cc: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/notes: simplify treatment of default... Jonathan Nieder Sun, 9 May 2010 03:23:58 +0000 (22:23 -0500)

Documentation/notes: simplify treatment of default notes ref

Separate the documentation of the semantics, command-line option,
configuration item, and environment variable for the default notes
ref. The documentation is easier to digest in bite-sized pieces.

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

Documentation/notes: add configuration sectionJonathan Nieder Sun, 9 May 2010 03:21:59 +0000 (22:21 -0500)

Documentation/notes: add configuration section

Copy the descriptions of configuration variables from git-config.1.
Once the descriptions have been ironed out, it would be nice to
refactor them to share text, but for now it is simplest to experiment
with separate copies.

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

Documentation/notes: describe content of notes blobsJonathan Nieder Sun, 9 May 2010 03:21:34 +0000 (22:21 -0500)

Documentation/notes: describe content of notes blobs

stripspace/text-based formatting kicks in when specifying the notes
content with -m or -F, or when an editor is used to edit the notes.
To binary-safely create notes from files, the following construct is
required:

git notes add -C $(git hash-object -w <file>) <object>

Explain this trick (thanks, Johan!) in the manual. Add an ordinary
example, too, to keep this esoteric one company.

Cc: Johan Herland <johan@herland.net>
Cc: Thomas Rast <trast@student.ethz.ch>
Cc: Jeff King <peff@peff.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/notes: document format of notes treesJonathan Nieder Sun, 9 May 2010 03:19:35 +0000 (22:19 -0500)

Documentation/notes: document format of notes trees

Separate the specification of the notes format exposed in
git-config.1 from the description of the option; or in other
words, move the explanation for what to expect to find at
refs/notes/commits from git-config.1 to git-notes.1.

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

cherry-pick: do not dump core when iconv failsJonathan Nieder Sat, 8 May 2010 23:17:29 +0000 (18:17 -0500)

cherry-pick: do not dump core when iconv fails

When cherry-picking, usually the new and old commit encodings are both
UTF-8. Most old iconv implementations do not support this trivial
conversion, so on old platforms, out->message remains NULL, and later
attempts to read it segfault.

Fix this by noticing the input and output encodings match and skipping
the iconv step, like the other reencode_string() call sites already do.
Also stop segfaulting on other iconv failures: if iconv fails for some
other reason, the best we can do is to pass the old message through.

This fixes a regression introduced in v1.7.1-rc0~15^2~2 (revert:
clarify label on conflict hunks, 2010-03-20).

Reported-by: Andreas Krey <a.krey@gmx.de>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Makefile: Fix 'clean' target to remove all gitweb build... Ramsay Jones Sat, 8 May 2010 17:36:15 +0000 (18:36 +0100)

Makefile: Fix 'clean' target to remove all gitweb build files

In particular the gitweb/GITWEB-BUILD-OPTIONS file was not being
removed by the main Makefile. However, the gitweb/Makefile has a
'clean' target that correctly removes all the build products.
In order to fix the problem, rather than duplicate the clean-up
instructions, we change the main Makefile so that it delegates
the clean-up actions to the gitweb Makefile.

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

Documentation: git-add does not update files marked... Clemens Buchacher Sat, 1 May 2010 09:27:20 +0000 (11:27 +0200)

Documentation: git-add does not update files marked "assume unchanged"

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/config.txt: GIT_NOTES_REWRITE_REF overrid... Leif Arne Storset Wed, 5 May 2010 14:16:25 +0000 (16:16 +0200)

Documentation/config.txt: GIT_NOTES_REWRITE_REF overrides notes.rewriteRef

The documentation erroneously mentions the GIT_NOTES_REWRITE_REF
override in the description of notes.rewrite.<command>. Move it
under notes.rewriteRef where it belongs.

Signed-off-by: Leif Arne Storset <lstorset@opera.com>
Acked-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Turn setup code in t2007-checkout-symlink.sh into a... Ævar Arnfjörð Bjarmason Fri, 7 May 2010 19:37:03 +0000 (19:37 +0000)

Turn setup code in t2007-checkout-symlink.sh into a test

Previously the test would print to stdout which interfered with the
TAP output. Now this scaffolding code is just a normal test.

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

Move t6000lib.sh to lib-*Ævar Arnfjörð Bjarmason Fri, 7 May 2010 19:37:01 +0000 (19:37 +0000)

Move t6000lib.sh to lib-*

The naming of this test library conflicted with the recommendation in
t/README's "Naming Tests" section.

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

blame-options.txt: Add default value for `-M/-C` options.Bo Yang Fri, 7 May 2010 04:51:57 +0000 (21:51 -0700)

blame-options.txt: Add default value for `-M/-C` options.

Both `-M` and `-C` have default values and the <num> argument
the last `-C` option takes effect.

Signed-off-by: Bo Yang <struggleyb.nku@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

wt-status: take advice.statusHints seriouslyMichael J Gruber Thu, 22 Apr 2010 20:30:20 +0000 (22:30 +0200)

wt-status: take advice.statusHints seriously

Currently, status gives a lot of hints even when advice.statusHints is
false. Change this so that all hints depend on the config variable.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7508: test advice.statusHintsMichael J Gruber Thu, 22 Apr 2010 20:30:19 +0000 (22:30 +0200)

t7508: test advice.statusHints

edf563f (status: make "how to stage" messages optional, 2009-09-09)
introduced advice.statusHints without tests. Add a few tests to describe
and test the status quo.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test-lib: some shells do not let $? propagate into... Jonathan Nieder Thu, 6 May 2010 08:41:10 +0000 (03:41 -0500)

test-lib: some shells do not let $? propagate into an eval

In 3bf7886 (test-lib: Let tests specify commands to be run at end of
test, 2010-05-02), the git test harness learned to run cleanup
commands unconditionally at the end of a test. During each test,
the intended cleanup actions are collected in the test_cleanup variable
and evaluated. That variable looks something like this:

eval_ret=$?; clean_something && (exit "$eval_ret")
eval_ret=$?; clean_something_else && (exit "$eval_ret")
eval_ret=$?; final_cleanup && (exit "$eval_ret")
eval_ret=$?

All cleanup actions are run unconditionally but if one of them fails
it is properly reported through $eval_ret.

On FreeBSD, unfortunately, $? is set at the beginning of an ‘eval’
to 0 instead of the exit status of the previous command. This results
in tests using test_expect_code appearing to fail and all others
appearing to pass, unless their cleanup fails. Avoid the problem by
setting eval_ret before the ‘eval’ begins.

Thanks to Jeff King for the explanation.

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

pretty: Respect --abbrev optionWill Palmer Tue, 4 May 2010 03:18:57 +0000 (22:18 -0500)

pretty: Respect --abbrev option

Prior to this, the output of git log -1 --format=%h was always 7
characters long, without regard to whether --abbrev had been passed.

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

shortlog: Document and test --format optionJonathan Nieder Tue, 4 May 2010 02:59:55 +0000 (21:59 -0500)

shortlog: Document and test --format option

Do not document the --pretty synonym, since it takes too long to
explain the name to people.

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

t4201 (shortlog): Test output format with multiple... Jonathan Nieder Tue, 4 May 2010 02:58:04 +0000 (21:58 -0500)

t4201 (shortlog): Test output format with multiple authors

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

t4201 (shortlog): guard setup with test_expect_successJonathan Nieder Tue, 4 May 2010 02:57:36 +0000 (21:57 -0500)

t4201 (shortlog): guard setup with test_expect_success

Follow the current prevailing style. This also has the benefit of
capturing any stray output and noticing if any of the setup commands
start failing.

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

Documentation/shortlog: scripted users should not rely... Jonathan Nieder Tue, 4 May 2010 02:57:10 +0000 (21:57 -0500)

Documentation/shortlog: scripted users should not rely on implicit HEAD

When passed no revision arguments, ‘git shortlog’ reads a log from
stdin if and only if stdin is not a tty. So scripts that need to
function identically when standard input is a terminal (as when run
interactively) and not (as when run through a cron job) should either
supply a log themselves or specify the desired revisions explicitly.

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

commit --amend: cope with missing display nameJonathan Nieder Sun, 2 May 2010 08:57:12 +0000 (03:57 -0500)

commit --amend: cope with missing display name

Though I have not seen this in the wild, it has been said that there
are likely to be git repositories converted from other version control
systems with an invalid ident line like this one:

author <user@example.com> 18746342 +0000

Because there is no space between the (empty) user name and the email
address, commit --amend chokes. When searching for a
space-left-bracket sequence on the ident line, it finds it in the
committer line, ending up utterly confused.

Better for commit --amend to treat this like a valid ident line with
empty username and complain.

The tests remove the questionable commit objects after use so there is
no chance for them to confuse later tests.

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

test-lib: Let tests specify commands to be run at end... Jonathan Nieder Sun, 2 May 2010 08:53:41 +0000 (03:53 -0500)

test-lib: Let tests specify commands to be run at end of test

Certain actions can imply that if the test fails early, recovery from
within other tests is too much to expect:

- creating unwritable directories, like the EACCESS test in t0001-init
- setting unusual configuration, like user.signingkey in t7004-tag
- crashing and leaving the index lock held, like t3600-rm once did

Some test scripts work around this by running cleanup actions outside
the supervision of the test harness, with the unfortunate consequence
that those commands are not appropriately echoed and their output not
suppressed. Others explicitly save exit status, clean up, and then
reset the exit status within the tests, which has excellent behavior
but makes the tests hard to read. Still others ignore the problem.

Allow tests a fourth option: by calling this function, tests can
stack up commands they would like to be run to clean up.

Commands passed to test_when_finished during a test are
unconditionally run in the test environment immediately before the
test is completed, in last-in-first-out order. If some cleanup
command fails, then the other cleanup commands are still run before
the failure is reported and the test script allowed to continue.

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

Merge branch 'maint-1.7.0' into maintJunio C Hamano Tue, 4 May 2010 22:20:47 +0000 (15:20 -0700)

Merge branch 'maint-1.7.0' into maint

* maint-1.7.0:
remove ecb parameter from xdi_diff_outf()

remove ecb parameter from xdi_diff_outf()René Scharfe Tue, 4 May 2010 20:41:34 +0000 (22:41 +0200)

remove ecb parameter from xdi_diff_outf()

xdi_diff_outf() overrides the structure members of its last parameter,
ignoring any value that callers pass in. It's no surprise then that all
callers pass a pointer to an uninitialized structure. They also don't
read it after the call, so the parameter is neither used for input nor
for output. Turn it into a local variable of xdi_diff_outf().

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/git-send-email: Add "Use gmail as the... Ping Yin Sat, 24 Apr 2010 07:34:02 +0000 (15:34 +0800)

Documentation/git-send-email: Add "Use gmail as the smtp server"

Signed-off-by: Ping Yin <pkufranky@gmail.com>
Acked by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

clone: quell the progress report from init and report... Junio C Hamano Fri, 23 Apr 2010 12:37:22 +0000 (14:37 +0200)

clone: quell the progress report from init and report on clone

Currently, a local git clone reports only initializing an empty
git dir, which is potentially confusing.

Instead, report that cloning is in progress and when it is done
(unless -q) is given, and suppress the init report.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test-lib.sh: Add explicit license detail, with change... Michal Sojka Fri, 16 Apr 2010 13:53:59 +0000 (15:53 +0200)

test-lib.sh: Add explicit license detail, with change from GPLv2 to GPLv2+.

Dear Junio,

this is a resend of relicensing patch for test suite library, which
was initially sent by Carl Worth. Since the time you sent me acks for
this patch collected by you, I collected 8 additional acks as is
documented at
https://git.wiki.kernel.org/index.php/Test-lib_reclicensing. There are
still three contributors missing: Bert Wesarg, Stephan Beyer and Bryan
Donlan. The contributions of first two are clearly not copyrightable.
I'm not sure about the copyrightability of Bryan Donlan's
contributions (git log -p --author='Bryan Donlan' t/test-lib.sh).

Carl told me that in your ack collection process you missed only three
acks. So I wonder whether you already did some analysis of which
contributions are copyrightable. If so, are the missing acks in the
list bellow?

Thanks
Michal

8<--------8<--------8<--------
This file has had no explicit license information noted in it, but
has clearly been created and modified according to the terms of GPLv2
as with the rest of the git code base.

The purpose of relicensing is to allow other GPLv3+ projects (in
particular, the notmuch project: http://notmuchmail.org) to use this
same test-suite structure and to contribute changes back as well.

Signed-off-by: Carl Worth <cworth@cworth.org>
Signed-off-by: Michal Sojka <sojkam1@fel.cvut.cz>
Acked-by: Alex Riesen <raa.lkml@gmail.com>
Acked-by: Brandon Casey <drafnel@gmail.com>
Acked-by: Clemens Buchacher <drizzd@aon.at>
Acked-by: David Reiss <dreiss@facebook.com>
Acked-by: Emil Sit <sit@emilsit.net>
Acked-by: Eric Wong <normalperson@yhbt.net>
Acked-by: Fredrik Kuivinen <frekui@gmail.com>
Acked-by: Gerrit Pape <pape@smarden.org>
Acked-by: Christian Couder <chriscool@tuxfamily.org>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Acked-by: Johan Herland <johan@herland.net>
Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Acked-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Josh Triplett <josh@joshtriplett.org>
Acked-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Lea Wiemann <lewiemann@gmail.com>
Acked-by: Markus Heidelberg <markus.heidelberg@web.de>
Acked-by: Martin Waitz <tali@admingilde.org>
Acked-by: Matthew Ogilvie <mmogilvi_git@miniinfo.net>
Acked-by: Matthias Lederhofer <matled@gmx.net>
Acked-by: Michael J Gruber <git@drmicha.warpmail.net>
Acked-by: Michele Ballabio <barra_cuda@katamail.com>
Acked-by: Miklos Vajna <vmiklos@frugalware.org>
Acked-by: Nicolas Pitre <nico@fluxnic.net>
Acked-by: Pavel Roskin <proski@gnu.org>
Acked-by: Petr Baudis <pasky@ucw.cz>
Acked-by: Pierre Habouzit <madcoder@debian.org>
Acked-by: Robin Rosenberg <robin.rosenberg@dewire.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Acked-by: Stephen Boyd <bebarino@gmail.com>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Acked-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Gitweb: ignore built fileSverre Rabbelier Sun, 25 Apr 2010 20:17:05 +0000 (22:17 +0200)

Gitweb: ignore built file

Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git diff too slow for a fileRené Scharfe Sun, 2 May 2010 13:04:41 +0000 (15:04 +0200)

git diff too slow for a file

Ever since the xdiff library had been introduced to git, all its callers
have used the flag XDF_NEED_MINIMAL. It makes sure that the smallest
possible diff is produced, but that takes quite some time if there are
lots of differences that can be expressed in multiple ways.

This flag makes a difference for only 0.1% of the non-merge commits in
the git repo of Linux, both in terms of diff size and execution time.
The patches there are mostly nice and small.

SungHyun Nam however reported a case in a different repo where a diff
took more than 20 times longer to generate with XDF_NEED_MINIMAL than
without. Rebasing became really slow.

This patch removes this flag from all callers. The default of xdiff is
saner because it has minimal to no impact in the normal case of small
diffs and doesn't incur that much of a speed penalty for large ones.

A follow-up patch may introduce a command line option to set the flag if
the user needs it, similar to GNU diff's -d/--minimal.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Sun, 2 May 2010 03:23:10 +0000 (20:23 -0700)

Merge branch 'maint'

* maint:
index-pack: fix trivial typo in usage string
git-submodule.sh: properly initialize shell variables

do not overwrite files marked "assume unchanged"Clemens Buchacher Sat, 1 May 2010 09:25:12 +0000 (11:25 +0200)

do not overwrite files marked "assume unchanged"

A merge will fail gracefully if it needs to update files marked
"assume unchanged", but other similar commands will not. In
particular, checkout and rebase will silently overwrite changes to
such files.

This is a regression introduced in commit 1dcafcc0 (verify_uptodate():
add ce_uptodate(ce) test), which avoids lstat's during a merge, if the
index entry is up-to-date. If the CE_VALID flag is set, however, we
cannot trust CE_UPTODATE.

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

index-pack: fix trivial typo in usage stringMichael J Gruber Thu, 29 Apr 2010 15:42:47 +0000 (17:42 +0200)

index-pack: fix trivial typo in usage string

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-submodule.sh: properly initialize shell variablesGerrit Pape Mon, 26 Apr 2010 09:50:39 +0000 (11:50 +0200)

git-submodule.sh: properly initialize shell variables

git-submodule inherits variables from the environment it is started in,
expects the internal variables init= and recursive= to have an empty
value, but doesn't initialize them appropriately. Thanks to the
selftests, this can be reproduced through

init=1 make test
recursive=1 make test

With this commit the variables are initialized, and the selftests
succeed even if these variables have some values in the environment.

The bug was discovered through the Debian autobuilders
http://bugs.debian.org/569594

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

xdiff/xmerge.c: use memset() instead of explicit for... Alexey Mahotkin Wed, 28 Apr 2010 11:29:06 +0000 (15:29 +0400)

xdiff/xmerge.c: use memset() instead of explicit for-loop

memset() is heavily optimized, and resulting assembler code
is about 150 lines less for that file.

Signed-off-by: Alexey Mahotkin <squadette@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.7.1 v1.7.1Junio C Hamano Sat, 24 Apr 2010 01:27:17 +0000 (18:27 -0700)

Git 1.7.1

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

Merge branch 'maint'Junio C Hamano Sat, 24 Apr 2010 01:24:32 +0000 (18:24 -0700)

Merge branch 'maint'

* maint:
Documentation improvements for the description of short format.

Documentation improvements for the description of short... Eric Raymond Fri, 23 Apr 2010 17:40:15 +0000 (13:40 -0400)

Documentation improvements for the description of short format.

Incorporates the detailed explanation from Jeff King in
<20100410040959.GA11977@coredump.intra.peff.net> and fixes
the bug noted by Junio C Hamano in
<7vmxxc1i8g.fsf@alter.siamese.dyndns.org>.

Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Sync with 1.7.0.6Junio C Hamano Fri, 23 Apr 2010 06:05:49 +0000 (23:05 -0700)

Sync with 1.7.0.6

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

Git 1.7.0.6 v1.7.0.6Junio C Hamano Fri, 23 Apr 2010 05:46:24 +0000 (22:46 -0700)

Git 1.7.0.6

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

Merge branch 'mg/use-default-abbrev-length-in-rev-list... Junio C Hamano Fri, 23 Apr 2010 05:39:26 +0000 (22:39 -0700)

Merge branch 'mg/use-default-abbrev-length-in-rev-list' into maint

* mg/use-default-abbrev-length-in-rev-list:
rev-list: use default abbrev length when abbrev-commit is in effect

Merge branch 'wp/doc-filter-direction' into maintJunio C Hamano Fri, 23 Apr 2010 05:29:50 +0000 (22:29 -0700)

Merge branch 'wp/doc-filter-direction' into maint

* wp/doc-filter-direction:
documentation: clarify direction of core.autocrlf

Merge branch 'jk/maint-diffstat-overflow' into maintJunio C Hamano Fri, 23 Apr 2010 05:29:13 +0000 (22:29 -0700)

Merge branch 'jk/maint-diffstat-overflow' into maint

* jk/maint-diffstat-overflow:
diff: use large integers for diffstat calculations

Merge branch 'da/maint-python-startup' into maintJunio C Hamano Fri, 23 Apr 2010 05:29:07 +0000 (22:29 -0700)

Merge branch 'da/maint-python-startup' into maint

* da/maint-python-startup:
Makefile: Remove usage of deprecated Python "has_key" method

Merge branch 'maint'Junio C Hamano Thu, 22 Apr 2010 06:54:04 +0000 (23:54 -0700)

Merge branch 'maint'

* maint:
Documentation/Makefile: fix interrupted builds of user-manual.xml

Documentation/Makefile: fix interrupted builds of user... Jonathan Nieder Thu, 22 Apr 2010 01:18:21 +0000 (20:18 -0500)

Documentation/Makefile: fix interrupted builds of user-manual.xml

Unlike gcc, asciidoc does not atomically write its output file or
delete it when interrupted. If it is interrupted in the middle of
writing an XML file, the result will be truncated input for xsltproc.

XSLTPROC user-manual.html
user-manual.xml:998: parser error : Premature end of data in t

Take care of this case by writing to a temporary and renaming it when
finished.

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

stash tests: stash can lose data in a file removed... Charles Bailey Sun, 18 Apr 2010 18:27:49 +0000 (19:27 +0100)

stash tests: stash can lose data in a file removed from the index

If a file is removed from the index and then modified in the working
tree then stash will discard the working tree file with no way to
recover the changes.

This can might be done in one of a number of ways.

git rm file
vi file # edit a new version
git stash

or with git mv

git mv file newfile
vi file # make a new file with the old name
git stash

Signed-off-by: Charles Bailey <charles@hashpling.org>

Merge branch 'maint'Junio C Hamano Tue, 20 Apr 2010 05:41:30 +0000 (22:41 -0700)

Merge branch 'maint'

* maint:
t7012: Mark missing tests as TODO
reflog: remove 'show' from 'expire's usage string
MSVC: Fix build by adding missing termios.h dummy

fix "bundle --stdin" segfaultJonathan Nieder Mon, 19 Apr 2010 08:03:40 +0000 (03:03 -0500)

fix "bundle --stdin" segfault

When passed an empty list, objects_array_remove_duplicates() corrupts it
by changing the number of entries from 0 to 1.

The problem lies in the condition of its main loop:

for (ref = 0; ref < array->nr - 1; ref++) {

The loop body manipulates the supplied object array. In the case of an
empty array, it should not be doing anything at all. But array->nr is an
unsigned quantity, so the code enters the loop, in particular increasing
array->nr. Fix this by comparing (ref + 1 < array->nr) instead.

This bug can be triggered by git bundle --stdin:

$ echo HEAD | git bundle create some.bundle --stdin’
Segmentation fault (core dumped)

The list of commits to bundle appears to be empty because of another bug:
by the time the revision-walking machinery gets to look at it, standard
input has already been consumed by rev-list, so this function gets an
empty list of revisions.

After this patch, git bundle --stdin still does not work; it just doesn’t
segfault any more.

Reported-by: Joey Hess <joey@kitenet.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5704 (bundle): add tests for bundle --stdinJonathan Nieder Mon, 19 Apr 2010 08:03:03 +0000 (03:03 -0500)

t5704 (bundle): add tests for bundle --stdin

As long as no rev-list arguments are supplied on the command line,
git bundle create --stdin currently segfaults. With added rev-list
arguments, it does not segfault, but the revisions from stdin are
ignored.

Thanks to Joey Hess <joey@kitenet.net> for the report.

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

t7012: Mark missing tests as TODOMichael J Gruber Mon, 19 Apr 2010 08:14:32 +0000 (10:14 +0200)

t7012: Mark missing tests as TODO

Currently, there are 6 tests which are not even written but are
'test_expect_failure message false'.
Do not abuse test_expect_failure as a to do marker, but mark them as
'#TODO' instead.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Acked-by: Nguyen Thai Ngoc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

http.c::new_http_pack_request: do away with the temp... Tay Ray Chuan Mon, 19 Apr 2010 14:46:43 +0000 (22:46 +0800)

http.c::new_http_pack_request: do away with the temp variable filename

Now that the temporary variable char *filename is only used in one
place, do away with it and just call sha1_pack_name() directly.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

http-fetch: Use temporary files for pack-*.idx until... Shawn O. Pearce Mon, 19 Apr 2010 14:23:10 +0000 (07:23 -0700)

http-fetch: Use temporary files for pack-*.idx until verified

Verify that a downloaded pack-*.idx file is consistent and valid
as an index file before we rename it into its final destination.
This prevents a corrupt index file from later being treated as a
usable file, confusing readers.

Check that we do not have the pack index file before invoking
fetch_pack_index(); that way, we can do without the has_pack_index()
check in fetch_pack_index().

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

http-fetch: Use index-pack rather than verify-pack... Shawn O. Pearce Mon, 19 Apr 2010 14:23:09 +0000 (07:23 -0700)

http-fetch: Use index-pack rather than verify-pack to check packs

To ensure we don't leave a corrupt pack file positioned as though
it were a valid pack file, run index-pack on the temporary pack
before we rename it to its final name. If index-pack crashes out
when it discovers file corruption (e.g. GitHub's error HTML at the
end of the file), simply delete the temporary files to cleanup.

By waiting until the pack has been validated before we move it
to its final name, we eliminate a race condition where another
concurrent reader might try to access the pack at the same time
that we are still trying to verify its not corrupt.

Switching from verify-pack to index-pack is a change in behavior,
but it should turn out better for users. The index-pack algorithm
tries to minimize disk seeks, as well as the number of times any
given object is inflated, by organizing its work along delta chains.
The verify-pack logic does not attempt to do this, thrashing the
delta base cache and the filesystem cache.

By recreating the index file locally, we also can automatically
upgrade from a v1 pack table of contents to v2. This makes the
CRC32 data available for use during later repacks, even if the
server didn't have them on hand.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Acked-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Allow parse_pack_index on temporary filesShawn O. Pearce Mon, 19 Apr 2010 14:23:08 +0000 (07:23 -0700)

Allow parse_pack_index on temporary files

The easiest way to verify a pack index is to open it through the
standard parse_pack_index function, permitting the header check
to happen when the file is mapped. However, the dumb HTTP client
needs to verify a pack index before its moved into its proper file
name within the objects/pack directory, to prevent a corrupt index
from being made available. So permit the caller to specify the
exact path of the index file.

For now we're still using the final destination name within the
sole call site in http.c, but eventually we will start to parse
the temporary path instead.

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

Extract verify_pack_index for reuse from verify_packShawn O. Pearce Mon, 19 Apr 2010 14:23:07 +0000 (07:23 -0700)

Extract verify_pack_index for reuse from verify_pack

The dumb HTTP transport should verify an index is completely valid
before trying to use it. That requires checking the header/footer
but also checking the complete content SHA-1. All of this logic is
already in the front half of verify_pack, so pull it out into a new
function that can be reused.

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

Introduce close_pack_index to permit replacementShawn O. Pearce Mon, 19 Apr 2010 14:23:06 +0000 (07:23 -0700)

Introduce close_pack_index to permit replacement

By closing the pack index, a caller can later overwrite the index
with an updated index file, possibly after converting from v1 to
the v2 format. Because p->index_data is NULL after close, on the
next access the index will be opened again and the other members
will be updated with new data.

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

http.c: Remove unnecessary strdup of sha1_to_hex resultShawn O. Pearce Mon, 19 Apr 2010 14:23:05 +0000 (07:23 -0700)

http.c: Remove unnecessary strdup of sha1_to_hex result

Most of the time the dumb HTTP transport is run without the verbose
flag set, so we only need the result of sha1_to_hex(sha1) once, to
construct the pack URL. Don't bother with an unnecessary malloc,
copy, free chain of this buffer.

If verbose is set, we'll format the SHA-1 twice now. But this
tiny extra CPU time spent is nothing compared to the slowdown that
is usually imposed by the verbose messages being sent to the tty,
and is entirely trivial compared to the latency involved with the
remote HTTP server sending something as big as a pack file.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Acked-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

reflog: remove 'show' from 'expire's usage stringSZEDER Gábor Mon, 19 Apr 2010 09:52:30 +0000 (11:52 +0200)

reflog: remove 'show' from 'expire's usage string

Most of 'expire's options are not recognized by the 'show' subcommand,
hence it errors out.

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

Merge branch 'maint-1.6.6' into maintJunio C Hamano Mon, 19 Apr 2010 08:28:27 +0000 (01:28 -0700)

Merge branch 'maint-1.6.6' into maint

* maint-1.6.6:
MSVC: Fix build by adding missing termios.h dummy

MSVC: Fix build by adding missing termios.h dummyJohannes Sixt Mon, 19 Apr 2010 07:37:20 +0000 (09:37 +0200)

MSVC: Fix build by adding missing termios.h dummy

A use of this header file was introduced in eb80042 (Add missing #include
to support TIOCGWINSZ on Solaris, 2010-01-11).

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

Git 1.7.1-rc2 v1.7.1-rc2Junio C Hamano Mon, 19 Apr 2010 05:19:04 +0000 (22:19 -0700)

Git 1.7.1-rc2

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

Merge branch 'rr/remote-helper-doc'Junio C Hamano Mon, 19 Apr 2010 04:32:25 +0000 (21:32 -0700)

Merge branch 'rr/remote-helper-doc'

* rr/remote-helper-doc:
Documentation/remote-helpers: Fix typos and improve language
Fixup: Second argument may be any arbitrary string
Documentation/remote-helpers: Add invocation section
Documentation/urls: Rewrite to accomodate <transport>::<address>
Documentation/remote-helpers: Rewrite description

Merge branch 'wp/doc-filter-direction'Junio C Hamano Mon, 19 Apr 2010 04:32:21 +0000 (21:32 -0700)

Merge branch 'wp/doc-filter-direction'

* wp/doc-filter-direction:
documentation: clarify direction of core.autocrlf

Merge branch 'jk/maint-diffstat-overflow'Junio C Hamano Mon, 19 Apr 2010 04:31:50 +0000 (21:31 -0700)

Merge branch 'jk/maint-diffstat-overflow'

* jk/maint-diffstat-overflow:
diff: use large integers for diffstat calculations

Merge branch 'jg/auto-initialize-notes-with-percent... Junio C Hamano Mon, 19 Apr 2010 04:31:29 +0000 (21:31 -0700)

Merge branch 'jg/auto-initialize-notes-with-percent-n-in-format'

* jg/auto-initialize-notes-with-percent-n-in-format:
t3301: add tests to use --format="%N"
pretty: Initialize notes if %N is used

Merge branch 'maint'Junio C Hamano Mon, 19 Apr 2010 04:31:20 +0000 (21:31 -0700)

Merge branch 'maint'

* maint:
Documentation: Describe other situations where -z affects git diff

Merge git://git.kernel.org/pub/scm/gitk/gitkJunio C Hamano Mon, 19 Apr 2010 01:36:41 +0000 (18:36 -0700)

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

* git://git.kernel.org/pub/scm/gitk/gitk:
gitk: Display dirty submodules correctly
gitk: Fix display of copyright symbol
gitk: Add emacs editor variable block
gitk: Avoid calling tk_setPalette on Windows
gitk: Don't clobber "Remember this view" setting
gitk: Add comments to explain encode_view_opts and decode_view_opts
gitk: Use consistent font for all text input fields
gitk: Set the font for all listbox widgets
gitk: Set the font for all spinbox widgets
gitk: Remove forced use of sans-serif font
gitk: Add Ctrl-W shortcut for closing the active window

SubmittingPatches: Add new section about what to base... Ramkumar Ramachandra Sun, 18 Apr 2010 19:54:20 +0000 (01:24 +0530)

SubmittingPatches: Add new section about what to base work on

Add a section 0 explaining which commit to base patches on.

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

stash: Don't overwrite files that have gone from the... Charles Bailey Sun, 18 Apr 2010 18:28:05 +0000 (19:28 +0100)

stash: Don't overwrite files that have gone from the index

The use of git add -u in create_stash isn't always complete. In
particular, if a file has been removed from the index but changed in the
work tree it will not be added to the stash's saved work tree tree
object. When stash then resets the work tree to match HEAD, any changes
will be lost.

To be complete, any work tree file which differs from HEAD needs to be
saved, regardless of whether it still appears in the index or not.

This is achieved with a combination of a diff against HEAD and a call to
update-index with an explicit list of paths that have changed.

Signed-off-by: Charles Bailey <charles@hashpling.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/remote-helpers: Fix typos and improve... Ramkumar Ramachandra Sun, 18 Apr 2010 00:57:37 +0000 (06:27 +0530)

Documentation/remote-helpers: Fix typos and improve language

Fix some typos and errors in grammar and tense.

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

Fixup: Second argument may be any arbitrary stringRamkumar Ramachandra Sun, 18 Apr 2010 00:56:37 +0000 (06:26 +0530)

Fixup: Second argument may be any arbitrary string

This is intended to be a fixup for commit ad466d1 in pu. As Jonathan
Neider pointed out, the second argument may be any arbitrary string,
and need not conform to any URL-like shape.

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

Documentation/remote-helpers: Add invocation sectionRamkumar Ramachandra Wed, 7 Apr 2010 05:44:41 +0000 (11:14 +0530)

Documentation/remote-helpers: Add invocation section

Add an 'Invocation' section to specify what the command line arguments
mean. Also include a link to git-remote in the 'See Also' section.

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

Documentation/urls: Rewrite to accomodate <transport... Ramkumar Ramachandra Tue, 6 Apr 2010 08:38:19 +0000 (14:08 +0530)

Documentation/urls: Rewrite to accomodate <transport>::<address>

Rewrite the first part of the document to explicitly show differences
between the URLs that can be used with different transport
protocols. Mention <transport>::<address> format to explicitly invoke
a remote helper.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/remote-helpers: Rewrite descriptionRamkumar Ramachandra Sun, 28 Mar 2010 18:03:50 +0000 (23:33 +0530)

Documentation/remote-helpers: Rewrite description

Rewrite the description section to describe what exactly remote
helpers are and the need for them. Also mention the curl family of
remote helpers as an example.

[jc: with readability fixes from Jonathan squashed in]

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: Describe other situations where -z affec... Charles Bailey Sun, 18 Apr 2010 18:28:17 +0000 (19:28 +0100)

Documentation: Describe other situations where -z affects git diff

-z also alters the behaviour of --name-only and --name-status.

Signed-off-by: Charles Bailey <charles@hashpling.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rebase-interactive: silence warning when no commits... Jeff King Sun, 18 Apr 2010 12:01:45 +0000 (08:01 -0400)

rebase-interactive: silence warning when no commits rewritten

If you do a "rebase -i" and don't change any commits,
nothing is rewritten, and we have no REWRITTEN_LIST. The
shell prints out an ugly message:

$ GIT_EDITOR=true git rebase -i HEAD^
/path/to/git-rebase--interactive: 1: cannot open
/path/to/repo/.git/rebase-merge/rewritten-list: No such file
Successfully rebased and updated refs/heads/master.

We can fix it by not running "notes copy" at all if nothing
was rewritten.

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

t3301: add tests to use --format="%N"Junio C Hamano Sun, 18 Apr 2010 18:19:39 +0000 (11:19 -0700)

t3301: add tests to use --format="%N"

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

http.c: Don't store destination name in request structuresShawn O. Pearce Sat, 17 Apr 2010 20:07:38 +0000 (13:07 -0700)

http.c: Don't store destination name in request structures

The destination name within the object store is easily computed
on demand, reusing a static buffer held by sha1_file.c. We don't
need to copy the entire path into the request structure for safe
keeping, when it can be easily reformatted after the download has
been completed.

This reduces the size of the per-request structure, and removes
yet another PATH_MAX based limit.

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

http.c: Drop useless != NULL test in finish_http_pack_r... Shawn O. Pearce Sat, 17 Apr 2010 20:07:37 +0000 (13:07 -0700)

http.c: Drop useless != NULL test in finish_http_pack_request

The test preq->packfile != NULL is always true. If packfile was
actually NULL when entering this function the ftell() above would
crash out with a SIGSEGV, resulting in never reaching this point.

Simplify the code by just removing the conditional.

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

http.c: Tiny refactoring of finish_http_pack_requestShawn O. Pearce Sat, 17 Apr 2010 20:07:36 +0000 (13:07 -0700)

http.c: Tiny refactoring of finish_http_pack_request

Always remove the struct packed_git from the active list, even
if the rename of the temporary file fails.

While we are here, simplify the code a bit by using a common
local variable name ("p") to hold the relevant packed_git.

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

t5550-http-fetch: Use subshell for repository operationsShawn O. Pearce Sat, 17 Apr 2010 20:07:35 +0000 (13:07 -0700)

t5550-http-fetch: Use subshell for repository operations

Change into the server repository's directory using a subshell,
so we can return back to the top of the trash directory before
doing anything more in the test script.

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

http.c: Remove bad free of static blockShawn O. Pearce Sat, 17 Apr 2010 20:07:34 +0000 (13:07 -0700)

http.c: Remove bad free of static block

The filename variable here is pointing to a block of memory that
was allocated by sha1_file.c and is also held in a static variable
scoped within the sha1_pack_name() function. Doing a free() here is
returning that memory to the allocator while we might still try to
reuse it on a subsequent sha1_pack_name() invocation. That's not
acceptable, so don't free it.

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

Merge branch 'maint'Junio C Hamano Sat, 17 Apr 2010 19:40:45 +0000 (12:40 -0700)

Merge branch 'maint'

* maint:
t1010-mktree: Adjust expected result to code and documentation
combined diff: correctly handle truncated file
Document new "already-merged" rule for branch -d

t6006: do not write to /tmpMatthew Ogilvie Sat, 17 Apr 2010 02:29:18 +0000 (20:29 -0600)

t6006: do not write to /tmp

Signed-off-by: Matthew Ogilvie <mmogilvi_git@miniinfo.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-instaweb: pass through invoking user's path to... Chris Webb Thu, 15 Apr 2010 13:29:45 +0000 (14:29 +0100)

git-instaweb: pass through invoking user's path to gitweb CGI scripts

When used with lighttpd or mongoose, git-instaweb previously passed a
hard-coded, default value of PATH to the gitweb CGI script. Use the invoking
user's value for PATH for this instead. (This is already implicitly the
behaviour for other web servers supported by git-instaweb.)

Signed-off-by: Chris Webb <chris@arachsys.com>
Acked-by: Eric Wong <normalperson@yhbt.net>

gitweb: simplify gitweb.min.* generation and clean... Junio C Hamano Thu, 15 Apr 2010 12:57:18 +0000 (08:57 -0400)

gitweb: simplify gitweb.min.* generation and clean-up rules

GITWEB_CSS and GITWEB_JS are meant to be "what URI should the installed
cgi script use to refer to the stylesheet and JavaScript", never "this
is the name of the file we are building". Don't use them to decide what
file to build minified versions in.

While we are at it, lose FILES that is used only for "clean" target in a
misguided way. "make clean" should try to remove all the potential
build artifacts regardless of a minor configuration change. Instead of
trying to remove only the build product "make clean" would have created
if it were run without "clean", explicitly list the three potential build
products for removal.

Tested-by: Mark Rada <marada@uwaterloo.co>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tag -v: use RUN_GIT_CMD to run verify-tagJonathan Nieder Thu, 15 Apr 2010 09:36:25 +0000 (04:36 -0500)

tag -v: use RUN_GIT_CMD to run verify-tag

This is the preferred way to run a git command.

The only obvious observable effects I can think of are that the exec
is properly reported in GIT_TRACE output and that verifying signed
tags will still work if the git-verify-tag hard link in gitexecdir
goes missing.

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

documentation: clarify direction of core.autocrlfWill Palmer Sat, 17 Apr 2010 16:55:26 +0000 (17:55 +0100)

documentation: clarify direction of core.autocrlf

The description for core.autocrlf refers to reads from / writes to
"the filesystem", the only use of this rather ambiguous term, which
technically could be referring to the git object database. (All other
mentions are part of phrases such as "..filesystems (like NFS)..").

Other sections, including the section on core.safecrlf, use the term
"work tree" for the same purpose as the term "the filesystem" is used in
the core.autocrlf section, so that seems like a good alternative, which
makes it clearer what direction the addition/removal of CR characters
occurs in.

Signed-off-by: Will Palmer <wmpalmer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff: use large integers for diffstat calculationsJeff King Sat, 17 Apr 2010 17:41:08 +0000 (13:41 -0400)

diff: use large integers for diffstat calculations

The diffstat "added" and "changed" fields generally store
line counts; however, for binary files, they store file
sizes. Since we store and print these values as ints, a
diffstat on a file larger than 2G can show a negative size.
Instead, let's use uintmax_t, which should be at least 64
bits on modern platforms.

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