gitweb.git
Merge branch 'jc/maint-reflog-bad-timestamp' into maintJunio C Hamano Wed, 10 Feb 2010 21:02:43 +0000 (13:02 -0800)

Merge branch 'jc/maint-reflog-bad-timestamp' into maint

* jc/maint-reflog-bad-timestamp:
t0101: use a fixed timestamp when searching in the reflog
Update @{bogus.timestamp} fix not to die()
approxidate_careful() reports errorneous date string

Merge branch 'il/maint-xmallocz' into maintJunio C Hamano Wed, 10 Feb 2010 21:02:16 +0000 (13:02 -0800)

Merge branch 'il/maint-xmallocz' into maint

* il/maint-xmallocz:
Fix integer overflow in unpack_compressed_entry()
Fix integer overflow in unpack_sha1_rest()
Fix integer overflow in patch_delta()
Add xmallocz()

Merge branch 'jh/maint-config-file-prefix' into maintJunio C Hamano Wed, 10 Feb 2010 21:02:05 +0000 (13:02 -0800)

Merge branch 'jh/maint-config-file-prefix' into maint

* jh/maint-config-file-prefix:
builtin-config: Fix crash when using "-f <relative path>" from non-root dir

Merge branch 'nd/include-termios-for-osol' into maintJunio C Hamano Wed, 10 Feb 2010 21:01:55 +0000 (13:01 -0800)

Merge branch 'nd/include-termios-for-osol' into maint

* nd/include-termios-for-osol:
Add missing #include to support TIOCGWINSZ on Solaris

Merge branch 'jc/maint-1.6.1-checkout-m-custom-merge... Junio C Hamano Wed, 10 Feb 2010 20:54:15 +0000 (12:54 -0800)

Merge branch 'jc/maint-1.6.1-checkout-m-custom-merge' into maint

* jc/maint-1.6.1-checkout-m-custom-merge:
checkout -m path: fix recreating conflicts

Conflicts:
t/t7201-co.sh

Merge branch 'rs/maint-archive-match-pathspec' into... Junio C Hamano Wed, 10 Feb 2010 20:52:39 +0000 (12:52 -0800)

Merge branch 'rs/maint-archive-match-pathspec' into maint

* rs/maint-archive-match-pathspec:
archive: complain about path specs that don't match anything

check-ref-format documentation: fix enumeration mark-upJunio C Hamano Wed, 10 Feb 2010 18:18:55 +0000 (10:18 -0800)

check-ref-format documentation: fix enumeration mark-up

The last item in the enumerated refname rule was mistakenly made into
a sub-item of the 7th one. It should be the 8th one in the list on its
own.

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

Merge branch 'maint-1.6.5' into maintJunio C Hamano Tue, 9 Feb 2010 05:53:54 +0000 (21:53 -0800)

Merge branch 'maint-1.6.5' into maint

* maint-1.6.5:
blame: prevent a segv when -L given start > EOF

blame: prevent a segv when -L given start > EOFJay Soffian Tue, 9 Feb 2010 03:48:13 +0000 (22:48 -0500)

blame: prevent a segv when -L given start > EOF

blame would segv if given -L <lineno> with <lineno> past the end of the file.
While we're fixing the bug, add test cases for an invalid <start> when called
as -L <start>,<end> or -L<start>.

Signed-off-by: Jay Soffian <jaysoffian@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jc/maint-push-doc-status' into maintJunio C Hamano Tue, 9 Feb 2010 00:49:22 +0000 (16:49 -0800)

Merge branch 'jc/maint-push-doc-status' into maint

* jc/maint-push-doc-status:
git-push: document all the status flags used in the output

git-push: document all the status flags used in the... Junio C Hamano Tue, 9 Feb 2010 00:45:21 +0000 (16:45 -0800)

git-push: document all the status flags used in the output

We didn't talk about '-' (deletion), '*' (addition), nor '+' (forced).

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

Merge branch 'jc/maint-imap-config-parse' into maintJunio C Hamano Mon, 8 Feb 2010 23:09:19 +0000 (15:09 -0800)

Merge branch 'jc/maint-imap-config-parse' into maint

* jc/maint-imap-config-parse:
Fix parsing of imap.preformattedHTML and imap.sslverify

Fix parsing of imap.preformattedHTML and imap.sslverifyJunio C Hamano Sat, 6 Feb 2010 19:26:35 +0000 (11:26 -0800)

Fix parsing of imap.preformattedHTML and imap.sslverify

These two variables are boolean and can lack "= value" in the
configuration file. Do not reject such input early in the
parser callback function.

Also the key are downcased before being given to the callback,
so we should run strcmp() with keyword spelled in all-lowercase.

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

Merge branch 'jc/maint-doc-git-add-example' into maintJunio C Hamano Mon, 8 Feb 2010 20:13:56 +0000 (12:13 -0800)

Merge branch 'jc/maint-doc-git-add-example' into maint

* jc/maint-doc-git-add-example:
git-add documentation: Fix shell quoting example

git-add documentation: Fix shell quoting exampleJunio C Hamano Mon, 8 Feb 2010 20:12:41 +0000 (12:12 -0800)

git-add documentation: Fix shell quoting example

When 921177f (Documentation: improve "add", "pull" and "format-patch"
examples, 2008-05-07) converted this from enumeration header to displayed
text, it failed to adjust for the AsciiDoc's rule to quote backslashes.
In displayed text, backslash is shown verbatim, while in enumeration
header, we need to double it.

