gitweb.git
Merge branch 'maint-1.7.2' into maint-1.7.3Junio C Hamano Wed, 16 Feb 2011 22:32:59 +0000 (14:32 -0800)

Merge branch 'maint-1.7.2' into maint-1.7.3

* maint-1.7.2:
fast-import: introduce "feature notes" command
fast-import: clarify documentation of "feature" command

Merge branch 'maint-1.7.1' into maint-1.7.2Junio C Hamano Wed, 16 Feb 2011 22:32:54 +0000 (14:32 -0800)

Merge branch 'maint-1.7.1' into maint-1.7.2

* maint-1.7.1:
fast-import: introduce "feature notes" command
fast-import: clarify documentation of "feature" command

Merge branch 'maint-1.7.0' into maint-1.7.1Junio C Hamano Wed, 16 Feb 2011 22:32:47 +0000 (14:32 -0800)

Merge branch 'maint-1.7.0' into maint-1.7.1

* maint-1.7.0:
fast-import: introduce "feature notes" command
fast-import: clarify documentation of "feature" command

fast-import: introduce "feature notes" commandJonathan Nieder Wed, 9 Feb 2011 22:43:57 +0000 (16:43 -0600)

fast-import: introduce "feature notes" command

Here is a 'feature' command for streams to use to require support for
the notemodify (N) command.

When the 'feature' facility was introduced (v1.7.0-rc0~95^2~4,
2009-12-04), the notes import feature was old news (v1.6.6-rc0~21^2~8,
2009-10-09) and it was not obvious it deserved to be a named feature.
But now that is clear, since all major non-git fast-import backends
lack support for it.

Details: on git version with this patch applied, any "feature notes"
command in the features/options section at the beginning of a stream
will be treated as a no-op. On fast-import implementations without
the feature (and older git versions), the command instead errors out
with a message like

This version of fast-import does not support feature notes.

So by declaring use of notes at the beginning of a stream, frontends
can avoid wasting time and other resources when the backend does not
support notes. (This would be especially important for backends that
do not support rewinding history after a botched import.)

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

fast-import: clarify documentation of "feature" commandJonathan Nieder Sun, 28 Nov 2010 19:43:57 +0000 (13:43 -0600)

fast-import: clarify documentation of "feature" command

The "feature" command allows streams to specify options for the import
that must not be ignored. Logically, they are part of the stream,
even though technically most supported features are synonyms to
command-line options.

Make this more obvious by being more explicit about how the analogy
between most "feature" commands and command-line options works. Treat
the feature (import-marks) that does not fit this analogy separately.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
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>

rebase -i: clarify in-editor documentation of "exec"Jonathan Nieder Fri, 21 Jan 2011 00:36:24 +0000 (18:36 -0600)

rebase -i: clarify in-editor documentation of "exec"

The hints in the current "instruction sheet" template look like so:

# Rebase 3f14246..a1d7e01 onto 3f14246
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x <cmd>, exec <cmd> = Run a shell command <cmd>, and stop if it fails
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#

This does not make it clear that the format of each line is

<insn> <commit id> <explanatory text that will be printed>

but the reader will probably infer that from the automatically
generated pick examples above it.

What about the "exec" instruction? By analogy, I might imagine that
the format of that line is "exec <command> <explanatory text>", and
the "x <cmd>" hint does not address that question (at first I read it
as taking an argument <cmd> that is the name of a shell). Meanwhile,
the mention of <cmd> makes the hints harder to scan as a table.

So remove the <cmd> and add some words to remind the reader that
"exec" runs a command named by the rest of the line. To make room, it
is left to the manpage to explain that that command is run using
$SHELL and that nonzero status from that command will pause the
rebase.

Wording from Junio.

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

tests: sanitize more git environment variablesJeff King Wed, 26 Jan 2011 20:33:32 +0000 (15:33 -0500)

tests: sanitize more git environment variables

These variables should generally not be set in one's
environment, but they do get set by rebase, which means
doing an interactive rebase like:

pick abcd1234 foo
exec make test

will cause false negatives in the test suite.

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

Merge branch 'jn/fast-import-empty-tree-removal' into... Junio C Hamano Thu, 27 Jan 2011 18:23:53 +0000 (10:23 -0800)

Merge branch 'jn/fast-import-empty-tree-removal' into maint

* jn/fast-import-empty-tree-removal:
fast-import: treat filemodify with empty tree as delete

fast-import: treat filemodify with empty tree as deleteJonathan Nieder Thu, 27 Jan 2011 06:07:49 +0000 (00:07 -0600)

fast-import: treat filemodify with empty tree as delete

Normal git processes do not allow one to build a tree with an empty
subtree entry without trying hard at it. This is in keeping with the
general UI philosophy: git tracks content, not empty directories.

v1.7.3-rc0~75^2 (2010-06-30) changed that by making it easy to include
an empty subtree in fast-import's active commit:

M 040000 4b825dc642cb6eb9a060e54bf8d69288fbee4904 subdir

One can trigger this by reading an empty tree (for example, the tree
corresponding to an empty root commit) and trying to move it to a
subtree. It is better and more closely analogous to 'git read-tree
--prefix' to treat such commands as requests to remove the subtree.

Noticed-by: David Barr <david.barr@cordelta.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rebase: give a better error message for bogus branchJeff King Thu, 27 Jan 2011 00:27:11 +0000 (19:27 -0500)

