gitweb.git
Introduce new pretty formats %g[sdD] for reflog informationThomas Rast Mon, 19 Oct 2009 15:48:10 +0000 (17:48 +0200)

Introduce new pretty formats %g[sdD] for reflog information

Add three new --pretty=format escapes:

%gD long reflog descriptor (e.g. refs/stash@{0})
%gd short reflog descriptor (e.g. stash@{0})
%gs reflog message

This is achieved by passing down the reflog info, if any, inside the
pretty_print_context struct.

We use the newly refactored get_reflog_selector(), and give it some
extra functionality to extract a shortened ref. The shortening is
cached inside the commit_reflogs struct; the only allocation of it
happens in read_complete_reflog(), where it is initialised to 0. Also
add another helper get_reflog_message() for the message extraction.

Note that the --format="%h %gD: %gs" tests may not work in real
repositories, as the --pretty formatter doesn't know to leave away the
": " on the last commit in an incomplete (because git-gc removed the
old part) reflog. This equivalence is nevertheless the main goal of
this patch.

Thanks to Jeff King for reviews, the %gd testcase and documentation.

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

reflog-walk: refactor the branch@{num} formattingThomas Rast Mon, 19 Oct 2009 15:48:09 +0000 (17:48 +0200)

reflog-walk: refactor the branch@{num} formatting

We'll use the same output in an upcoming commit, so refactor its
formatting (which was duplicated anyway) into a separate function.

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

Refactor pretty_print_commit arguments into a structThomas Rast Mon, 19 Oct 2009 15:48:08 +0000 (17:48 +0200)

Refactor pretty_print_commit arguments into a struct

pretty_print_commit() has a bunch of rarely-used arguments, and
introducing more of them requires yet another update of all the call
sites. Refactor most of them into a struct to make future extensions
easier.

The ones that stay "plain" arguments were chosen on the grounds that
all callers put real arguments there, whereas some callers have 0/NULL
for all arguments that were factored into the struct.

We declare the struct 'const' to ensure none of the callers are bitten
by the changed (no longer call-by-value) semantics.

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

mingw: wrap SSL_set_(w|r)fd to call _get_osfhandleErik Faye-Lund Mon, 19 Oct 2009 15:42:07 +0000 (17:42 +0200)

mingw: wrap SSL_set_(w|r)fd to call _get_osfhandle

SSL_set_fd (and friends) expects a OS file handle on Windows, not
a file descriptor as on UNIX(-ish).

This patch makes the Windows version of SSL_set_fd behave like the
UNIX versions, by calling _get_osfhandle on it's input.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

imap-send: build imap-send on WindowsErik Faye-Lund Mon, 19 Oct 2009 15:42:06 +0000 (17:42 +0200)

imap-send: build imap-send on Windows

Since the POSIX-specific tunneling code has been replaced
by the run-command API (and a compile-error has been
cleaned away), we can now enable imap-send on Windows
builds.

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

imap-send: fix compilation-error on WindowsErik Faye-Lund Mon, 19 Oct 2009 15:42:05 +0000 (17:42 +0200)

imap-send: fix compilation-error on Windows

mmsystem.h (included from windows.h) defines DRV_OK to 1. To avoid
an error due to DRV_OK redefenition, this patch undefines the old
definition (i.e the one from mmsystem.h) before defining DRV_OK.

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

imap-send: use run-command API for tunnelingErik Faye-Lund Mon, 19 Oct 2009 15:42:04 +0000 (17:42 +0200)

imap-send: use run-command API for tunneling

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

imap-send: use separate read and write fdsErik Faye-Lund Mon, 19 Oct 2009 15:42:03 +0000 (17:42 +0200)

imap-send: use separate read and write fds

This is a patch that enables us to use the run-command
API, which is supported on Windows.

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

imap-send: remove useless uid codeJeff King Mon, 19 Oct 2009 15:42:02 +0000 (17:42 +0200)

imap-send: remove useless uid code

The imap-send code is based on code from isync, a program
for syncing imap mailboxes. Because of this, it has
inherited some code that makes sense for isync, but not for
imap-send.

In particular, when storing a message, it does one of:

- if the server supports it, note the server-assigned
unique identifier (UID) given to each message

- otherwise, assigned a random UID and store it in the
message header as X-TUID

Presumably this is used in isync to be able to synchronize
mailstores multiple times without duplication. But for
imap-send, the values are useless; we never do anything
with them and simply forget them at the end of the program.

This patch removes the useless code. Not only is it nice for
maintainability to get rid of dead code, but the removed
code relied on the existence of /dev/urandom, which made it
a portability problem for non-Unix platforms.

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

Add selftests verifying concatenation of multiple notes... Johan Herland Fri, 9 Oct 2009 10:22:10 +0000 (12:22 +0200)

Add selftests verifying concatenation of multiple notes for the same commit

Also verify that multiple references to the _same_ note blob are _not_
concatenated.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Refactor notes code to concatenate multiple notes annot... Johan Herland Fri, 9 Oct 2009 10:22:09 +0000 (12:22 +0200)

Refactor notes code to concatenate multiple notes annotating the same object

Currently, having multiple notes referring to the same commit from various
locations in the notes tree is strongly discouraged, since only one of those
notes will be parsed and shown.

This patch teaches the notes code to _concatenate_ multiple notes that
annotate the same commit. Notes are concatenated by creating a new blob
object containing the concatenation of the notes in question, and
replacing them with the concatenated note in the internal notes tree
structure.

Getting the concatenation right requires being more proactive in unpacking
subtree entries in the internal notes tree structure, so that we don't return
a note prematurely (i.e. before having found all other notes that annotate
the same object). As such, this patch may incur a small performance penalty.