We have a similar construct in git-rm.txt documentation, and need to be
careful when somebody wants to update it to match the style of the "git
add" example.

Noticed by: Greg Bacon <gbacon@dbresearch.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

archive: simplify archive format guessingRené Scharfe Sun, 7 Feb 2010 23:30:20 +0000 (00:30 +0100)

archive: simplify archive format guessing

The code to guess an output archive's format consumed any --format
options and built a new one. Jonathan noticed that it does so in an
unsafe way, risking to overflow the static buffer fmt_opt.

Change the code to keep the existing --format options intact and to only
add a new one if a format could be guessed based on the output file name.
The new option is added as the first one, allowing the existing ones to
overrule it, i.e. explicit --format options given on the command line win
over format guesses, as before.

To simplify the code further, format_from_name() is changed to return the
full --format option, thus no potentially dangerous sprintf() calls are
needed any more.

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

Update git fsck --full short description to mention... Wesley J. Landaker Fri, 5 Feb 2010 19:58:50 +0000 (12:58 -0700)

Update git fsck --full short description to mention packs

The '--full' option to git fsck does two things:

1) Check objects in packs
2) Check alternate objects

This is documented in the git fsck manual; this patch reflects that in
the short git fsck option help message as well.

Signed-off-by: Wesley J. Landaker <wjl@icecavern.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jc/maint-limit-note-output' into maintJunio C Hamano Fri, 5 Feb 2010 18:59:05 +0000 (10:59 -0800)

Merge branch 'jc/maint-limit-note-output' into maint

* jc/maint-limit-note-output:
Fix "log --oneline" not to show notes
Fix "log" family not to be too agressive about showing notes

Merge branch 'sb/maint-octopus' into maint-1.6.5Junio C Hamano Mon, 1 Feb 2010 08:06:11 +0000 (00:06 -0800)

Merge branch 'sb/maint-octopus' into maint-1.6.5

* sb/maint-octopus:
octopus: remove dead code
octopus: reenable fast-forward merges
octopus: make merge process simpler to follow

Merge branch 'bg/maint-add-all-doc' into maint-1.6.5Junio C Hamano Mon, 1 Feb 2010 08:04:12 +0000 (00:04 -0800)

Merge branch 'bg/maint-add-all-doc' into maint-1.6.5

* bg/maint-add-all-doc:
git-rm doc: Describe how to sync index & work tree
git-add/rm doc: Consistently back-quote
Documentation: 'git add -A' can remove files

Merge branch 'maint-1.6.5' into maintJunio C Hamano Sat, 30 Jan 2010 07:36:13 +0000 (23:36 -0800)

Merge branch 'maint-1.6.5' into maint

* maint-1.6.5:
fix memcpy of overlapping area

fix memcpy of overlapping areaJeff King Fri, 29 Jan 2010 10:28:44 +0000 (05:28 -0500)

fix memcpy of overlapping area

Caught by valgrind in t5500, but it is pretty obvious from
reading the code that this is shifting elements of an array
to the left, which needs memmove.

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

bash: don't offer remote transport helpers as subcommandsSZEDER Gábor Fri, 22 Jan 2010 10:54:51 +0000 (11:54 +0100)

bash: don't offer remote transport helpers as subcommands

Since commits a2d725b7 (Use an external program to implement fetching
with curl, 2009-08-05) and c9e388bb (Make the
"traditionally-supported" URLs a special case, 2009-09-03) remote
transport helpers like 'remote-ftp' and 'remote-curl' are offered by the
completion script as available subcommands. Not good, since they are
helpers, therefore should not be offered, so filter them out.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t0101: use a fixed timestamp when searching in the... Junio C Hamano Wed, 27 Jan 2010 18:54:22 +0000 (10:54 -0800)

t0101: use a fixed timestamp when searching in the reflog

That will give us a better reproducibility during tests.

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

Update @{bogus.timestamp} fix not to die()Junio C Hamano Wed, 27 Jan 2010 18:53:09 +0000 (10:53 -0800)

Update @{bogus.timestamp} fix not to die()

The caller will say "It is not a valid object name" if it wants to, and
some callers may even try to see if it names an object and otherwise try to
see if it is a path.

Pointed out by Jeff King.

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

approxidate_careful() reports errorneous date stringJunio C Hamano Tue, 26 Jan 2010 19:58:00 +0000 (11:58 -0800)

approxidate_careful() reports errorneous date string

For a long time, the time based reflog syntax (e.g. master@{yesterday})
didn't complain when the "human readable" timestamp was misspelled, as
the underlying mechanism tried to be as lenient as possible. The funny
thing was that parsing of "@{now}" even relied on the fact that anything
not recognized by the machinery returned the current timestamp.

Introduce approxidate_careful() that takes an optional pointer to an
integer, that gets assigned 1 when the input does not make sense as a
timestamp.

As I am too lazy to fix all the callers that use approxidate(), most of
the callers do not take advantage of the error checking, but convert the
code to parse reflog to use it as a demonstration.

Tests are mostly from Jeff King.

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

Fix integer overflow in unpack_compressed_entry()Ilari Liusvaara Tue, 26 Jan 2010 18:24:15 +0000 (20:24 +0200)

Fix integer overflow in unpack_compressed_entry()

Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix integer overflow in unpack_sha1_rest()Ilari Liusvaara Tue, 26 Jan 2010 18:24:14 +0000 (20:24 +0200)