rebase: give a better error message for bogus branch

When you give a non-existent branch to git-rebase, it spits
out the usage. This can be confusing, since you may
understand the usage just fine, but simply have made a
mistake in the branch name.

Before:

$ git rebase origin bogus
Usage: git rebase ...

After:

$ git rebase origin bogus
fatal: no such branch: bogus
Usage: git rebase ...

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

rebase: use explicit "--" with checkoutJeff King Thu, 27 Jan 2011 00:26:59 +0000 (19:26 -0500)

rebase: use explicit "--" with checkout

In the case of a ref/pathname conflict, checkout will
already do the right thing and checkout the ref. However,
for a non-existant ref, this has two advantages:

1. If a file with that pathname exists, rebase will
refresh the file from the index and then rebase the
current branch instead of producing an error.

2. If no such file exists, the error message using an
explicit "--" is better:

# before
$ git rebase -i origin bogus
error: pathspec 'bogus' did not match any file(s) known to git.
Could not checkout bogus

# after
$ git rebase -i origin bogus
fatal: invalid reference: bogus
Could not checkout bogus

The problems seem to be trigger-able only through "git
rebase -i", as regular git-rebase checks the validity of the
branch parameter as a ref very early on. However, it doesn't
hurt to be defensive.

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

exec_cmd: remove unused externErik Faye-Lund Mon, 10 Jan 2011 22:00:49 +0000 (23:00 +0100)

exec_cmd: remove unused extern

This definition was added by commit 77cb17e9, but it's left unused since
commit 511707d. Remove the left-over definition.

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

Merge branch 'jn/gitweb-no-logo' into maintJunio C Hamano Wed, 19 Jan 2011 16:26:47 +0000 (08:26 -0800)

Merge branch 'jn/gitweb-no-logo' into maint

* jn/gitweb-no-logo:
gitweb: make logo optional

Merge branch 'jk/diff-driver-binary-doc' into maintJunio C Hamano Wed, 19 Jan 2011 16:26:44 +0000 (08:26 -0800)

Merge branch 'jk/diff-driver-binary-doc' into maint

* jk/diff-driver-binary-doc:
docs: explain diff.*.binary option

Merge branch 'tr/submodule-relative-scp-url' into maintJunio C Hamano Wed, 19 Jan 2011 16:26:41 +0000 (08:26 -0800)

Merge branch 'tr/submodule-relative-scp-url' into maint

* tr/submodule-relative-scp-url:
submodule: fix relative url parsing for scp-style origin

Merge branch 'rj/maint-difftool-cygwin-workaround'... Junio C Hamano Wed, 19 Jan 2011 16:26:24 +0000 (08:26 -0800)

Merge branch 'rj/maint-difftool-cygwin-workaround' into maint

* rj/maint-difftool-cygwin-workaround:
difftool: Fix failure on Cygwin

Merge branch 'rj/maint-test-fixes' into maintJunio C Hamano Wed, 19 Jan 2011 16:26:17 +0000 (08:26 -0800)

Merge branch 'rj/maint-test-fixes' into maint

* rj/maint-test-fixes:
t9501-*.sh: Fix a test failure on Cygwin
lib-git-svn.sh: Add check for mis-configured web server variables
lib-git-svn.sh: Avoid setting web server variables unnecessarily
t9142: Move call to start_httpd into the setup test
t3600-rm.sh: Don't pass a non-existent prereq to test #15

Merge branch 'jn/maint-gitweb-pathinfo-fix' into maintJunio C Hamano Wed, 19 Jan 2011 16:26:04 +0000 (08:26 -0800)

Merge branch 'jn/maint-gitweb-pathinfo-fix' into maint

* jn/maint-gitweb-pathinfo-fix:
gitweb: Fix handling of whitespace in generated links

Merge branch 'ak/describe-exact' into maintJunio C Hamano Wed, 19 Jan 2011 16:25:52 +0000 (08:25 -0800)

Merge branch 'ak/describe-exact' into maint

* ak/describe-exact:
describe: Delay looking up commits until searching for an inexact match
describe: Store commit_names in a hash table by commit SHA1
describe: Do not use a flex array in struct commit_name
describe: Use for_each_rawref

Merge branch 'jn/maint-fast-import-object-reuse' into... Junio C Hamano Wed, 19 Jan 2011 16:25:46 +0000 (08:25 -0800)

Merge branch 'jn/maint-fast-import-object-reuse' into maint

* jn/maint-fast-import-object-reuse:
fast-import: insert new object entries at start of hash bucket

Merge branch 'jn/submodule-b-current' into maintJunio C Hamano Wed, 19 Jan 2011 16:25:41 +0000 (08:25 -0800)

Merge branch 'jn/submodule-b-current' into maint

* jn/submodule-b-current:
git submodule: Remove now obsolete tests before cloning a repo
git submodule -b ... of current HEAD fails

Merge branch 'jc/maint-svn-info-test-fix' into maintJunio C Hamano Wed, 19 Jan 2011 16:25:38 +0000 (08:25 -0800)

Merge branch 'jc/maint-svn-info-test-fix' into maint

* jc/maint-svn-info-test-fix:
t9119: do not compare "Text Last Updated" line from "svn info"

Merge branch 'nd/maint-relative' into maintJunio C Hamano Wed, 19 Jan 2011 16:25:31 +0000 (08:25 -0800)

Merge branch 'nd/maint-relative' into maint