Suggested-by: Sam Vilain <sam@vilain.net>
Re-suggested-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add selftests verifying that we can parse notes trees... Johan Herland Fri, 9 Oct 2009 10:22:08 +0000 (12:22 +0200)

Add selftests verifying that we can parse notes trees with various fanouts

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Teach the notes lookup code to parse notes trees with... Johan Herland Fri, 9 Oct 2009 10:22:07 +0000 (12:22 +0200)

Teach the notes lookup code to parse notes trees with various fanout schemes

The semantics used when parsing notes trees (with regards to fanout subtrees)
follow Dscho's proposal fairly closely:
- No concatenation/merging of notes is performed. If there are several notes
objects referencing a given commit, only one of those objects are used.
- If a notes object for a given commit is present in the "root" notes tree,
no subtrees are consulted; the object in the root tree is used directly.
- If there are more than one subtree that prefix-matches the given commit,
only the subtree with the longest matching prefix is consulted. This
means that if the given commit is e.g. "deadbeef", and the notes tree have
subtrees "de" and "dead", then the following paths in the notes tree are
searched: "deadbeef", "dead/beef". Note that "de/adbeef" is NOT searched.
- Fanout directories (subtrees) must references a whole number of bytes
from the SHA1 sum they subdivide. E.g. subtrees "dead" and "de" are
acceptable; "d" and "dea" are not.
- Multiple levels of fanout are allowed. All the above rules apply
recursively. E.g. "de/adbeef" is preferred over "de/adbe/ef", etc.

This patch changes the in-memory datastructure for holding parsed notes:
Instead of holding all note (and subtree) entries in a hash table, a
simple 16-tree structure is used instead. The tree structure consists of
16-arrays as internal nodes, and note/subtree entries as leaf nodes. The
tree is traversed by indexing subsequent nibbles of the search key until
a leaf node is encountered. If a subtree entry is encountered while
searching for a note, the subtree is unpacked into the 16-tree structure,
and the search continues into that subtree.

The new algorithm performs significantly better in the cases where only
a fraction of the notes need to be looked up (this is assumed to be the
common case for notes lookup). The new code even performs marginally
better in the worst case (where _all_ the notes are looked up).

In addition to this, comes the massive performance win associated with
organizing the notes tree according to some fanout scheme. Even a simple
2/38 fanout scheme is dramatically quicker to traverse (going from tens of
seconds to sub-second runtimes).

As for memory usage, the new code is marginally better than the old code in
the worst case, but in the case of looking up only some notes from a notes
tree with proper fanout, the new code uses only a small fraction of the
memory needed to hold the entire notes tree.

However, there is one casualty of this patch. The old notes lookup code was
able to parse notes that were associated with non-SHA1s (e.g. refs). The new
code requires the referenced object to be named by a SHA1 sum. Still, this
is not considered a major setback, since the notes infrastructure was not
originally intended to annotate objects outside the Git object database.

Cc: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Teach notes code to free its internal data structures... Johan Herland Fri, 9 Oct 2009 10:22:06 +0000 (12:22 +0200)

Teach notes code to free its internal data structures on request

There's no need to be rude to memory-concious callers...

This patch has been improved by the following contributions:
- Junio C Hamano: avoid old-style declaration

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add '%N'-format for pretty-printing commit notesJohannes Schindelin Fri, 9 Oct 2009 10:22:05 +0000 (12:22 +0200)

Add '%N'-format for pretty-printing commit notes

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add flags to get_commit_notes() to control the format... Johan Herland Fri, 9 Oct 2009 10:22:04 +0000 (12:22 +0200)

Add flags to get_commit_notes() to control the format of the note string

This patch adds the following flags to get_commit_notes() for adjusting the
format of the produced note string:
- NOTES_SHOW_HEADER: Print "Notes:" line before the notes contents
- NOTES_INDENT: Indent notes contents by 4 spaces

Suggested-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t3302-notes-index-expensive: Speed up create_repo()Johan Herland Fri, 9 Oct 2009 10:22:03 +0000 (12:22 +0200)

t3302-notes-index-expensive: Speed up create_repo()

Creating repos with 10/100/1000/10000 commits and notes takes a lot of time.
However, using git-fast-import to do the job is a lot more efficient than
using plumbing commands to do the same.

This patch decreases the overall run-time of this test on my machine from
~3 to ~1 minutes.

Signed-off-by: Johan Herland <johan@herland.net>
Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fast-import: Add support for importing commit notesJohan Herland Fri, 9 Oct 2009 10:22:02 +0000 (12:22 +0200)

fast-import: Add support for importing commit notes

Introduce a 'notemodify' subcommand of the 'commit' command. This subcommand
is similar to 'filemodify', except that no mode is supplied (all notes have
mode 0644), and the path is set to the hex SHA1 of the given "comittish".

This enables fast import of note objects along with their associated commits,
since the notes can now be named using the mark references of their
corresponding commits.

The patch also includes a test case of the added functionality.

Signed-off-by: Johan Herland <johan@herland.net>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Teach "-m <msg>" and "-F <file>" to "git notes edit"Johan Herland Fri, 9 Oct 2009 10:22:01 +0000 (12:22 +0200)

Teach "-m <msg>" and "-F <file>" to "git notes edit"

The "-m" and "-F" options are already the established method
(in both git-commit and git-tag) to specify a commit/tag message
without invoking the editor. This patch teaches "git notes edit"
to respect the same options for specifying a notes message without
invoking the editor.

Multiple "-m" and/or "-F" options are concatenated as separate
paragraphs.

The patch also updates the "git notes" documentation and adds
selftests for the new functionality. Unfortunately, the added
selftests include a couple of lines with trailing whitespace
(without these the test will fail). This may cause git to warn
about "whitespace errors".