Fix integer overflow in unpack_sha1_rest()

[jc: later NUL termination by the caller becomes unnecessary]

Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix integer overflow in patch_delta()Ilari Liusvaara Tue, 26 Jan 2010 18:24:13 +0000 (20:24 +0200)

Fix integer overflow in patch_delta()

Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add xmallocz()Ilari Liusvaara Tue, 26 Jan 2010 18:24:12 +0000 (20:24 +0200)

Add xmallocz()

Add routine for allocating NUL-terminated memory block without risking
integer overflow in addition of +1 for NUL byte.

[jc: with suggestion from Bill Lear]

Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin-config: Fix crash when using "-f <relative... Johan Herland Tue, 26 Jan 2010 15:02:16 +0000 (16:02 +0100)

builtin-config: Fix crash when using "-f <relative path>" from non-root dir

When your current directory is not at the root of the working tree, and you
use the "-f" option with a relative path, the current code tries to read
from a wrong file, since argv[2] is now beyond the end of the rearranged
argument list.

This patch replaces the incorrect argv[2] with the variable holding the
given config file name.

The bug was introduced by d64ec16 (git config: reorganize to use parseopt).

[jc: added test]

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

Merge branch 'maint' of git://git.spearce.org/git-gui... Junio C Hamano Sun, 24 Jan 2010 19:16:26 +0000 (11:16 -0800)

Merge branch 'maint' of git://git.spearce.org/git-gui into maint

* 'maint' of git://git.spearce.org/git-gui:
git-gui: work from the .git dir
git-gui: Fix applying a line when all following lines are deletions
git-gui: Correct file_states when unstaging partly staged entry
git-gui: Fix gitk for branch whose name matches local file
git-gui: Keep repo_config(gui.recentrepos) and .gitconfig in sync
git-gui: handle really long error messages in updateindex.
git-gui: Add hotkeys for "Unstage from commit" and "Revert changes"
git-gui: Makefile: consolidate .FORCE-* targets

git-gui: work from the .git dirGiuseppe Bilotta Sat, 23 Jan 2010 10:03:36 +0000 (11:03 +0100)

git-gui: work from the .git dir

When git-gui is run from a .git dir, _gitdir would be set to "." by
rev-parse, something that confuses the worktree detection.

Fix by expanding the value of _gitdir to pwd in this special case.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git-gui: Fix applying a line when all following lines... Jeff Epler Tue, 8 Dec 2009 00:22:42 +0000 (18:22 -0600)

git-gui: Fix applying a line when all following lines are deletions

If a diff looked like:

@@
context
-del1
-del2

and you wanted to stage the deletion 'del1', the generated patch
wouldn't apply because it was missing the line 'del2' converted to
context, but this line was counted in the @@-line

Signed-off-by: Jeff Epler <jepler@unpythonic.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git-gui: Correct file_states when unstaging partly... Jens Lehmann Mon, 7 Dec 2009 20:35:59 +0000 (21:35 +0100)

git-gui: Correct file_states when unstaging partly staged entry

When unstaging a partly staged file or submodule, the file_states
list was not updated properly (unless unstaged linewise). Its
index_info part did not contain the former head_info as it should
have but kept its old value.

This seems not to have had any bad effects but diminishes the value
of the file_states list for future enhancements.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git-gui: Fix gitk for branch whose name matches local... Peter Krefting Thu, 21 Jan 2010 12:15:17 +0000 (13:15 +0100)

git-gui: Fix gitk for branch whose name matches local file

When trying to run gitk on a branch name whose name matches a local
file, it will toss an error saying that the name is ambiguous. Adding
a pair of dashes will make gitk parse the options to the left of
it as branch names. Since wish eats the first pair of dashes we
throw at it, we need to add a second one to ensure they get through.

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git-gui: Keep repo_config(gui.recentrepos) and .gitconf... Christopher Beelby Sat, 23 Jan 2010 22:37:17 +0000 (14:37 -0800)

git-gui: Keep repo_config(gui.recentrepos) and .gitconfig in sync

When the number of recent repo's gets to ten there can be a
situation where an item is removed from the .gitconfig file via
a call to git config --unset, but the internal representation of
that file (repo_config(gui.recentrepo)) is not updated. Then a
subsequent attempt to remove an item from the list fails because
git-gui attempts to call --unset on a value that has already
been removed. This leads to duplicates in the .gitconfig file,
which then also cause errors if the git-gui tries to --unset them
(rather than using --unset-all. --unset-all is not used because it
is not expected that duplicates should ever be allowed to exist.)

When loading the list of recent repositories (proc _get_recentrepos)
if a repo in the list is not considered a valid git reposoitory
then we should go ahead and remove it so it doesn't take up a slot
in the list (since we limit to 10 items). This will prevent a bunch
of invalid entries in the list (which are not shown) from making
valid entries dissapear off the list even when there are less than
ten valid entries.

See: http://code.google.com/p/msysgit/issues/detail?id=362
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git-gui: handle really long error messages in updateindex.Pat Thoyts Sun, 20 Dec 2009 02:02:03 +0000 (02:02 +0000)

git-gui: handle really long error messages in updateindex.