* nd/maint-relative:
get_cwd_relative(): do not misinterpret root path

commit: suggest --amend --reset-author to fix commiter... Matthieu Moy Wed, 12 Jan 2011 18:29:14 +0000 (19:29 +0100)

commit: suggest --amend --reset-author to fix commiter identity

Since the message advises to fix the configuration first, the
advantage of using this command is that it is cut-and-paste ready,
while using --author='...' requires the user to type his name and
email again.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint-1.7.2' into maintJunio C Hamano Mon, 10 Jan 2011 18:39:28 +0000 (10:39 -0800)

Merge branch 'maint-1.7.2' into maint

* maint-1.7.2:
Documentation/githooks: post-rewrite-copy-notes never existed
Documentation/git-archive: spell --worktree-attributes correctly

Merge branch 'maint-1.7.1' into maint-1.7.2Junio C Hamano Mon, 10 Jan 2011 18:39:18 +0000 (10:39 -0800)

Merge branch 'maint-1.7.1' into maint-1.7.2

* maint-1.7.1:
Documentation/githooks: post-rewrite-copy-notes never existed
Documentation/git-archive: spell --worktree-attributes correctly

Merge branch 'maint-1.7.0' into maint-1.7.1Junio C Hamano Mon, 10 Jan 2011 18:39:04 +0000 (10:39 -0800)

Merge branch 'maint-1.7.0' into maint-1.7.1

* maint-1.7.0:
Documentation/git-archive: spell --worktree-attributes correctly

docs: explain diff.*.binary optionJeff King Sun, 9 Jan 2011 20:10:04 +0000 (15:10 -0500)

docs: explain diff.*.binary option

This was added long ago as part of the userdiff refactoring
for textconv, as internally it made the code simpler and
cleaner. However, there was never a concrete use case for
actually using the config variable.

Now that Matthieu Moy has provided such a use case, it's
easy to explain it using his example.

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

submodule: fix relative url parsing for scp-style originThomas Rast Mon, 10 Jan 2011 10:37:26 +0000 (11:37 +0100)

submodule: fix relative url parsing for scp-style origin

The function resolve_relative_url was not prepared to deal with an
scp-style origin 'user@host:path' in the case where 'path' is only a
single component. Fix this by extending the logic that strips one
path component from the $remoteurl.

Also add tests for both styles of URLs.

Noticed-by: Jeffrey Phillips Freeman <jeffrey.freeman@syncleus.com>
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/githooks: post-rewrite-copy-notes never... Thomas Rast Mon, 10 Jan 2011 12:42:23 +0000 (13:42 +0100)

Documentation/githooks: post-rewrite-copy-notes never existed

The documentation for the post-rewrite hook contains a paragraph from
its early development, where the automatic notes copying facilities
were not part of the series and thus this had to be a hook. Later
versions of the series implemented notes copying as a core feature.

Thus mentioning post-rewrite-copy-notes was never correct. As the
other hooks do not have a "there is no default hook, but..." sentence
unless they ship a sample hook in either templates or contrib, we
simply remove the whole paragraph.

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

Documentation/git-archive: spell --worktree-attributes... Thomas Rast Mon, 10 Jan 2011 12:57:43 +0000 (13:57 +0100)

Documentation/git-archive: spell --worktree-attributes correctly

The --worktree-attributes option was correctly documented in ba053ea
(archive: do not read .gitattributes in working directory,
2009-04-18). However, later in 9b4c8b0 (archive documentation:
attributes are taken from the tree by default, 2010-02-10) the
misspelling "--work-tree-attributes" was used to refer to it. Fix
this.

Noticed-by: Jeffrey Phillips Freeman <jeffrey.freeman@syncleus.com>
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Mark gitk script executableAnders Kaseorg Fri, 7 Jan 2011 01:14:41 +0000 (20:14 -0500)

Mark gitk script executable

The executable bit on gitk-git/gitk was lost (accidentally it seems) by
commit 62ba5143ec2ab9d4083669b1b1679355e7639cd5. Put it back, so that
gitk can be run directly from a git.git checkout.

Note that the script is already executable in gitk.git, just not in
git.git.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.7.3.5 v1.7.3.5Junio C Hamano Wed, 5 Jan 2011 22:49:19 +0000 (14:49 -0800)

Git 1.7.3.5

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

gitweb: make logo optionalJonathan Nieder Sat, 4 Sep 2010 00:45:09 +0000 (19:45 -0500)

gitweb: make logo optional

Some sites may not want to have a logo at all.