This patch has been improved by the following contributions:
- Thomas Rast: fix trailing whitespace in t3301

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add an expensive test for git-notesJohannes Schindelin Fri, 9 Oct 2009 10:22:00 +0000 (12:22 +0200)

Add an expensive test for git-notes

git-notes have the potential of being pretty expensive, so test with
a lot of commits. A lot. So to make things cheaper, you have to
opt-in explicitely, by setting the environment variable
GIT_NOTES_TIMING_TESTS.

This patch has been improved by the following contributions:
- Junio C Hamano: tests: fix "export var=val"

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Speed up git notes lookupJohannes Schindelin Fri, 9 Oct 2009 10:21:59 +0000 (12:21 +0200)

Speed up git notes lookup

To avoid looking up each and every commit in the notes ref's tree
object, which is very expensive, speed things up by slurping the tree
object's contents into a hash_map.

The idea for the hashmap singleton is from David Reiss, initial
benchmarking by Jeff King.

Note: the implementation allows for arbitrary entries in the notes
tree object, ignoring those that do not reference a valid object. This
allows you to annotate arbitrary branches, or objects.

This patch has been improved by the following contributions:
- Junio C Hamano: fixed an obvious error in initialize_hash_map()

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add a script to edit/inspect notesJohannes Schindelin Fri, 9 Oct 2009 10:21:58 +0000 (12:21 +0200)

Add a script to edit/inspect notes

The script 'git notes' allows you to edit and show commit notes, by
calling either

git notes show <commit>

or

git notes edit <commit>

This patch has been improved by the following contributions:
- Tor Arne Vestbø: fix printing of multi-line notes
- Michael J Gruber: test and handle empty notes gracefully
- Thomas Rast:
- only clean up message file when editing
- use GIT_EDITOR and core.editor over VISUAL/EDITOR
- t3301: fix confusing quoting in test for valid notes ref
- t3301: use test_must_fail instead of !
- refuse to edit notes outside refs/notes/
- Junio C Hamano: tests: fix "export var=val"
- Christian Couder: documentation: fix 'linkgit' macro in "git-notes.txt"
- Johan Herland: minor cleanup and bugfixing in git-notes.sh (v2)

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Tor Arne Vestbø <tavestbo@trolltech.com>
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Introduce commit notesJohannes Schindelin Fri, 9 Oct 2009 10:21:57 +0000 (12:21 +0200)

Introduce commit notes

Commit notes are blobs which are shown together with the commit
message. These blobs are taken from the notes ref, which you can
configure by the config variable core.notesRef, which in turn can
be overridden by the environment variable GIT_NOTES_REF.

The notes ref is a branch which contains "files" whose names are
the names of the corresponding commits (i.e. the SHA-1).

The rationale for putting this information into a ref is this: we
want to be able to fetch and possibly union-merge the notes,
maybe even look at the date when a note was introduced, and we
want to store them efficiently together with the other objects.

This patch has been improved by the following contributions:
- Thomas Rast: fix core.notesRef documentation
- Tor Arne Vestbø: fix printing of multi-line notes
- Alex Riesen: Using char array instead of char pointer costs less BSS
- Johan Herland: Plug leak when msg is good, but msglen or type causes return

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Tor Arne Vestbø <tavestbo@trolltech.com>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
get_commit_notes(): Plug memory leak when 'if' triggers, but not because of read_sha1_file() failure

Add strbuf_add_wrapped_text() to utf8.[ch]Johannes Schindelin Mon, 10 Nov 2008 17:47:00 +0000 (18:47 +0100)

Add strbuf_add_wrapped_text() to utf8.[ch]

The newly added function can rewrap text according to a given first-line
indent, other-indent and text width.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>

print_wrapped_text(): allow hard newlinesJohannes Schindelin Sun, 11 Nov 2007 14:14:15 +0000 (14:14 +0000)

print_wrapped_text(): allow hard newlines

print_wrapped_text() will insert its own newlines. Up until now, if the
text passed to it contained newlines, they would not be handled properly
(the wrapping got confused after that).

The strategy is to replace a single new-line with a space, but keep double
new-lines so that already-wrapped text with empty lines between paragraphs
will be handled properly.

However, single new-line characters are only handled this way if the
character after it is an alphanumeric character, as per Linus' suggestion.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>

Merge branch 'bg/rebase-reword'Junio C Hamano Mon, 19 Oct 2009 07:49:21 +0000 (00:49 -0700)

Merge branch 'bg/rebase-reword'

* bg/rebase-reword:
rebase -i: fix reword when using a terminal editor
Teach 'rebase -i' the command "reword"

rebase -i: fix reword when using a terminal editorStephen Boyd Fri, 16 Oct 2009 06:32:33 +0000 (23:32 -0700)

rebase -i: fix reword when using a terminal editor

We don't want to use output() on git-commit --amend when rewording the
commit message. This leads to confusion as the editor is run in a
subshell with it's output saved away, leaving the user with a seemingly
frozen terminal.

Fix by removing the output part.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

format_commit_message(): fix function signatureJunio C Hamano Fri, 16 Oct 2009 05:59:41 +0000 (22:59 -0700)

format_commit_message(): fix function signature

The format template string was declared as "const void *" for some unknown
reason, even though it obviously is meant to be passed a string. Make it
"const char *".

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

cvsimport: fix relative argument filenamesJeff King Mon, 19 Oct 2009 06:49:55 +0000 (02:49 -0400)

cvsimport: fix relative argument filenames

One of the first things that cvsimport does is chdir to the
newly created git repo. This means that any filenames given
to us on the command line will be looked up relative to the
git repo directory. This is probably not what the user
expects, so let's remember and prepend the original
directory for relative filenames.

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

Merge branch 'jp/maint-send-email-fold'Junio C Hamano Mon, 19 Oct 2009 06:01:37 +0000 (23:01 -0700)