As reported to msysGit (bug #340) it is possible to get some very
long error messages when updating the index. The use of a label to
display this prevents scrolling the output. This patch replaces the
label with a scrollable text widget configured to look like a label.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

ignore duplicated slashes in make_relative_path()Junio C Hamano Fri, 22 Jan 2010 03:05:19 +0000 (19:05 -0800)

ignore duplicated slashes in make_relative_path()

The function takes two paths, an early part of abs is supposed to match
base; otherwise abs is not a path under base and the function returns the
full path of abs. The caller can easily confuse the implementation by
giving duplicated and needless slashes in these path arguments.

Credit for test script, motivation and initial patch goes to Thomas Rast.
A follow-up fix (squashed) is by Hannes.

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

merge-recursive: do not return NULL only to cause segfaultJunio C Hamano Fri, 22 Jan 2010 00:38:56 +0000 (16:38 -0800)

merge-recursive: do not return NULL only to cause segfault

merge-recursive calls write_tree_from_memory() to come up with a virtual
tree, with possible conflict markers inside the blob contents, while
merging multiple common ancestors down. It is a bug to call the function
with unmerged entries in the index, even if the merge to come up with the
common ancestor resulted in conflicts. Otherwise the result won't be
expressible as a tree object.

We _might_ want to suggest the user to set GIT_MERGE_VERBOSITY to 5 and
re-run the merge in the message. At least we will know which part of
process_renames() or process_entry() functions is not correctly handling
the unmerged paths, and it might help us diagnosing the issue.

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

retry request without query when info/refs?query failsTay Ray Chuan Thu, 21 Jan 2010 14:41:00 +0000 (22:41 +0800)

retry request without query when info/refs?query fails

When "info/refs" is a static file and not behind a CGI handler, some
servers may not handle a GET request for it with a query string
appended (eg. "?foo=bar") properly.

If such a request fails, retry it sans the query string. In addition,
ensure that the "smart" http protocol is not used (a service has to be
specified with "?service=<service name>" to be conformant).

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Reported-and-tested-by: Yaroslav Halchenko <debian@onerussian.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix "log --oneline" not to show notesJunio C Hamano Thu, 21 Jan 2010 22:57:41 +0000 (14:57 -0800)

Fix "log --oneline" not to show notes

This option should be treated pretty much the same as --format="%h %s".

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

Merge branch 'jc/maint-refresh-index-is-optional-for... Junio C Hamano Thu, 21 Jan 2010 04:25:11 +0000 (20:25 -0800)

Merge branch 'jc/maint-refresh-index-is-optional-for-status' into maint

* jc/maint-refresh-index-is-optional-for-status:
status: don't require the repository to be writable

Fix "log" family not to be too agressive about showing... Junio C Hamano Wed, 20 Jan 2010 21:59:36 +0000 (13:59 -0800)

Fix "log" family not to be too agressive about showing notes

Giving "Notes" information in the default output format of "log" and
"show" is a sensible progress (the user has asked for it by having the
notes), but for some commands (e.g. "format-patch") spewing notes into the
formatted commit log message without being asked is too aggressive.

Enable notes output only for "log", "show", "whatchanged" by default and
only when the user didn't ask any specific --pretty/--format from the
command line; users can explicitly override this default with --show-notes
and --no-notes option.

Parts of tests are taken from Jeff King's fix.

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

Git 1.6.6.1 v1.6.6.1Junio C Hamano Wed, 20 Jan 2010 21:29:21 +0000 (13:29 -0800)

Git 1.6.6.1

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

Merge branch 'bg/maint-remote-update-default' into... Junio C Hamano Wed, 20 Jan 2010 21:23:59 +0000 (13:23 -0800)

Merge branch 'bg/maint-remote-update-default' into maint

* bg/maint-remote-update-default:
Fix "git remote update" with remotes.defalt set

Merge branch 'sb/maint-octopus' into maintJunio C Hamano Wed, 20 Jan 2010 21:02:24 +0000 (13:02 -0800)

Merge branch 'sb/maint-octopus' into maint

* sb/maint-octopus:
octopus: remove dead code
octopus: reenable fast-forward merges
octopus: make merge process simpler to follow

Conflicts:
git-merge-octopus.sh

Merge branch 'bg/maint-add-all-doc' into maintJunio C Hamano Wed, 20 Jan 2010 21:01:33 +0000 (13:01 -0800)

Merge branch 'bg/maint-add-all-doc' into maint

* bg/maint-add-all-doc:
git-rm doc: Describe how to sync index & work tree
git-add/rm doc: Consistently back-quote
Documentation: 'git add -A' can remove files

Merge branch 'maint-1.6.5' into maintJunio C Hamano Wed, 20 Jan 2010 21:01:19 +0000 (13:01 -0800)

Merge branch 'maint-1.6.5' into maint

* maint-1.6.5:
Git 1.6.5.8
Fix mis-backport of t7002
bash completion: factor submodules into dirty state
reset: unbreak hard resets with GIT_WORK_TREE

Conflicts:
Documentation/git.txt
GIT-VERSION-GEN
RelNotes

Git 1.6.5.8 v1.6.5.8Junio C Hamano Wed, 20 Jan 2010 20:44:59 +0000 (12:44 -0800)

Git 1.6.5.8

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

Merge branch 'jk/maint-1.6.5-reset-hard' into maint... Junio C Hamano Wed, 20 Jan 2010 20:22:58 +0000 (12:22 -0800)

Merge branch 'jk/maint-1.6.5-reset-hard' into maint-1.6.5

* jk/maint-1.6.5-reset-hard:
reset: unbreak hard resets with GIT_WORK_TREE

Merge branch 'tr/maint-1.6.5-bash-prompt-show-submodule... Junio C Hamano Wed, 20 Jan 2010 20:22:54 +0000 (12:22 -0800)

Merge branch 'tr/maint-1.6.5-bash-prompt-show-submodule-changes' into maint-1.6.5

* tr/maint-1.6.5-bash-prompt-show-submodule-changes:
bash completion: factor submodules into dirty state

Merge branch 'dp/maint-1.6.5-fast-import-non-commit... Junio C Hamano Wed, 20 Jan 2010 20:17:24 +0000 (12:17 -0800)

Merge branch 'dp/maint-1.6.5-fast-import-non-commit-tag' into maint-1.6.5

* dp/maint-1.6.5-fast-import-non-commit-tag:
fast-import: tag may point to any object type

Merge branch 'jm/maint-1.6.5-grep-NUL-terminate' into... Junio C Hamano Wed, 20 Jan 2010 20:16:46 +0000 (12:16 -0800)

Merge branch 'jm/maint-1.6.5-grep-NUL-terminate' into maint-1.6.5

* jm/maint-1.6.5-grep-NUL-terminate:
grep: NUL terminate input from a file

status: don't require the repository to be writableJunio C Hamano Wed, 20 Jan 2010 01:10:35 +0000 (17:10 -0800)

status: don't require the repository to be writable

We need to update the index before hooks run when actually making a
commit, but we shouldn't have to write the index when running "status".
If we can, then we have already spent cycles to refresh the index and
it is a waste not to write it out, but it is not a disaster if we cannot
write it out. The main reason the user is running "git status" is to get
the "status", and refreshing the index is a mere side effect that we can
do without.

Discovery and initial attempted fix by Dscho.

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

bisect: fix singular/plural grammar nitDavid Ripton Tue, 19 Jan 2010 15:13:33 +0000 (07:13 -0800)

bisect: fix singular/plural grammar nit

Remove the trailing 's' from "revisions" and "steps" when there is
only one.

Signed-off-by: David Ripton <dripton@ripton.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint-1.6.4' into maint-1.6.5Junio C Hamano Tue, 19 Jan 2010 05:37:12 +0000 (21:37 -0800)

Merge branch 'maint-1.6.4' into maint-1.6.5

* maint-1.6.4:
Fix mis-backport of t7002
base85: Make the code more obvious instead of explaining the non-obvious
base85: encode_85() does not use the decode table
base85 debug code: Fix length byte calculation
checkout -m: do not try to fall back to --merge from an unborn branch
branch: die explicitly why when calling "git branch [-a|-r] branchname".
textconv: stop leaking file descriptors
commit: --cleanup is a message option
git count-objects: handle packs bigger than 4G
t7102: make the test fail if one of its check fails

Merge branch 'maint-1.6.3' into maint-1.6.4Junio C Hamano Tue, 19 Jan 2010 05:37:06 +0000 (21:37 -0800)

Merge branch 'maint-1.6.3' into maint-1.6.4

* maint-1.6.3:
base85: Make the code more obvious instead of explaining the non-obvious
base85: encode_85() does not use the decode table
base85 debug code: Fix length byte calculation
checkout -m: do not try to fall back to --merge from an unborn branch
branch: die explicitly why when calling "git branch [-a|-r] branchname".
textconv: stop leaking file descriptors
commit: --cleanup is a message option
git count-objects: handle packs bigger than 4G
t7102: make the test fail if one of its check fails

Conflicts:
builtin-commit.c

Merge branch 'maint-1.6.2' into maint-1.6.3Junio C Hamano Tue, 19 Jan 2010 05:29:47 +0000 (21:29 -0800)

Merge branch 'maint-1.6.2' into maint-1.6.3

* maint-1.6.2:
base85: Make the code more obvious instead of explaining the non-obvious
base85: encode_85() does not use the decode table
base85 debug code: Fix length byte calculation
checkout -m: do not try to fall back to --merge from an unborn branch
branch: die explicitly why when calling "git branch [-a|-r] branchname".
textconv: stop leaking file descriptors
commit: --cleanup is a message option
git count-objects: handle packs bigger than 4G
t7102: make the test fail if one of its check fails

Conflicts:
diff.c

Merge commit 'v1.6.4.4-8-g8de6518' into maint-1.6.4Junio C Hamano Tue, 19 Jan 2010 05:18:41 +0000 (21:18 -0800)

Merge commit 'v1.6.4.4-8-g8de6518' into maint-1.6.4

* commit 'v1.6.4.4-8-g8de6518':
Fix mis-backport of t7002

Fix mis-backport of t7002Junio C Hamano Tue, 19 Jan 2010 05:14:41 +0000 (21:14 -0800)

Fix mis-backport of t7002

The original patch that became cfe370c (grep: do not segfault when -f is
used, 2009-10-16), was made against "maint" or newer branch back then, but
the fix addressed the issue that was present as far as in 1.6.4 series.

The maintainer backported the patch to the 1.6.4 maintenance branch, but
failed to notice that the new tests assumed the setup done by the script
in "maint", which did quite a lot more than the same test script in 1.6.4
series, and the output didn't match the expected result.

This should fix it.

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

Update draft release notes to 1.6.6.1Junio C Hamano Tue, 19 Jan 2010 02:16:15 +0000 (18:16 -0800)

Update draft release notes to 1.6.6.1

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

Merge branch 'dp/maint-1.6.5-fast-import-non-commit... Junio C Hamano Tue, 19 Jan 2010 02:15:12 +0000 (18:15 -0800)

Merge branch 'dp/maint-1.6.5-fast-import-non-commit-tag' into maint

* dp/maint-1.6.5-fast-import-non-commit-tag:
fast-import: tag may point to any object type

Merge branch 'jm/maint-1.6.5-grep-NUL-terminate' into... Junio C Hamano Tue, 19 Jan 2010 01:03:34 +0000 (17:03 -0800)

Merge branch 'jm/maint-1.6.5-grep-NUL-terminate' into maint

* jm/maint-1.6.5-grep-NUL-terminate:
grep: NUL terminate input from a file

grep: NUL terminate input from a fileJim Meyering Mon, 18 Jan 2010 21:55:07 +0000 (22:55 +0100)

grep: NUL terminate input from a file

Internally "git grep" runs regexec(3) that expects its input string
to be NUL terminated. When searching inside blob data, read_sha1_file()
automatically gives such a buffer, but builtin-grep.c forgot to put
the NUL at the end, even though it allocated enough space for it.

Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix uninitialized variable in get_refs_via_rsync().Richard Weinberger Thu, 14 Jan 2010 23:28:59 +0000 (00:28 +0100)

Fix uninitialized variable in get_refs_via_rsync().

This fixes a crash when cloning via rsync://.

Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Document git-blame triple -C optionRamkumar Ramachandra Fri, 8 Jan 2010 18:48:07 +0000 (00:18 +0530)

Document git-blame triple -C option

Lift the explanation of -CCC option in the source to the documentation.

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

fast-import: tag may point to any object typeDmitry Potapov Thu, 14 Jan 2010 04:44:19 +0000 (07:44 +0300)

fast-import: tag may point to any object type

If you tried to export the official git repository, and then to import it
back then git-fast-import would die complaining that "Mark :1 not a commit".

Accordingly to a generated crash file, Mark 1 is not a commit but a blob,
which is pointed by junio-gpg-pub tag. Because git-tag allows to create such
tags, git-fast-import should import them.

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

remote-curl: Fix Accept header for smart HTTP connectionsShawn O. Pearce Tue, 12 Jan 2010 17:54:04 +0000 (09:54 -0800)

remote-curl: Fix Accept header for smart HTTP connections

We actually expect to see an application/x-git-upload-pack-result
but we lied and said we Accept *-response. This was a typo on my
part when I was writing the code.

Fortunately the wrong Accept header had no real impact, as the
deployed git-http-backend servers were not testing the Accept
header before they returned their content.

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

grep: -L should show empty filesJunio C Hamano Tue, 12 Jan 2010 08:22:23 +0000 (00:22 -0800)

grep: -L should show empty files

The -L (--files-without-match) option is supposed to show paths that
produced no matches. When running the internal grep on work tree files,
however, we had an optimization to just return on zero-sized files,
without doing anything.

This optimization doesn't matter too much in practice (a tracked empty
file must be rare, or there is something wrong with your project); to
produce results consistent with GNU grep, we should stop the optimization
and show empty files as not having the given pattern.

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