While at it, use $cgi->img to simplify this code. (CGI.pm learned
most HTML4 tags by version 2.79, so this should be portable to perl
5.8, though I haven't tested.)

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

gitweb: skip logo in atom feed when there is noneJonathan Nieder Sat, 4 Sep 2010 00:44:39 +0000 (19:44 -0500)

gitweb: skip logo in atom feed when there is none

With v1.5.0-rc0~169 (gitweb: Fix Atom feed <logo>: it is $logo,
not $logo_url, 2006-12-04), the logo URI to be written to Atom
feeds was corrected but the case of no logo forgotten.

Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9001: Fix test prerequisitesRobin H. Johnson Wed, 29 Dec 2010 21:02:31 +0000 (21:02 +0000)

t9001: Fix test prerequisites

Add in missing Perl prerequisites for new tests of send-email.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Prepare for 1.7.3.5Junio C Hamano Tue, 28 Dec 2010 21:48:54 +0000 (13:48 -0800)

Prepare for 1.7.3.5

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

Merge branch 'jk/commit-die-on-bogus-ident' into maintJunio C Hamano Tue, 28 Dec 2010 21:45:12 +0000 (13:45 -0800)

Merge branch 'jk/commit-die-on-bogus-ident' into maint

* jk/commit-die-on-bogus-ident:
commit: die before asking to edit the log message
ident: die on bogus date format

Merge branch 'ks/blame-worktree-textconv-cached' into... Junio C Hamano Tue, 28 Dec 2010 21:44:58 +0000 (13:44 -0800)

Merge branch 'ks/blame-worktree-textconv-cached' into maint

* ks/blame-worktree-textconv-cached:
fill_textconv(): Don't get/put cache if sha1 is not valid
t/t8006: Demonstrate blame is broken when cachetextconv is on

Merge branch 'jc/maint-rebase-rewrite-last-skip' into... Junio C Hamano Tue, 28 Dec 2010 21:43:10 +0000 (13:43 -0800)

Merge branch 'jc/maint-rebase-rewrite-last-skip' into maint

* jc/maint-rebase-rewrite-last-skip:
rebase --skip: correctly wrap-up when skipping the last patch

Merge branch 'jc/maint-am-abort-safely' into maintJunio C Hamano Tue, 28 Dec 2010 21:42:55 +0000 (13:42 -0800)

Merge branch 'jc/maint-am-abort-safely' into maint

* jc/maint-am-abort-safely:
am --abort: keep unrelated commits since the last failure and warn

Merge branch 'kb/maint-status-cquote' into maintJunio C Hamano Tue, 28 Dec 2010 21:23:20 +0000 (13:23 -0800)

Merge branch 'kb/maint-status-cquote' into maint

* kb/maint-status-cquote:
status: Quote paths with spaces in short format

Fix false positives in t3404 due to SHELL=/bin/falseRobin H. Johnson Mon, 27 Dec 2010 08:03:43 +0000 (08:03 +0000)

Fix false positives in t3404 due to SHELL=/bin/false

If the user's shell in NSS passwd is /bin/false (eg as found during Gentoo's
package building), the git-rebase exec tests will fail, because they call
$SHELL around the command, and in the existing testcase, $SHELL was not being
cleared sufficently.

This lead to false positive failures of t3404 on systems where the package
build user was locked down as noted above.

Signed-off-by: "Robin H. Johnson" <robbat2@gentoo.org>
X-Gentoo-Bug: 349083
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=349083
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'rs/maint-diff-fd-leak' into maintJunio C Hamano Sun, 26 Dec 2010 19:18:39 +0000 (11:18 -0800)

Merge branch 'rs/maint-diff-fd-leak' into maint

* rs/maint-diff-fd-leak:
close file on error in read_mmfile()

close file on error in read_mmfile()René Scharfe Sat, 25 Dec 2010 12:38:46 +0000 (13:38 +0100)

close file on error in read_mmfile()

Reported in http://qa.debian.org/daca/cppcheck/sid/git_1.7.2.3-2.2.html
and in http://thread.gmane.org/gmane.comp.version-control.git/123042.

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

test-lib.sh/test_decode_color(): use octal not hex... Brandon Casey Wed, 22 Dec 2010 23:58:52 +0000 (15:58 -0800)

test-lib.sh/test_decode_color(): use octal not hex in awk script

POSIX awk seems to explicitly not support hexadecimal escape sequences.

From http://pubs.opengroup.org/onlinepubs/009695399/:

Regular expressions in awk have been extended somewhat...
One sequence that is not supported is hexadecimal value escapes
beginning with '\x'.

This affects the awk on IRIX 6.5, and causes t4015.56 to fail.
Use octal instead.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rebase --skip: correctly wrap-up when skipping the... Junio C Hamano Thu, 23 Dec 2010 00:50:28 +0000 (16:50 -0800)

rebase --skip: correctly wrap-up when skipping the last patch

When "rebase --skip" is used to skip the last patch in the series, the
code to wrap up the rewrite by copying the notes from old to new commits
and also by running the post-rewrite hook was bypassed.

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

t0050: fix printf format strings for portabilityJonathan Nieder Tue, 21 Dec 2010 20:27:55 +0000 (14:27 -0600)

t0050: fix printf format strings for portability

Unlike bash and ksh, dash passes through hexadecimal \xcc escapes.
So when run with dash, these tests *pass* (since '\xcc' is a perfectly
reasonable filename) but they are not testing what was intended.

Use octal escapes instead, in the spirit of v1.6.1-rc1~55^2
(2008-11-09).

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

t3419-*.sh: Fix arithmetic expansion syntax errorRamsay Jones Tue, 21 Dec 2010 18:50:47 +0000 (18:50 +0000)

t3419-*.sh: Fix arithmetic expansion syntax error

Some shells, for example dash versions older than 0.5.4, need to
spell a variable reference as '$N' rather than 'N' in an arithmetic
expansion. In order to avoid the syntax error, we change the
offending variable reference from 'i' to '$i' in function scramble.

There is nothing bash specific to this test script (and we shouldn't
have any bash dependent test). Fix its shebang line.

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

am --abort: keep unrelated commits since the last failu... Junio C Hamano Tue, 21 Dec 2010 18:35:53 +0000 (10:35 -0800)