Merge branch 'jp/maint-send-email-fold'

* jp/maint-send-email-fold:
git-send-email.perl: fold multiple entry "Cc:" and multiple single line "RCPT TO:"s

Merge branch 'cc/replace-no-replace'Junio C Hamano Mon, 19 Oct 2009 06:01:31 +0000 (23:01 -0700)

Merge branch 'cc/replace-no-replace'

* cc/replace-no-replace:
git: add --no-replace-objects option to disable replacing

Merge branch 'jn/maint-1.6.3-check-ref-format-doc'Junio C Hamano Mon, 19 Oct 2009 06:01:26 +0000 (23:01 -0700)

Merge branch 'jn/maint-1.6.3-check-ref-format-doc'

* jn/maint-1.6.3-check-ref-format-doc:
Documentation: describe check-ref-format --branch

Merge branch 'jk/maint-1.6.3-ls-files-no-ignore-cached'Junio C Hamano Mon, 19 Oct 2009 06:01:22 +0000 (23:01 -0700)

Merge branch 'jk/maint-1.6.3-ls-files-no-ignore-cached'

* jk/maint-1.6.3-ls-files-no-ignore-cached:
ls-files: excludes should not impact tracked files

Merge branch 'jn/gitweb-show-size'Junio C Hamano Mon, 19 Oct 2009 06:01:14 +0000 (23:01 -0700)

Merge branch 'jn/gitweb-show-size'

* jn/gitweb-show-size:
gitweb: Add 'show-sizes' feature to show blob sizes in tree view

Merge branch 'jp/fetch-tag-match'Junio C Hamano Mon, 19 Oct 2009 06:01:09 +0000 (23:01 -0700)

Merge branch 'jp/fetch-tag-match'

* jp/fetch-tag-match:
fetch: Speed up fetch by rewriting find_non_local_tags

Merge branch 'jn/gitweb-patch'Junio C Hamano Mon, 19 Oct 2009 06:01:03 +0000 (23:01 -0700)

Merge branch 'jn/gitweb-patch'

* jn/gitweb-patch:
gitweb: Do not show 'patch' link for merge commits

Merge branch 'tf/doc-pt-br'Junio C Hamano Mon, 19 Oct 2009 06:00:58 +0000 (23:00 -0700)

Merge branch 'tf/doc-pt-br'

* tf/doc-pt-br:
Documentation: update pt-BR

Merge branch 'dk/blame-el'Junio C Hamano Mon, 19 Oct 2009 06:00:51 +0000 (23:00 -0700)

Merge branch 'dk/blame-el'

* dk/blame-el:
git-blame.el: Change how blame information is shown.

Merge branch 'mr/instaweb-cgid'Junio C Hamano Mon, 19 Oct 2009 06:00:45 +0000 (23:00 -0700)

Merge branch 'mr/instaweb-cgid'

* mr/instaweb-cgid:
instaweb: support mod_cgid for apache2

describe: load refnames before calling describe()René Scharfe Sat, 17 Oct 2009 16:30:48 +0000 (18:30 +0200)

describe: load refnames before calling describe()

Get rid of the static variable that was used to prevent loading all
the refnames multiple times by moving that code out of describe(),
simply making sure it is only run once that way.

Also change the error message that is shown in case no refnames are
found to not include a hash any more, as the error condition is not
specific to any particular revision.

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 Mon, 19 Oct 2009 05:58:53 +0000 (22:58 -0700)

Merge branch 'maint'

* maint:
git push: say that --tag can't be used with --all or --mirror in help text
git push: remove incomplete options list from help text
document push's new quiet option
Makefile: clean block-sha1/ directory instead of mozilla-sha1/

git push: say that --tag can't be used with --all or... Nanako Shiraishi Mon, 19 Oct 2009 03:57:01 +0000 (12:57 +0900)

git push: say that --tag can't be used with --all or --mirror in help text

This replaces an earlier patch by Björn Gustavsson,

Message-ID: <4AD75029.1010109@gmail.com>

Signed-off-by: しらいし ななこ <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git push: remove incomplete options list from help... Nanako Shiraishi Mon, 19 Oct 2009 02:54:12 +0000 (11:54 +0900)

git push: remove incomplete options list from help text

'git push -h' shows usage text with incomplete list of options and then
has a separate list of options that are supported. Imitate the way other
commands (I looked at 'git diff' for an example) show their options.

Signed-off-by: しらいし ななこ <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

document push's new quiet optionJeff King Mon, 19 Oct 2009 04:01:19 +0000 (00:01 -0400)

document push's new quiet option

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

Makefile: clean block-sha1/ directory instead of mozill... Carlos R. Mafra Sun, 11 Oct 2009 13:32:19 +0000 (15:32 +0200)

Makefile: clean block-sha1/ directory instead of mozilla-sha1/

'make clean' should remove the object files from block-sha1/
instead of the non-existent mozilla-sha1/ directory.

Signed-off-by: Carlos R. Mafra <crmafra@aei.mpg.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

DWIM "git checkout frotz" to "git checkout -b frotz... Junio C Hamano Sun, 18 Oct 2009 07:13:47 +0000 (00:13 -0700)

DWIM "git checkout frotz" to "git checkout -b frotz origin/frotz"

When 'frotz' is not a valid object name and not a tracked filename,
we used to complain and failed this command. When there is only
one remote that has 'frotz' as one of its tracking branches, we can
DWIM it as a request to create a local branch 'frotz' forking from
the matching remote tracking branch.

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

check_filename(): make verify_filename() callable witho... Junio C Hamano Sun, 18 Oct 2009 07:27:24 +0000 (00:27 -0700)

check_filename(): make verify_filename() callable without dying