rebase--interactive: Ignore comments and blank lines... Michael Haggerty Mon, 11 Jan 2010 15:56:45 +0000 (16:56 +0100)

rebase--interactive: Ignore comments and blank lines in peek_next_command

Previously, blank lines and/or comments within a series of
squash/fixup commands would confuse "git rebase -i" into thinking that
the series was finished. It would therefore require the user to edit
the commit message for the squash/fixup commits seen so far. Then,
after continuing, it would ask the user to edit the commit message
again.

Ignore comments and blank lines within a group of squash/fixup
commands, allowing them to be processed in one go.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add missing #include to support TIOCGWINSZ on SolarisNguyễn Thái Ngọc Duy Mon, 11 Jan 2010 10:41:01 +0000 (17:41 +0700)

Add missing #include to support TIOCGWINSZ on Solaris

On Linux TIOCGWINSZ is defined somehwere in ioctl.h, which is already
included. On Solaris we also need to include termios.h. Without this
term_columns() in help.c will think TIOCGWINSZ is not supported and
always return 80 columns.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint-1.6.2' into maintJunio C Hamano Sun, 10 Jan 2010 08:51:54 +0000 (00:51 -0800)

Merge branch 'maint-1.6.2' into maint

* maint-1.6.2:
base85: Make the code more obvious instead of explaining the non-obvious
base85: encode_85() does not use the decode table
base85 debug code: Fix length byte calculation
checkout -m: do not try to fall back to --merge from an unborn branch