am --abort: keep unrelated commits since the last failure and warn

After making commits (either by pulling or doing their own work) after a
failed "am", the user will be reminded by next "am" invocation that there
was a failed "am" that the user needs to decide to resolve or to get rid
of the old "am" attempt. The "am --abort" option was meant to help the
latter. However, it rewinded the HEAD back to the beginning of the failed
"am" attempt, discarding commits made (perhaps by mistake) since.

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

commit: die before asking to edit the log messageJunio C Hamano Tue, 21 Dec 2010 01:00:36 +0000 (17:00 -0800)

commit: die before asking to edit the log message

When determine_author_info() returns to the calling prepare_to_commit(),
we already know the pieces of information necessary to determine what
author ident will be used in the final message, but deferred making a call
to fmt_ident() before the final commit_tree(). Most importantly, we would
open the editor to ask the user to compose the log message before it.

As one important side effect of fmt_ident() is to error out when the given
information is malformed, this resulted in us spawning the editor first
and then refusing to commit due to error, even though we had enough
information to detect the error before starting the editor, which was
annoying.

Move the fmt_ident() call to the end of determine_author_info() where we
have final determination of author info to rectify this.

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

ident: die on bogus date formatJeff King Mon, 13 Dec 2010 17:02:25 +0000 (12:02 -0500)

ident: die on bogus date format

If the user gives "git commit --date=foobar", we silently
ignore the --date flag. We should note the error.

This patch puts the fix at the lowest level of fmt_ident,
which means it also handles GIT_AUTHOR_DATE=foobar, as well.

There are two down-sides to this approach:

1. Technically this breaks somebody doing something like
"git commit --date=now", which happened to work because
bogus data is the same as "now". Though we do
explicitly handle the empty string, so anybody passing
an empty variable through the environment will still
work.

If the error is too much, perhaps it can be downgraded
to a warning?

2. The error checking happens _after_ the commit message
is written, which can be annoying to the user. We can
put explicit checks closer to the beginning of
git-commit, but that feels a little hack-ish; suddenly
git-commit has to care about how fmt_ident works. Maybe
we could simply call fmt_ident earlier?

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

fill_textconv(): Don't get/put cache if sha1 is not... Kirill Smelkov Sat, 18 Dec 2010 14:54:12 +0000 (17:54 +0300)

fill_textconv(): Don't get/put cache if sha1 is not valid

When blaming files in the working tree, the filespec is marked with
!sha1_valid, as we have not given the contents an object name yet. The
function to cache textconv results (keyed on the object name), however,
didn't check this condition, and ended up on storing the cached result
under a random object name.

Cc: Axel Bonnet <axel.bonnet@ensimag.imag.fr>
Cc: Clément Poulain <clement.poulain@ensimag.imag.fr>
Cc: Diane Gasselin <diane.gasselin@ensimag.imag.fr>
Cc: Jeff King <peff@peff.net>
Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t/t8006: Demonstrate blame is broken when cachetextconv... Kirill Smelkov Sat, 18 Dec 2010 14:54:11 +0000 (17:54 +0300)

t/t8006: Demonstrate blame is broken when cachetextconv is on

I have a git repository with lots of .doc and .pdf files. There diff
works ok, but blaming is painfully slow without textconv cache, and with
textconv cache, blame says lots of lines are 'Not Yet Committed' which
is wrong.

Here is a test that demonstrates the problem.

Cc: Axel Bonnet <axel.bonnet@ensimag.imag.fr>
Cc: Clément Poulain <clement.poulain@ensimag.imag.fr>
Cc: Diane Gasselin <diane.gasselin@ensimag.imag.fr>
Cc: Jeff King <peff@peff.net>
Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitweb: Include links to feeds in HTML header only... Jakub Narebski Sat, 18 Dec 2010 20:02:13 +0000 (21:02 +0100)

gitweb: Include links to feeds in HTML header only for '200 OK' response

To do that, generating "<link />"s to feeds were refactored into
print_feed_meta() subroutine, to keep nesting (indent) level in
git_header_html() low. This has also the advantage of making code
more clear.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: John 'Warthog9' Hawley <warthog9@eaglescrag.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fsck docs: remove outdated and useless diagnosticMark Lodato Sat, 18 Dec 2010 05:38:38 +0000 (00:38 -0500)

fsck docs: remove outdated and useless diagnostic

In git-fsck(1), there was a reference to the warning "<tree> has full
pathnames in it". This exact wording has not been used since 2005
(commit f1f0d0889e55), when the wording was changed slightly. More
importantly, the description of that warning was useless, and there were
many other similar warning messages which were not document at all.
Since all these warnings are fairly obvious, there is no need for them
to be in the man page.

Signed-off-by: Mark Lodato <lodatom@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

userdiff: fix typo in ruby and python word regexesThomas Rast Sat, 18 Dec 2010 16:17:53 +0000 (17:17 +0100)

userdiff: fix typo in ruby and python word regexes

Both had an unclosed ] that ruined the safeguard against not matching
a non-space char.

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

trace.c: mark file-local function staticVasyl' Vavrychuk Thu, 16 Dec 2010 22:38:42 +0000 (00:38 +0200)

trace.c: mark file-local function static

Signed-off-by: Vasyl' Vavrychuk <vvavrychuk@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix typo in git-gc document.Jiang Xin Thu, 16 Dec 2010 07:16:49 +0000 (15:16 +0800)