Make it possible to invole the logic of verify_filename() to make sure the
pathname arguments are unambiguous without actually dying. The caller may
want to do something different.

Start 1.6.6 cycleJunio C Hamano Sat, 17 Oct 2009 07:11:43 +0000 (00:11 -0700)

Start 1.6.6 cycle

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

Merge branch 'jc/maint-blank-at-eof'Junio C Hamano Sat, 17 Oct 2009 07:11:03 +0000 (00:11 -0700)

Merge branch 'jc/maint-blank-at-eof'

* jc/maint-blank-at-eof:
diff -B: colour whitespace errors
diff.c: emit_add_line() takes only the rest of the line
diff.c: split emit_line() from the first char and the rest of the line
diff.c: shuffling code around
diff --whitespace: fix blank lines at end
core.whitespace: split trailing-space into blank-at-{eol,eof}
diff --color: color blank-at-eof
diff --whitespace=warn/error: fix blank-at-eof check
diff --whitespace=warn/error: obey blank-at-eof
diff.c: the builtin_diff() deals with only two-file comparison
apply --whitespace: warn blank but not necessarily empty lines at EOF
apply --whitespace=warn/error: diagnose blank at EOF
apply.c: split check_whitespace() into two
apply --whitespace=fix: detect new blank lines at eof correctly
apply --whitespace=fix: fix handling of blank lines at the eof

Merge branch 'maint'Junio C Hamano Sat, 17 Oct 2009 06:57:48 +0000 (23:57 -0700)

Merge branch 'maint'

* maint:
GIT 1.6.5.1
grep: do not segfault when -f is used

GIT 1.6.5.1 v1.6.5.1Junio C Hamano Sat, 17 Oct 2009 06:56:55 +0000 (23:56 -0700)

GIT 1.6.5.1

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

Merge branch 'maint-1.6.4' into maintJunio C Hamano Sat, 17 Oct 2009 06:47:58 +0000 (23:47 -0700)

Merge branch 'maint-1.6.4' into maint

* maint-1.6.4:
grep: do not segfault when -f is used

grep: do not segfault when -f is usedMatt Kraai Fri, 16 Oct 2009 14:13:25 +0000 (07:13 -0700)

grep: do not segfault when -f is used

"git grep" would segfault if its -f option was used because it would
try to use an uninitialized strbuf, so initialize the strbuf.

Thanks to Johannes Sixt <j.sixt@viscovery.net> for the help with the
test cases.

Signed-off-by: Matt Kraai <kraai@ftbfs.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

info/grafts: allow trailing whitespaces at the end... Junio C Hamano Wed, 14 Oct 2009 18:51:03 +0000 (11:51 -0700)

info/grafts: allow trailing whitespaces at the end of line

When creating an info/grafts under windows, one typically gets a CRLF file.
There is no good reason to forbid trailing CR at the end of the line (for
that matter, any trailing whitespaces); the code allowed only LF simply
because that was good enough for the platforms with LF line endings.

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

Merge branch 'pv/maint-add-p-no-exclude'Junio C Hamano Wed, 14 Oct 2009 23:13:20 +0000 (16:13 -0700)

Merge branch 'pv/maint-add-p-no-exclude'

* pv/maint-add-p-no-exclude:
git-add--interactive: never skip files included in index

Merge branch 'maint'Junio C Hamano Wed, 14 Oct 2009 23:10:37 +0000 (16:10 -0700)

Merge branch 'maint'

* maint:
sha1_file: Fix infinite loop when pack is corrupted

sha1_file: Fix infinite loop when pack is corruptedShawn O. Pearce Wed, 14 Oct 2009 14:23:51 +0000 (07:23 -0700)

sha1_file: Fix infinite loop when pack is corrupted

Some types of corruption to a pack may confuse the deflate stream
which stores an object. In Andy's reported case a 36 byte region
of the pack was overwritten, leading to what appeared to be a valid
deflate stream that was trying to produce a result larger than our
allocated output buffer could accept.

Z_BUF_ERROR is returned from inflate() if either the input buffer
needs more input bytes, or the output buffer has run out of space.
Previously we only considered the former case, as it meant we needed
to move the stream's input buffer to the next window in the pack.

We now abort the loop if inflate() returns Z_BUF_ERROR without
consuming the entire input buffer it was given, or has filled
the entire output buffer but has not yet returned Z_STREAM_END.
Either state is a clear indicator that this loop is not working
as expected, and should not continue.

This problem cannot occur with loose objects as we open the entire
loose object as a single buffer and treat Z_BUF_ERROR as an error.

Reported-by: Andy Isaacson <adi@hexapodia.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Acked-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Wed, 14 Oct 2009 08:54:51 +0000 (01:54 -0700)

Merge branch 'maint'

* maint:
change throughput display units with fast links
clone: Supply the right commit hash to post-checkout when -b is used
remote-curl: add missing initialization of argv0_path

change throughput display units with fast linksNicolas Pitre Wed, 14 Oct 2009 03:02:04 +0000 (23:02 -0400)

change throughput display units with fast links

Switch to MiB/s when the connection is fast enough (i.e. on a LAN).

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

clone: Supply the right commit hash to post-checkout... Björn Steinbrink Tue, 13 Oct 2009 22:11:09 +0000 (00:11 +0200)

clone: Supply the right commit hash to post-checkout when -b is used

When we use -b <branch>, we may checkout something else than what the
remote's HEAD references, but we still used remote_head to supply the
new ref value to the post-checkout hook, which is wrong.

So instead of using remote_head to find the value to be passed to the
post-checkout hook, we have to use our_head_points_at, which is always
correctly setup, even if -b is not used.

This also fixes a segfault when "clone -b <branch>" is used with a
remote repo that doesn't have a valid HEAD, as in such a case
remote_head is NULL, but we still tried to access it.