Conflicts:
diff.c

Merge branch 'maint-1.6.1' into maint-1.6.2Junio C Hamano Sun, 10 Jan 2010 08:49:47 +0000 (00:49 -0800)

Merge branch 'maint-1.6.1' into maint-1.6.2

* maint-1.6.1:
base85: Make the code more obvious instead of explaining the non-obvious
base85: encode_85() does not use the decode table
base85 debug code: Fix length byte calculation
checkout -m: do not try to fall back to --merge from an unborn branch
branch: die explicitly why when calling "git branch [-a|-r] branchname".
textconv: stop leaking file descriptors
commit: --cleanup is a message option
git count-objects: handle packs bigger than 4G
t7102: make the test fail if one of its check fails

Conflicts:
diff.c

Merge branch 'maint-1.6.0' into maint-1.6.1Junio C Hamano Sun, 10 Jan 2010 08:48:47 +0000 (00:48 -0800)

Merge branch 'maint-1.6.0' into maint-1.6.1

* maint-1.6.0:
base85: Make the code more obvious instead of explaining the non-obvious
base85: encode_85() does not use the decode table
base85 debug code: Fix length byte calculation
checkout -m: do not try to fall back to --merge from an unborn branch
branch: die explicitly why when calling "git branch [-a|-r] branchname".