Fix typo in git-gc document.

The variable gc.packrefs for git-gc can be set to true, false and
"notbare", not "nobare".

Signed-off-by: Jiang Xin <jiangxin@ossxp.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

difftool: provide basename to external toolsMichael J Gruber Tue, 14 Dec 2010 09:18:35 +0000 (10:18 +0100)

difftool: provide basename to external tools

Currently, only configured diff helpers get the basename of the file
being compared. Tools specified with "git difftool -x" only get the
names of temporary files for the different versions.

Export BASE so that an external tool can read the name from the
environment. Rather than using a third argument, this avoids breaking
existing scripts which may somewhat carelessly be using "$@" rather than
"$1" "$2".

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

git-difftool.txt: correct the description of $BASE... Michael J Gruber Tue, 14 Dec 2010 09:18:34 +0000 (10:18 +0100)

git-difftool.txt: correct the description of $BASE and describe $MERGED

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

Git 1.7.3.4 v1.7.3.4Junio C Hamano Wed, 15 Dec 2010 19:47:40 +0000 (11:47 -0800)

Git 1.7.3.4

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

Git 1.7.2.5 v1.7.2.5Junio C Hamano Wed, 15 Dec 2010 19:45:36 +0000 (11:45 -0800)

Git 1.7.2.5

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

Git 1.7.1.4 v1.7.1.4Junio C Hamano Wed, 15 Dec 2010 19:40:40 +0000 (11:40 -0800)

Git 1.7.1.4

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

Git 1.7.0.9 v1.7.0.9Junio C Hamano Wed, 15 Dec 2010 19:38:19 +0000 (11:38 -0800)

Git 1.7.0.9

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

Git 1.6.6.3 v1.6.6.3Junio C Hamano Wed, 15 Dec 2010 19:32:57 +0000 (11:32 -0800)

Git 1.6.6.3

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

Git 1.6.5.9 v1.6.5.9Junio C Hamano Wed, 15 Dec 2010 19:27:41 +0000 (11:27 -0800)

Git 1.6.5.9

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

Git 1.6.4.5 v1.6.4.5Junio C Hamano Wed, 15 Dec 2010 19:19:11 +0000 (11:19 -0800)

Git 1.6.4.5

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

gitweb: Introduce esc_attr to escape attributes of... Jakub Narebski Tue, 14 Dec 2010 23:34:01 +0000 (00:34 +0100)

gitweb: Introduce esc_attr to escape attributes of HTML elements

It is needed only to escape attributes of handcrafted HTML elements,
and not those generated using CGI.pm subroutines / methods for HTML
generation.

While at it, add esc_url and esc_html where needed, and prefer to use
CGI.pm HTML generating methods than handcrafted HTML code. Most of
those are probably unnecessary (could be exploited only by person with
write access to gitweb config, or at least access to the repository).

This fixes CVE-2010-3906

Reported-by: Emanuele Gentili <e.gentili@tigersecurity.it>
Helped-by: John 'Warthog9' Hawley <warthog9@kernel.org>
Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

difftool: Fix failure on CygwinRamsay Jones Tue, 14 Dec 2010 18:27:48 +0000 (18:27 +0000)

difftool: Fix failure on Cygwin

In particular, test 14 'difftool last flag wins' in t7800 fails.
This is caused by git-difftool.perl passing both GIT_DIFFTOOL_NO_PROMPT
(='true') and GIT_DIFFTOOL_PROMPT (='true') to the difftool helper
script. Despite the appropriate key being deleted from the ENV
hash, it seems that once a key has been set in the hash, it gets
passed along to the system() call. (ie deleting the key does not
do the equivalent of unsetenv()).

In order to fix the problem, we keep track of the required prompt
state while processing the arguments, and then set the relevant
ENV hash key only once at the end.

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

t9501-*.sh: Fix a test failure on CygwinRamsay Jones Tue, 14 Dec 2010 18:26:38 +0000 (18:26 +0000)

t9501-*.sh: Fix a test failure on Cygwin

The first (setup) test attempts to create a file, using the
test_commit function, called 'i can has snapshot?'. On cygwin
(and MinGW) this fails with a "No such file or directory" error.
In order to fix the tests, we simply remove the '?' wildcard
from the name, since the purpose of these tests is not about
creating funny filenames.

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

lib-git-svn.sh: Add check for mis-configured web server... Ramsay Jones Tue, 14 Dec 2010 18:25:11 +0000 (18:25 +0000)

lib-git-svn.sh: Add check for mis-configured web server variables

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

lib-git-svn.sh: Avoid setting web server variables... Ramsay Jones Tue, 14 Dec 2010 18:22:29 +0000 (18:22 +0000)

lib-git-svn.sh: Avoid setting web server variables unnecessarily