Reported-by: Devin Cofer <ranguvar@archlinux.us>
Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitweb: fix esc_paramGiuseppe Bilotta Tue, 13 Oct 2009 19:51:36 +0000 (21:51 +0200)

gitweb: fix esc_param

The custom CGI escaping done in esc_param failed to escape UTF-8
properly. Fix by using CGI::escape on each sequence of matched
characters instead of sprintf()ing a custom escaping for each byte.

Additionally, the space -> + escape was being escaped due to greedy
matching on the first substitution. Fix by adding space to the
list of characters not handled on the first substitution.

Finally, remove an unnecessary escaping of the + sign.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-curl: add missing initialization of argv0_pathJohannes Sixt Tue, 13 Oct 2009 10:53:28 +0000 (12:53 +0200)

remote-curl: add missing initialization of argv0_path

All programs, in particular also the stand-alone programs (non-builtins)
must call git_extract_argv0_path(argv[0]) in order to help builds that
derive the installation prefix at runtime, such as the MinGW build.
Without this call, the program segfaults (or raises an assertion
failure).

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

bisect reset: Allow resetting to any commit, not just... Anders Kaseorg Tue, 13 Oct 2009 21:02:24 +0000 (17:02 -0400)

bisect reset: Allow resetting to any commit, not just a branch

‘git bisect reset’ accepts an optional argument specifying a branch to
check out after cleaning up the bisection state. This lets you
specify an arbitrary commit.

In particular, this provides a way to clean the bisection state
without moving HEAD: ‘git bisect reset HEAD’. This may be useful if
you are not interested in the state before you began a bisect,
especially if checking out the old commit would be expensive and
invalidate most of your compiled tree.

Clarify the ‘git bisect reset’ documentation to explain this optional
argument, which was previously mentioned only in the usage message.

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

git: add --no-replace-objects option to disable replacingChristian Couder Mon, 12 Oct 2009 20:30:32 +0000 (22:30 +0200)

git: add --no-replace-objects option to disable replacing

Commit dae556b (environment: add global variable to disable replacement)
adds a variable to enable/disable replacement, and it is enabled by
default for most commands.

So there is no way to disable it for some commands, which is annoying
when we want to get information about a commit that has been replaced.

For example:

$ git cat-file -p N

would output information about the replacement commit if commit N is
replaced.

With the "--no-replace-objects" option that this patch adds it is
possible to get information about the original commit using:

$ git --no-replace-objects cat-file -p N

While at it, let's add some documentation about this new option in the
"git replace" man page too.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Tue, 13 Oct 2009 08:01:14 +0000 (01:01 -0700)

Merge branch 'maint'

* maint:
git-stash documentation: mention default options for 'list'

Merge branch 'maint-1.6.4' into maintJunio C Hamano Tue, 13 Oct 2009 08:01:04 +0000 (01:01 -0700)

Merge branch 'maint-1.6.4' into maint

* maint-1.6.4:
git-stash documentation: mention default options for 'list'

check-ref-format: simplify --print implementationJonathan Nieder Mon, 12 Oct 2009 05:33:01 +0000 (00:33 -0500)

check-ref-format: simplify --print implementation

normalize_path_copy() is a complicated function, but most of its
functionality will never apply to a ref name that has been checked
with check_ref_format().

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

git check-ref-format --printJunio C Hamano Mon, 12 Oct 2009 23:39:43 +0000 (16:39 -0700)

git check-ref-format --print

Tolerating empty path components in ref names means each ref does
not have a unique name. This creates difficulty for porcelains
that want to see if two branches are equal. Add a helper associating
to each ref a canonical name.

If a user asks a porcelain to create a ref "refs/heads//master",
the porcelain can run "git check-ref-format --print refs/heads//master"
and only deal with "refs/heads/master" from then on.

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

Documentation: describe check-ref-format --branchJonathan Nieder Mon, 12 Oct 2009 05:28:23 +0000 (00:28 -0500)

Documentation: describe check-ref-format --branch

Unless one already knew, it was not obvious what sort of shorthand
"git check-ref-format --branch" expands. Explain it.

The --branch argument is not optional.

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

Add tests for git check-ref-formatJonathan Nieder Mon, 12 Oct 2009 05:27:04 +0000 (00:27 -0500)

Add tests for git check-ref-format

The "git check-ref-format" command is a basic command various
porcelains rely on. Test its functionality to make sure it does
not unintentionally change.

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

Let --decorate show HEAD positionThomas Rast Mon, 12 Oct 2009 20:34:12 +0000 (22:34 +0200)

Let --decorate show HEAD position

'git log --graph --oneline --decorate --all' is a useful way to get a
general overview of the repository state, similar to 'gitk --all'.
Let it indicate the position of HEAD by loading that ref too, so that
the --decorate code can see it.

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

git-stash documentation: mention default options for... Miklos Vajna Mon, 12 Oct 2009 19:37:39 +0000 (21:37 +0200)

git-stash documentation: mention default options for 'list'

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

bash completion: complete refs for git-grepThomas Rast Mon, 12 Oct 2009 09:00:09 +0000 (11:00 +0200)

bash completion: complete refs for git-grep

Before the --, always attempt ref completion. This helps with
entering the <treeish> arguments to git-grep. As a bonus, you can
work around git-grep's current lack of --all by hitting M-*, ugly as
the resulting command line may be.

Strictly speaking, completing the regular expression argument (or
option argument) makes no sense. However, we cannot prevent _all_
completion (it will fall back to filenames), so we dispense with any
additional complication to detect whether the user still has to enter
a regular expression.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

ls-files: excludes should not impact tracked filesJeff King Mon, 12 Oct 2009 05:11:57 +0000 (01:11 -0400)

ls-files: excludes should not impact tracked files