base85: Make the code more obvious instead of explainin... Andreas Gruenbacher Fri, 8 Jan 2010 13:40:00 +0000 (14:40 +0100)

base85: Make the code more obvious instead of explaining the non-obvious

Here is another cleanup ...

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

base85: encode_85() does not use the decode tableAndreas Gruenbacher Fri, 8 Jan 2010 16:22:18 +0000 (17:22 +0100)

base85: encode_85() does not use the decode table

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

base85 debug code: Fix length byte calculationAndreas Gruenbacher Fri, 8 Jan 2010 13:39:58 +0000 (14:39 +0100)

base85 debug code: Fix length byte calculation

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: tiny git config manual tweaksJonathan Nieder Sun, 10 Jan 2010 03:01:21 +0000 (21:01 -0600)

Documentation: tiny git config manual tweaks

As a verb, 'setup' is spelled 'set up'. “diff commands such as
diff-files” scans better without a comma. Clarify that shallow
and deep are special non-boolean values for format.thread rather
than boolean values with some other name.

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

Documentation: git gc packs refs by default nowJonathan Nieder Sun, 10 Jan 2010 02:59:41 +0000 (20:59 -0600)

Documentation: git gc packs refs by default now

In commit 56752391 (Make "git gc" pack all refs by default,
2007-05-24), 'git gc' was changed to run pack-refs by default

Versions before v1.5.1.2 cannot clone repos with packed refs over
http, and versions before v1.4.4 cannot handled packed refs at
all, but more recent git should have no problems. Try to make
this more clear in the git-config manual.

The analagous passage in git-gc.txt was updated already with
commit fe2128a (Change git-gc documentation to reflect
gc.packrefs implementation., 2008-01-09).

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

git-rm doc: Describe how to sync index & work treeBjörn Gustavsson Mon, 7 Dec 2009 18:35:42 +0000 (19:35 +0100)

git-rm doc: Describe how to sync index & work tree

Newcomers to git that want to remove from the index only the
files that have disappeared from the working tree will probably
look for a way to do that in the documentation for 'git rm'.

Therefore, describe how that can be done (even though it involves
other commands than 'git rm'). Based on a suggestion by Junio,
but re-arranged and rewritten to better fit into the style of
command reference.

While at it, change a single occurrence of "work tree" to "working
tree" for consistency.

Signed-off-by: Björn Gustavsson <bgustavsson@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

checkout -m: do not try to fall back to --merge from... Junio C Hamano Thu, 7 Jan 2010 07:51:47 +0000 (23:51 -0800)

checkout -m: do not try to fall back to --merge from an unborn branch

If switching from an unborn branch (= empty tree) to a valid commit failed
without -m, it would fail with -m option as well.

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

git-gui: Add hotkeys for "Unstage from commit" and... Vitaly _Vi Shukela Thu, 31 Dec 2009 13:32:53 +0000 (15:32 +0200)

git-gui: Add hotkeys for "Unstage from commit" and "Revert changes"

Signed-off-by: Vitaly _Vi Shukela <public_vi@tut.by>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git-gui: Makefile: consolidate .FORCE-* targetsJonathan Nieder Wed, 6 Jan 2010 08:16:38 +0000 (02:16 -0600)

git-gui: Makefile: consolidate .FORCE-* targets

Providing multiple targets to force a rebuild is unnecessary
complication.

Avoid using a name that could conflict with future special
targets in GNU make (a leading period followed by uppercase
letters).

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

checkout -m path: fix recreating conflictsJunio C Hamano Wed, 6 Jan 2010 20:32:02 +0000 (12:32 -0800)

checkout -m path: fix recreating conflicts

We should tell ll_merge() that the 3-way merge between stages #2 and #3 is
an outermost merge, not a virtual-ancestor creation.

Back when this code was originally written, users couldn't write custom
merge drivers easily, so the bug didn't matter, but these days it does.

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

stash: mention --patch in usage string.Matthieu Moy Sat, 2 Jan 2010 16:35:32 +0000 (17:35 +0100)

stash: mention --patch in usage string.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint-1.6.0' into maintJunio C Hamano Thu, 31 Dec 2009 23:00:14 +0000 (15:00 -0800)

Merge branch 'maint-1.6.0' into maint

* maint-1.6.0:
branch: die explicitly why when calling "git branch [-a|-r] branchname".

branch: die explicitly why when calling "git branch... Matthieu Moy Wed, 30 Dec 2009 14:45:31 +0000 (15:45 +0100)

branch: die explicitly why when calling "git branch [-a|-r] branchname".

The -a and -r options used to be silently ignored in such a command.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fast-import: Document author/committer/tagger name... Shawn O. Pearce Wed, 30 Dec 2009 15:03:48 +0000 (07:03 -0800)