If the SVN_HTTPD_PORT variable is not set, then we will not even
attempt to start a web server in the start_httpd function (despite
it's name), so there is no need to determine values for the
SVN_HTTPD_PATH and SVN_HTTPD_MODULE_PATH variables.

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

t9142: Move call to start_httpd into the setup testRamsay Jones Tue, 14 Dec 2010 18:20:38 +0000 (18:20 +0000)

t9142: Move call to start_httpd into the setup test

In addition to being more consistent with the other calls to
start_httpd in tests t9115-*.sh, t9118-*.sh and t9120-*.sh, this
has the added benefit of making the test less noisy. (start_httpd
writes "SVN_HTTPD_PORT is not defined!" on stderr.)

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

t3600-rm.sh: Don't pass a non-existent prereq to test #15Ramsay Jones Tue, 14 Dec 2010 18:19:09 +0000 (18:19 +0000)

t3600-rm.sh: Don't pass a non-existent prereq to test #15

Commit c91cfd19 (tests: A SANITY test prereq for testing if we're
root, 2010-08-06) introduced a SANITY prerequisite which had very
similar semantics to RO_DIR. That commit removed the code to set
RO_DIR, but forgot to replace RO_DIR with SANITY in test #15.

In order not to skip test 15 unnecessarily, since RO_DIR will never
be set, we pass the SANITY prerequisite instead.

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

gitweb: Fix handling of whitespace in generated linksJakub Narebski Tue, 14 Dec 2010 15:54:31 +0000 (16:54 +0100)

gitweb: Fix handling of whitespace in generated links

When creating path_info part of link, don't encode space as '+', because
while $cgi->param('foo') translates '+' in query param to ' ', neither
$ENV{'PATH_INFO'} nor $cgi->path_info() do.

This fixes the issue with pathnames with embedded whitespace and
$feature{'pathinfo'} / path_info links. It is done by using newly
introduced esc_path_info() instead of esc_url() in href() subroutine.

Also while links are more clear not escaping space (' ') characters in
generated links, the trailing space must be URI-encoded, otherwise would
get discarded.

Issue noticed thanks to John 'Warthog9' Hawley.

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

Prepare for 1.7.3.4Junio C Hamano Tue, 14 Dec 2010 15:51:35 +0000 (07:51 -0800)

Prepare for 1.7.3.4

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

use persistent memory for rejected pathsClemens Buchacher Mon, 15 Nov 2010 19:52:19 +0000 (20:52 +0100)

use persistent memory for rejected paths

An aborted merge prints the list of rejected paths as part of the
error message. Since commit f66caaf9 (do not overwrite files in
leading path), some of those paths do not have static buffers, so
we have to keep a copy. Use string_list's to accomplish this.

This changes the order of the list to the order in which the paths
are processed. Previously, it was reversed.

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

do not overwrite files in leading pathClemens Buchacher Sat, 9 Oct 2010 13:53:00 +0000 (15:53 +0200)

do not overwrite files in leading path

If the work tree contains an untracked file x, and
unpack-trees wants to checkout a path x/*, the
file x is removed unconditionally.

Instead, apply the same checks that are normally
used for untracked files, and abort if the file
cannot be removed.

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

lstat_cache: optionally return match_lenClemens Buchacher Sat, 9 Oct 2010 13:52:59 +0000 (15:52 +0200)

lstat_cache: optionally return match_len

Return match_len so that the caller can know which leading path
component matched.

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

add function check_ok_to_remove()Clemens Buchacher Sat, 9 Oct 2010 13:52:58 +0000 (15:52 +0200)

add function check_ok_to_remove()

This wraps some inline code into the function check_ok_to_remove(),
which will later be used for leading path components as well.

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

t7607: add leading-path testsClemens Buchacher Sun, 10 Oct 2010 08:38:58 +0000 (10:38 +0200)

t7607: add leading-path tests

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

t7607: use test-lib functions and check MERGE_HEADClemens Buchacher Sun, 10 Oct 2010 08:35:43 +0000 (10:35 +0200)

t7607: use test-lib functions and check MERGE_HEAD

Use the test_commit and test_path_is_missing
functions from the test library.

Also make sure that a merge which fails due to
pre-merge checks aborts properly and does not
leave MERGE_HEAD behind.

The "will not overwrite removed file" test is an
exception to this. It notices the untracked file
at a stage where the merge is already well under
way. Therefore we cannot abort the merge without
major restructuring. See the following thread for
more details.

http://mid.gmane.org/7vskopwxej.fsf@gitster.siamese.dyndns.org

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

Merge branch 'jc/maint-no-openssl-build-fix' into maintJunio C Hamano Tue, 14 Dec 2010 15:50:20 +0000 (07:50 -0800)

Merge branch 'jc/maint-no-openssl-build-fix' into maint

* jc/maint-no-openssl-build-fix:
Do not link with -lcrypto under NO_OPENSSL

Merge branch 'ja/maint-pull-rebase-doc' into maintJunio C Hamano Tue, 14 Dec 2010 15:36:23 +0000 (07:36 -0800)

Merge branch 'ja/maint-pull-rebase-doc' into maint

* ja/maint-pull-rebase-doc:
git-pull.txt: Mention branch.autosetuprebase

Merge branch 'tc/http-urls-ends-with-slash' into maintJunio C Hamano Tue, 14 Dec 2010 15:36:10 +0000 (07:36 -0800)

Merge branch 'tc/http-urls-ends-with-slash' into maint

* tc/http-urls-ends-with-slash:
http-fetch: rework url handling
http-push: add trailing slash at arg-parse time, instead of later on
http-push: check path length before using it
http-push: Normalise directory names when pushing to some WebDAV servers
http-backend: use end_url_with_slash()
url: add str wrapper for end_url_with_slash()
shift end_url_with_slash() from http.[ch] to url.[ch]
t5550-http-fetch: add test for http-fetch
t5550-http-fetch: add missing '&&'

Merge branch 'nd/maint-hide-checkout-index-from-error... Junio C Hamano Tue, 14 Dec 2010 15:36:00 +0000 (07:36 -0800)

Merge branch 'nd/maint-hide-checkout-index-from-error' into maint

* nd/maint-hide-checkout-index-from-error:
entry.c: remove "checkout-index" from error messages

Merge branch 'jk/maint-reflog-bottom' into maintJunio C Hamano Tue, 14 Dec 2010 15:35:50 +0000 (07:35 -0800)

Merge branch 'jk/maint-reflog-bottom' into maint

* jk/maint-reflog-bottom:
reflogs: clear flags properly in corner case

Merge branch 'mz/rebase-abort-reflog-fix' into maintJunio C Hamano Tue, 14 Dec 2010 15:35:44 +0000 (07:35 -0800)

Merge branch 'mz/rebase-abort-reflog-fix' into maint

* mz/rebase-abort-reflog-fix:
rebase --abort: do not update branch ref

Merge branch 'mz/maint-rebase-stat-config' into maintJunio C Hamano Tue, 14 Dec 2010 15:35:31 +0000 (07:35 -0800)

Merge branch 'mz/maint-rebase-stat-config' into maint

* mz/maint-rebase-stat-config:
rebase: only show stat if configured to true

Merge branch 'gc/http-with-non-ascii-username-url'... Junio C Hamano Tue, 14 Dec 2010 15:35:18 +0000 (07:35 -0800)

Merge branch 'gc/http-with-non-ascii-username-url' into maint

* gc/http-with-non-ascii-username-url:
Fix username and password extraction from HTTP URLs
t5550: test HTTP authentication and userinfo decoding

Conflicts:
t/lib-httpd/apache.conf

Prepare for 1.7.3.4Junio C Hamano Sat, 11 Dec 2010 00:35:00 +0000 (16:35 -0800)

Prepare for 1.7.3.4

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

Merge branch 'jk/maint-decorate-01-bool' into maintJunio C Hamano Sat, 11 Dec 2010 00:13:14 +0000 (16:13 -0800)

Merge branch 'jk/maint-decorate-01-bool' into maint

* jk/maint-decorate-01-bool:
log.decorate: accept 0/1 bool values

Merge branch 'mg/maint-tag-rfc1991' into maintJunio C Hamano Sat, 11 Dec 2010 00:13:03 +0000 (16:13 -0800)

Merge branch 'mg/maint-tag-rfc1991' into maint

* mg/maint-tag-rfc1991:
tag: recognize rfc1991 signatures
tag: factor out sig detection for tag display
tag: factor out sig detection for body edits
verify-tag: factor out signature detection
t/t7004-tag: test handling of rfc1991 signatures

Merge branch 'ks/maint-getenv-fix' into maintJunio C Hamano Sat, 11 Dec 2010 00:12:51 +0000 (16:12 -0800)

Merge branch 'ks/maint-getenv-fix' into maint

* ks/maint-getenv-fix:
setup: make sure git_dir path is in a permanent buffer, getenv(3) case

Add --force to git-send-email documentationAlejandro R. Sedeño Fri, 10 Dec 2010 18:44:15 +0000 (13:44 -0500)

Add --force to git-send-email documentation

Signed-off-by: Alejandro R. Sedeño <asedeno@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

describe: Delay looking up commits until searching... Anders Kaseorg Thu, 9 Dec 2010 06:47:29 +0000 (01:47 -0500)

describe: Delay looking up commits until searching for an inexact match

Now that struct commit.util is not used until after we've checked that
the argument doesn't exactly match a tag, we can wait until then to
look up the commits for each tag.

This avoids a lot of I/O on --exact-match queries in repositories with
many tags. For example, 'git describe --exact-match HEAD' becomes
about 12 times faster on a cold cache (3.2s instead of 39s) in a
linux-2.6 repository with 2000 packed tags. That is a huge win for the
interactivity of the __git_ps1 shell prompt helper when on a detached
HEAD.

Signed-off-by: Anders Kaseorg <andersk@ksplice.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

describe: Store commit_names in a hash table by commit... Anders Kaseorg Thu, 9 Dec 2010 06:46:08 +0000 (01:46 -0500)

describe: Store commit_names in a hash table by commit SHA1

describe is currently forced to look up the commit at each tag in
order to store the struct commit_name pointers in struct commit.util.
For --exact-match queries, those lookups are wasteful. In preparation
for removing them, put the commit_names into a hash table, indexed by
commit SHA1, that can be used to quickly check for exact matches.

Signed-off-by: Anders Kaseorg <andersk@ksplice.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

describe: Do not use a flex array in struct commit_nameAnders Kaseorg Thu, 9 Dec 2010 06:43:32 +0000 (01:43 -0500)

describe: Do not use a flex array in struct commit_name

Now add_to_known_names overwrites commit_names in place when multiple
tags point to the same commit. This will make it easier to store
commit_names in a hash table.

Signed-off-by: Anders Kaseorg <andersk@ksplice.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

describe: Use for_each_rawrefAnders Kaseorg Thu, 9 Dec 2010 06:42:25 +0000 (01:42 -0500)

describe: Use for_each_rawref

Don't waste time checking for dangling refs; they wouldn't affect the
output of 'git describe' anyway. Although this does not gain much
performance by itself, it does in conjunction with the next commits.

Signed-off-by: Anders Kaseorg <andersk@ksplice.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>