In all parts of git, .gitignore and other exclude files
impact only how we treat untracked files; they should have
no effect on files listed in the index.

This behavior was originally implemented very early on in
9ff768e, but only for --exclude-from. Later, commit 63d285c
accidentally caused us to trigger the behavior for
--exclude-per-directory.

This patch totally ignores excludes for files found in the
index. This means we are reversing the original intent of
9ff768e, while at the same time fixing the accidental
behavior of 63d285c. This is a good thing, though, as the
way that 9ff768e behaved does not really make sense with the
way exclusions are used in modern git.

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

diff.c: stylefixFelipe Contreras Sun, 11 Oct 2009 20:46:11 +0000 (23:46 +0300)

diff.c: stylefix

Essentially; s/type* /type */ as per the coding guidelines.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: add 'git replace' to main git manpageSZEDER Gábor Sun, 11 Oct 2009 21:08:25 +0000 (23:08 +0200)

Documentation: add 'git replace' to main git manpage

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

unpack_callback(): use unpack_failed() consistentlyJunio C Hamano Sat, 19 Sep 2009 23:36:45 +0000 (16:36 -0700)

unpack_callback(): use unpack_failed() consistently

When unpack_index_entry() failed, consistently call unpack_failed(),
instead of silently returning -1.

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

unpack-trees: typofixJunio C Hamano Sun, 20 Sep 2009 00:26:16 +0000 (17:26 -0700)

unpack-trees: typofix

I am not good at subject-verb concordance.

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

diff-lib.c: fix misleading comments on oneway_diff()Junio C Hamano Fri, 18 Sep 2009 05:12:17 +0000 (22:12 -0700)

diff-lib.c: fix misleading comments on oneway_diff()

20a16eb (unpack_trees(): fix diff-index regression., 2008-03-10) adjusted
diff-index to the new world order since 34110cd (Make 'unpack_trees()'
have a separate source and destination index, 2008-03-06). Callbacks are
expected to return anything non-negative as "success", and instead of
reporting how many index entries they have processed, they are expected to
advance o->pos themselves. The code did so, but a stale comment was left
behind.

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

git-add--interactive: never skip files included in... Pauli Virtanen Sat, 10 Oct 2009 15:51:45 +0000 (18:51 +0300)

git-add--interactive: never skip files included in index

Make "git add -p" to not skip files that are in index even if they are
excluded (by .gitignore etc.). This fixes the contradictory behavior
that "git status" and "git commit -a" listed such files as modified, but
"git add -p FILENAME" ignored them.

Signed-off-by: Pauli Virtanen <pav@iki.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

GIT 1.6.5 v1.6.5Junio C Hamano Sat, 10 Oct 2009 07:05:19 +0000 (00:05 -0700)

GIT 1.6.5

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

git-svn: hide find_parent_branch output in double quiet... Simon Arlott Fri, 9 Oct 2009 12:21:13 +0000 (13:21 +0100)

git-svn: hide find_parent_branch output in double quiet mode

Hide find_parent_branch logging when -qq is specified.
This eliminates more unnecessary output when run from cron, e.g.:

Found possible branch point:
http://undernet-ircu.svn.sourceforge.net/svnroot/undernet-ircu/ircu2/trunk =>
http://undernet-ircu.svn.sourceforge.net/svnroot/undernet-ircu/ircu2/branches/authz,
1919
Found branch parent: (authz) ea061d76aea985dc0208d36fa5e0b2249b698557
Following parent with do_switch
Successfully followed parent

Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Simon Arlott <simon@fire.lp0.eu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: clone: clarify discussion of initial... Jonathan Nieder Fri, 9 Oct 2009 23:07:39 +0000 (18:07 -0500)

Documentation: clone: clarify discussion of initial branch

When saying the initial branch is equal to the currently active
remote branch, it is probably intended that the branch heads
point to the same commit. Maybe it would be more useful to a
new user to emphasize that the tree contents and history are the
same.

More important, probably, is that this new branch is set up so
that "git pull" merges changes from the corresponding remote
branch. The next paragraph addresses that directly. What the
reader needs to know to begin with is that (1) the initial branch
is your own; if you do not pull, it won't get updated, and that
(2) the initial branch starts out at the same commit as the
upstream.

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

git-send-email.perl: fold multiple entry "Cc:" and... Joe Perches Thu, 8 Oct 2009 17:03:26 +0000 (10:03 -0700)

git-send-email.perl: fold multiple entry "Cc:" and multiple single line "RCPT TO:"s

Some MTAs reject Cc: lines longer than 78 chars.
Avoid this by using the same join as "To:" ",\n\t"
so each subsequent Cc entry is on a new line.

RCPT TO: should have a single entry per line.
see: http://www.ietf.org/rfc/rfc2821.txt

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'rs/maint-archive-prefix'Junio C Hamano Fri, 9 Oct 2009 23:27:16 +0000 (16:27 -0700)

Merge branch 'rs/maint-archive-prefix'

* rs/maint-archive-prefix:
Git archive and trailing "/" in prefix

Merge branch 'fc/mutt-alias'Junio C Hamano Fri, 9 Oct 2009 23:26:49 +0000 (16:26 -0700)

Merge branch 'fc/mutt-alias'

* fc/mutt-alias:
send-email: fix mutt regex for grouped aliases

Merge branch 'ef/msvc-noreturn'Junio C Hamano Fri, 9 Oct 2009 23:26:35 +0000 (16:26 -0700)

Merge branch 'ef/msvc-noreturn'

* ef/msvc-noreturn:
add NORETURN_PTR for function pointers
increase portability of NORETURN declarations

Merge branch 'jk/reflog-date'Junio C Hamano Fri, 9 Oct 2009 23:26:11 +0000 (16:26 -0700)