fast-import: Document author/committer/tagger name is optional

The fast-import parser does not validate that the author, committer
or tagger name component contains both a name and an email address.
Therefore the name component has always been optional. Correct the
documentation to match the implementation.

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

SubmittingPatches: hints to know the status of a submit... Matthieu Moy Wed, 30 Dec 2009 14:51:22 +0000 (15:51 +0100)

SubmittingPatches: hints to know the status of a submitted patch.

"What happened to my patch" is pretty much a FAQ on the Git mailing list,
it deserves a few paragraphs in SubmittingPatches...

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bash completion: factor submodules into dirty stateThomas Rast Thu, 31 Dec 2009 11:48:41 +0000 (12:48 +0100)

bash completion: factor submodules into dirty state

In the implementation of GIT_PS1_SHOWDIRTYSTATE in 738a94a (bash:
offer to show (un)staged changes, 2009-02-03), I cut&pasted the
git-diff invocations from dirty-worktree checks elsewhere, carrying
along the --ignore-submodules option.

As pointed out by Kevin Ballard, this doesn't really make sense: to
the _user_, a changed submodule counts towards uncommitted changes.

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

Fix "git remote update" with remotes.defalt setBjörn Gustavsson Thu, 31 Dec 2009 09:43:17 +0000 (10:43 +0100)

Fix "git remote update" with remotes.defalt set

Starting from commit 8db35596, "git remote update" (with no
group name given) will fail with the following message if
remotes.default has been set in the config file:

fatal: 'default' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

The problem is that the --multiple option is not passed to
"git fetch" if no remote or group name is given on the command
line. Fix the problem by always passing the --multiple
option to "git fetch" (which actually simplifies the code).

Reported-by: YONETANI Tomokazu
Signed-off-by: Björn Gustavsson <bgustavsson@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint-1.6.1' into maintJunio C Hamano Wed, 30 Dec 2009 09:24:12 +0000 (01:24 -0800)

Merge branch 'maint-1.6.1' into maint

* maint-1.6.1:
textconv: stop leaking file descriptors
commit: --cleanup is a message option
git count-objects: handle packs bigger than 4G
t7102: make the test fail if one of its check fails

Conflicts:
builtin-commit.c
diff.c

textconv: stop leaking file descriptorsJeff King Wed, 30 Dec 2009 09:02:53 +0000 (04:02 -0500)

textconv: stop leaking file descriptors

We read the output from textconv helpers over a pipe, but we
never actually closed our end of the pipe after using it.

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

reset: unbreak hard resets with GIT_WORK_TREEJeff King Wed, 30 Dec 2009 08:47:03 +0000 (03:47 -0500)

reset: unbreak hard resets with GIT_WORK_TREE

Commit 952dfc6 tried to tighten the safety valves for doing
a "reset --hard" in a bare repository or outside the work
tree, but accidentally broke the case for GIT_WORK_TREE.
This patch unbreaks it.

Most git commands which need a work tree simply use
NEED_WORK_TREE in git.c to die before they get to their
cmd_* function. Reset, however, only needs a work tree in
some cases, and so must handle the work tree itself. The
error that 952dfc6 made was to simply forbid certain
operations if the work tree was not set up; instead, we need
to do the same thing that NEED_WORK_TREE does, which is to
call setup_work_tree(). We no longer have to worry about dying
in the non-worktree case, as setup_work_tree handles that
for us.

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

archive: complain about path specs that don't match... René Scharfe Sat, 12 Dec 2009 15:00:41 +0000 (16:00 +0100)

archive: complain about path specs that don't match anything

Verify that all path specs match at least one path in the specified
tree and reject those that don't.

This would have made the bug fixed by 782a0005 easier to find.

This implementation is simple to the point of being stupid. It walks
the full tree for each path spec until it matches something. It's short
and seems to be fast enough, though.

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

Merge branch 'maint-1.6.0' into maint-1.6.1Junio C Hamano Wed, 30 Dec 2009 04:16:34 +0000 (20:16 -0800)

Merge branch 'maint-1.6.0' into maint-1.6.1

* maint-1.6.0:
commit: --cleanup is a message option
t7102: make the test fail if one of its check fails

commit: --cleanup is a message optionGreg Price Tue, 29 Dec 2009 21:54:49 +0000 (16:54 -0500)

commit: --cleanup is a message option

In the usage message for "git commit", the --cleanup option appeared
at the end, as one of the "contents options":

usage: git commit [options] [--] <filepattern>...
...
Commit message options
...
Commit contents options
...
--allow-empty ok to record an empty change
--cleanup <default> how to strip spaces and #comments from message

This is confusing, in part because it makes it ambiguous whether
--allow-empty, just above, refers to an empty diff or an empty message.

Move --cleanup into the 'message options' group. Also add a pair of
comments to prevent similar oversights in the future.

Signed-off-by: Greg Price <price@ksplice.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git count-objects: handle packs bigger than 4GAndreas Schwab Tue, 29 Dec 2009 19:09:15 +0000 (20:09 +0100)

git count-objects: handle packs bigger than 4G

Use off_t to count sizes of packs and objects to avoid overflow after
4Gb.

Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7102: make the test fail if one of its check failsNguyễn Thái Ngọc Duy Tue, 29 Dec 2009 08:13:18 +0000 (15:13 +0700)

t7102: make the test fail if one of its check fails

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>