Merge branch 'jk/reflog-date'

* jk/reflog-date:
improve reflog date/number heuristic

Merge branch 'ch/am-header'Junio C Hamano Fri, 9 Oct 2009 23:25:40 +0000 (16:25 -0700)

Merge branch 'ch/am-header'

* ch/am-header:
git-am: force egrep to use correct characters set
git-am: fixed patch_format detection according to RFC2822

bash: add support for 'git replace'Björn Gustavsson Fri, 9 Oct 2009 20:49:06 +0000 (22:49 +0200)

bash: add support for 'git replace'

Signed-off-by: Björn Gustavsson <bgustavsson@gmail.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: fix alias listings with newlinesStephen Boyd Fri, 9 Oct 2009 06:21:44 +0000 (23:21 -0700)

completion: fix alias listings with newlines

Aliases with newlines have been a problem since commit 56fc25f (Bash
completion support for remotes in .git/config., 2006-11-05). The chance
of the problem occurring has been slim at best, until commit 518ef8f
(completion: Replace config --list with --get-regexp, 2009-09-11)
removed the case statement introduced by commit 56fc25f. Before removing
the case statement, most aliases with newlines would work unless they
were specially crafted as follows

[alias]
foo = "log -1 --pretty='format:%s\nalias.error=broken'"

After removing the case statement, a more benign alias like

[alias]
whowhat = "log -1 --pretty='format:%an <%ae>\n%s'"
wont-complete = ...

would cause the completion to break badly.

For now, revert the removal of the case statement until someone comes up
with a better way to get keys from git-config.

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

completion: fix completion of git <TAB><TAB>Stephen Boyd Fri, 9 Oct 2009 06:21:43 +0000 (23:21 -0700)

completion: fix completion of git <TAB><TAB>

After commit 511a3fc (wrap git's main usage string., 2009-09-12), the
bash completion for git commands includes COMMAND and [ARGS] when it
shouldn't. Fix this by grepping more strictly for a line with git
commands. It's doubtful whether git will ever have commands starting
with anything besides numbers and letters so this should be fine. At
least by being stricter we'll know when we break the completion earlier.

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

import-tars: Add missing closing bracketIngmar Vanhassel Fri, 9 Oct 2009 12:08:31 +0000 (14:08 +0200)

import-tars: Add missing closing bracket

This fixes an obvious syntax error that snuck in commit 7e787953:

syntax error at /home/ingmar/bin//git-import-tars line 143, near "/^$/ { "
syntax error at /home/ingmar/bin//git-import-tars line 145, near "} else"
syntax error at /home/ingmar/bin//git-import-tars line 152, near "}"

Signed-off-by: Ingmar Vanhassel <ingmar@exherbo.org>
Acked-and-Tested-by: Peter Krefting <peter@softwolves.pp.se>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitweb: Do not show 'patch' link for merge commitsJakub Narebski Fri, 9 Oct 2009 12:26:44 +0000 (14:26 +0200)

gitweb: Do not show 'patch' link for merge commits

The 'patch' view is about generating text/plain patch that can be
given to "git am", and "git am" doesn't understand merges anyway.
Therefore link to 'patch' view should not be shown for merge commits.

Also call to git-format-patch inside the 'patch' action would fail
when 'patch' action is called for a merge commit, with "Reading
git-format-patch failed" text as 'patch' view body.

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

racy-git.txt: explain nsec problem in more detailJonathan Nieder Fri, 9 Oct 2009 10:25:54 +0000 (05:25 -0500)

racy-git.txt: explain nsec problem in more detail

Idealists may want USE_NSEC to be the default on Linux some day.
Point to a patch to better explain the requirements on
filesystem code for that to happen.

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

Documentation: clarify "working tree" definitionJonathan Nieder Fri, 9 Oct 2009 10:20:19 +0000 (05:20 -0500)

Documentation: clarify "working tree" definition

It is not necessarily obvious to a git novice what it means for a
filesystem tree to be equal to the HEAD. Spell it out.

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

Documentation: clarify branch creationJonathan Nieder Fri, 9 Oct 2009 18:34:08 +0000 (13:34 -0500)

Documentation: clarify branch creation

The documentation seems to assume that the starting point for a new
branch is the tip of an existing (ordinary) branch, but that is not
the most common case. More often, "git branch" is used to begin
a branch from a remote-tracking branch, a tag, or an interesting
commit (e.g. origin/pu^2). Clarify the language so it can apply
to these cases. Thanks to Sean Estabrooks for the wording.

Also add a pointer to the user's manual for the bewildered.

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

Documentation: branch: update --merged descriptionJonathan Nieder Fri, 9 Oct 2009 10:18:58 +0000 (05:18 -0500)

Documentation: branch: update --merged description

Update the documentation for --merged and --no-merged to explain
the meaning of the optional parameter introduced in commit 049716b
(branch --merged/--no-merged: allow specifying arbitrary commit,
2008-07-08).

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

Documentation: clarify mergeoptions descriptionJonathan Nieder Fri, 9 Oct 2009 18:51:14 +0000 (13:51 -0500)

Documentation: clarify mergeoptions description

Sounds better this way, at least to my ears. ("The syntax and
supported options of git merge" is a plural noun. "the same"
instead of "equal" sounds less technical and seems to convey
the meaning better here.)

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

Documentation: git fmt-merge-msg does not have to be... Jonathan Nieder Fri, 9 Oct 2009 10:16:15 +0000 (05:16 -0500)

Documentation: git fmt-merge-msg does not have to be a script

The fmt-merge-message builtin can be invoked as "git fmt-merge-msg" rather
than through the hard link in GIT_EXEC_PATH. Although this is unlikely to
confuse most script writers, it should not hurt to make the documentation
a little clearer anyway.

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