gitweb.git
fast-import: fix option parser for no-arg optionsSverre Rabbelier Thu, 5 May 2011 18:56:00 +0000 (20:56 +0200)

fast-import: fix option parser for no-arg options

While refactoring the options parser in bc3c79a (fast-import: add
(non-)relative-marks feature, 2009-12-04), it was made too lenient
for options that take no argument, fix that.

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

git-fast-import.txt: --relative-marks takes no parameterMichael J Gruber Thu, 5 May 2011 09:13:38 +0000 (11:13 +0200)

git-fast-import.txt: --relative-marks takes no parameter

Remove spurious "=" after --relative-marks.

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

shell: add missing initialization of argv0_pathDima Sharov Thu, 5 May 2011 06:40:17 +0000 (09:40 +0300)

shell: add missing initialization of argv0_path

According to c6dfb39 (remote-curl: add missing initialization of
argv0_path, 2009-10-13), 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. Without this call,
the program segfaults (or raises an assertion failure).

Signed-off-by: Dima Sharov <git.avalakvista@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.7.5.1 v1.7.5.1Junio C Hamano Wed, 4 May 2011 22:47:40 +0000 (15:47 -0700)

Git 1.7.5.1

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

Merge branch 'jh/dirstat' into maintJunio C Hamano Wed, 4 May 2011 21:59:07 +0000 (14:59 -0700)

Merge branch 'jh/dirstat' into maint

* jh/dirstat:
--dirstat: In case of renames, use target filename instead of source filename
Teach --dirstat not to completely ignore rearranged lines within a file
--dirstat-by-file: Make it faster and more correct
--dirstat: Describe non-obvious differences relative to --stat or regular diff

Merge branch 'sp/maint-clear-postfields' into maintJunio C Hamano Wed, 4 May 2011 21:58:56 +0000 (14:58 -0700)

Merge branch 'sp/maint-clear-postfields' into maint

* sp/maint-clear-postfields:
http: clear POSTFIELDS when initializing a slot

Merge branch 'jk/maint-stash-oob' into maintJunio C Hamano Wed, 4 May 2011 21:58:42 +0000 (14:58 -0700)

Merge branch 'jk/maint-stash-oob' into maint

* jk/maint-stash-oob:
stash: fix false positive in the invalid ref test.
stash: fix accidental apply of non-existent stashes

Conflicts:
t/t3903-stash.sh

Merge branch 'jk/maint-upload-pack-shallow' into maintJunio C Hamano Wed, 4 May 2011 21:58:13 +0000 (14:58 -0700)

Merge branch 'jk/maint-upload-pack-shallow' into maint

* jk/maint-upload-pack-shallow:
upload-pack: start pack-objects before async rev-list

Merge branch 'dm/stash-k-i-p' into maintJunio C Hamano Wed, 4 May 2011 21:57:49 +0000 (14:57 -0700)

Merge branch 'dm/stash-k-i-p' into maint

* dm/stash-k-i-p:
stash: ensure --no-keep-index and --patch can be used in any order
stash: add two more tests for --no-keep-index

Merge branch 'jc/pack-objects-bigfile' into maintJunio C Hamano Wed, 4 May 2011 21:57:38 +0000 (14:57 -0700)

Merge branch 'jc/pack-objects-bigfile' into maint

* jc/pack-objects-bigfile:
Teach core.bigfilethreashold to pack-objects

Merge branch 'mg/reflog-with-options' into maintJunio C Hamano Wed, 4 May 2011 21:57:33 +0000 (14:57 -0700)

Merge branch 'mg/reflog-with-options' into maint

* mg/reflog-with-options:
reflog: fix overriding of command line options
t/t1411: test reflog with formats
builtin/log.c: separate default and setup of cmd_log_init()

Merge branch 'jk/stash-loosen-safety' into maintJunio C Hamano Wed, 4 May 2011 21:57:15 +0000 (14:57 -0700)

Merge branch 'jk/stash-loosen-safety' into maint

* jk/stash-loosen-safety:
stash: drop dirty worktree check on apply

Merge branch 'ar/clean-rmdir-empty' into maintJunio C Hamano Wed, 4 May 2011 21:57:06 +0000 (14:57 -0700)

Merge branch 'ar/clean-rmdir-empty' into maint

* ar/clean-rmdir-empty:
clean: unreadable directory may still be rmdir-able if it is empty

Merge branch 'mg/sha1-path-advise' into maintJunio C Hamano Wed, 4 May 2011 21:56:51 +0000 (14:56 -0700)

Merge branch 'mg/sha1-path-advise' into maint

* mg/sha1-path-advise:
sha1_name: Suggest commit:./file for path in subdir
t1506: factor out test for "Did you mean..."

git-add.txt: document 'add.ignoreErrors'Valentin Haenel Wed, 4 May 2011 19:58:17 +0000 (21:58 +0200)

git-add.txt: document 'add.ignoreErrors'

Signed-off-by: Valentin Haenel <valentin.haenel@gmx.de>
Noticed-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Start 1.7.5.1 maintenance trackJunio C Hamano Fri, 29 Apr 2011 18:47:10 +0000 (11:47 -0700)

Start 1.7.5.1 maintenance track

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

Merge branch 'mg/x-years-12-months' into maintJunio C Hamano Fri, 29 Apr 2011 18:43:18 +0000 (11:43 -0700)

Merge branch 'mg/x-years-12-months' into maint

* mg/x-years-12-months:
date: avoid "X years, 12 months" in relative dates

git-send-email: fix missing space in error messageSylvain Rabot Fri, 29 Apr 2011 18:23:24 +0000 (20:23 +0200)

git-send-email: fix missing space in error message

When the command cannot make a connection to the SMTP server the error
message to diagnose the broken configuration is issued. However, when an
optional smtp-server-port is given and needs to be reported, the message
lacked a space between "hello=<smtp-domain>" and "port=<smtp-server-port>".

Signed-off-by: Sylvain Rabot <sylvain@abstraction.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

http: clear POSTFIELDS when initializing a slotJunio C Hamano Tue, 26 Apr 2011 15:04:49 +0000 (08:04 -0700)

http: clear POSTFIELDS when initializing a slot

After posting a short request using CURLOPT_POSTFIELDS, if the slot
is reused for posting a large payload, the slot ends up having both
POSTFIELDS (which now points at a random garbage) and READFUNCTION,
in which case the curl library tries to use the stale POSTFIELDS.

Clear it as part of the general slot initialization in get_active_slot().

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

Git 1.7.5 v1.7.5Junio C Hamano Sun, 24 Apr 2011 06:36:32 +0000 (23:36 -0700)

Git 1.7.5

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

date: avoid "X years, 12 months" in relative datesMichael J Gruber Wed, 20 Apr 2011 09:12:11 +0000 (11:12 +0200)

date: avoid "X years, 12 months" in relative dates

When relative dates are more than about a year ago, we start
writing them as "Y years, M months". At the point where we
calculate Y and M, we have the time delta specified as a
number of days. We calculate these integers as:

Y = days / 365
M = (days % 365 + 15) / 30

This rounds days in the latter half of a month up to the
nearest month, so that day 16 is "1 month" (or day 381 is "1
year, 1 month").

We don't round the year at all, though, meaning we can end
up with "1 year, 12 months", which is silly; it should just
be "2 years".

Implement this differently with months of size

onemonth = 365/12

so that

totalmonths = (long)( (days + onemonth/2)/onemonth )
years = totalmonths / 12
months = totalmonths % 12

In order to do this without floats, we write the first formula as

totalmonths = (days*12*2 + 365) / (365*2)

Tests and inspiration by Jeff King.

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

Git 1.7.5-rc3 v1.7.5-rc3Junio C Hamano Tue, 19 Apr 2011 18:51:00 +0000 (11:51 -0700)

Git 1.7.5-rc3

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

Sync with 1.7.4.5Junio C Hamano Tue, 19 Apr 2011 18:49:13 +0000 (11:49 -0700)

Sync with 1.7.4.5

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

Git 1.7.4.5 v1.7.4.5Junio C Hamano Tue, 19 Apr 2011 18:45:38 +0000 (11:45 -0700)

Git 1.7.4.5

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

git-svn.txt: Document --mergeinfoMichael J Gruber Tue, 19 Apr 2011 12:24:27 +0000 (14:24 +0200)

git-svn.txt: Document --mergeinfo

6abd933 (git-svn: allow the mergeinfo property to be set, 2010-09-24)
introduced the --mergeinfo option. Document it.

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

Revert "run-command: prettify -D_FORTIFY_SOURCE workaround"Junio C Hamano Mon, 18 Apr 2011 21:14:53 +0000 (14:14 -0700)

Revert "run-command: prettify -D_FORTIFY_SOURCE workaround"

This reverts commit ebec842773932e6f853acac70c80f84209b5f83e, which
somehow mistakenly thought that any non-zero return from write(2) is
an error.

Merge branch 'maint'Junio C Hamano Thu, 14 Apr 2011 19:26:45 +0000 (12:26 -0700)

Merge branch 'maint'

* maint:
archive: document limitation of tar.umask config setting
t3306,t5304: avoid clock skew issues
git.txt: fix list continuation

archive: document limitation of tar.umask config settingRené Scharfe Thu, 14 Apr 2011 18:04:57 +0000 (20:04 +0200)

archive: document limitation of tar.umask config setting

The local value of the config variable tar.umask is not passed to the
other side with --remote. We may want to change that, but for now just
document this fact.

Reported-by: Jacek Masiulaniec <jacek.masiulaniec@gmail.com>
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t3306,t5304: avoid clock skew issuesMichael J Gruber Thu, 14 Apr 2011 17:38:13 +0000 (19:38 +0200)

t3306,t5304: avoid clock skew issues

On systems where the local time and file modification time may be out of
sync (e.g. test directory on NFS) t3306 and t5305 can fail because prune
compares times such as "now" (client time) with file modification times
(server times for remote file systems). I.e., these are spurious test
failures.

Avoid this by setting the relevant modification times to the local time.

Noticed on a system with as little as 2s time skew.

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

git.txt: fix list continuationMichael J Gruber Thu, 14 Apr 2011 07:17:26 +0000 (09:17 +0200)

git.txt: fix list continuation

Remove a spurious empty line which prevented asciidoc from recognizing a
list continuation mark ('+'), so that it does not get output literally any
more.

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

Git 1.7.5-rc2 v1.7.5-rc2Junio C Hamano Wed, 13 Apr 2011 21:01:03 +0000 (14:01 -0700)

Git 1.7.5-rc2

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

Merge branch 'maint'Junio C Hamano Wed, 13 Apr 2011 20:59:19 +0000 (13:59 -0700)

Merge branch 'maint'

* maint:

Merge branch 'jc/rev-list-options-fix' into maintJunio C Hamano Wed, 13 Apr 2011 20:56:52 +0000 (13:56 -0700)

Merge branch 'jc/rev-list-options-fix' into maint

* jc/rev-list-options-fix:
"log --cherry-pick" documentation regression fix

Merge branch 'js/checkout-untracked-symlink' into maintJunio C Hamano Wed, 13 Apr 2011 20:55:53 +0000 (13:55 -0700)

Merge branch 'js/checkout-untracked-symlink' into maint

* js/checkout-untracked-symlink:
t2021: mark a test as fixed

remove doubled words, e.g., s/to to/to/, and fix relate... Jim Meyering Wed, 13 Apr 2011 15:39:40 +0000 (17:39 +0200)

remove doubled words, e.g., s/to to/to/, and fix related typos

I found that some doubled words had snuck back into projects from which
I'd already removed them, so now there's a "syntax-check" makefile rule in
gnulib to help prevent recurrence.

Running the command below spotted a few in git, too:

git ls-files | xargs perl -0777 -n \
-e 'while (/\b(then?|[iao]n|i[fst]|but|f?or|at|and|[dt])\s+\1\b/gims)' \
-e '{$n=($` =~ tr/\n/\n/ + 1); ($v=$&)=~s/\n/\\n/g;' \
-e 'print "$ARGV:$n:$v\n"}'

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

revert: Hide '-r' option in default usageRamkumar Ramachandra Sun, 10 Apr 2011 15:39:14 +0000 (21:09 +0530)

revert: Hide '-r' option in default usage

The '-r' command-line option is a no-op provided only for backward
compatiblity since abd6970 (cherry-pick: make -r the default, 2006-10-05),
and somehow ended up surviving across reimplementation in C at 9509af6
(Make git-revert & git-cherry-pick a builtin, 2007-03-01) and another
rewrite of the command line parser at f810379 (Make builtin-revert.c use
parse_options, 2007-10-07). We should have stopped advertising the option
long time ago.

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

--dirstat: In case of renames, use target filename... Johan Herland Tue, 12 Apr 2011 09:24:34 +0000 (11:24 +0200)

--dirstat: In case of renames, use target filename instead of source filename

This changes --dirstat analysis to count "damage" toward the target filename,
rather than the source filename. For renames within a directory, this won't
matter to the final output, but when moving files between diretories, the
output now lists the target directory rather than the source directory.

Signed-off-by: Johan Herland <johan@herland.net>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'js/checkout-untracked-symlink'Junio C Hamano Tue, 12 Apr 2011 07:05:50 +0000 (00:05 -0700)

Merge branch 'js/checkout-untracked-symlink'

* js/checkout-untracked-symlink:
t2021: mark a test as fixed

Merge branch 'nd/init-gitdir'Junio C Hamano Tue, 12 Apr 2011 07:04:53 +0000 (00:04 -0700)

Merge branch 'nd/init-gitdir'

* nd/init-gitdir:
t0001: guard a new test with SYMLINKS prerequisite

t2021: mark a test as fixedJohannes Sixt Tue, 12 Apr 2011 06:41:19 +0000 (08:41 +0200)

t2021: mark a test as fixed

The failure was fixed by the previous commit.

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

t0001: guard a new test with SYMLINKS prerequisiteJohannes Sixt Tue, 12 Apr 2011 06:30:49 +0000 (08:30 +0200)

t0001: guard a new test with SYMLINKS prerequisite

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

Teach --dirstat not to completely ignore rearranged... Johan Herland Sun, 10 Apr 2011 22:48:52 +0000 (00:48 +0200)

Teach --dirstat not to completely ignore rearranged lines within a file

Currently, the --dirstat analysis ignores when lines within a file are
rearranged, because the "damage" calculated by show_dirstat() is 0.
However, if the object name has changed, we already know that there is
some damage, and it is unintuitive to claim there is _no_ damage.

Teach show_dirstat() to assign a minimum amount of damage (== 1) to
entries for which the analysis otherwise yields zero damage, to still
represent that these files are changed, instead of saying that there
is no change.

Also, skip --dirstat analysis when the object names are the same (e.g. for
a pure file rename).

Signed-off-by: Johan Herland <johan@herland.net>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Makefile: extract Q_() source strings as ngettext()Ævar Arnfjörð Bjarmason Sun, 10 Apr 2011 19:37:01 +0000 (19:37 +0000)

Makefile: extract Q_() source strings as ngettext()

The Q_() wrapper added by 0c9ea33 (i18n: add stub Q_() wrapper for
ngettext, 2011-03-09) needs to be noticed by xgettext.

Add an appropriate --keyword option to the Makefile, so that "make pot"
would notice the strings in the plural form marked with the wrapper.

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

i18n: avoid parenthesized string as array initializerRamsay Jones Thu, 7 Apr 2011 18:41:48 +0000 (19:41 +0100)

i18n: avoid parenthesized string as array initializer

The syntax

static const char ignore_error[] = ("something");

is invalid C. A parenthesized string is not allowed as an array
initializer.

Some compilers, for example GCC and MSVC, allow this syntax as an
extension, but it is not a portable construct. tcc does not parse it, for
example.

Remove the parenthesis from the definition of the N_() macro to
fix this.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Acked-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

--dirstat-by-file: Make it faster and more correctJohan Herland Sun, 10 Apr 2011 22:48:51 +0000 (00:48 +0200)

--dirstat-by-file: Make it faster and more correct

Currently, when using --dirstat-by-file, it first does the full --dirstat
analysis (using diffcore_count_changes()), and then resets 'damage' to 1,
if any damage was found by diffcore_count_changes().

But --dirstat-by-file is not interested in the file damage per se. It only
cares if the file changed at all. In that sense it only cares if the blob
object for a file has changed. We therefore only need to compare the
object names of each file pair in the diff queue and we can skip the
entire --dirstat analysis and simply set 'damage' to 1 for each entry
where the object name has changed.

This makes --dirstat-by-file faster, and also bypasses --dirstat's practice
of ignoring rearranged lines within a file.

The patch also contains an added testcase verifying that --dirstat-by-file
now detects changes that only rearrange lines within a file.

Signed-off-by: Johan Herland <johan@herland.net>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

--dirstat: Describe non-obvious differences relative... Johan Herland Sun, 10 Apr 2011 22:48:50 +0000 (00:48 +0200)

--dirstat: Describe non-obvious differences relative to --stat or regular diff

Also add a testcase documenting the current behavior.

Improved-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Johan Herland <johan@herland.net>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge git://git.bogomips.org/git-svnJunio C Hamano Mon, 11 Apr 2011 16:34:19 +0000 (09:34 -0700)

Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
git-svn: Cache results of running the executable "git config"
git-svn: Add a svn-remote.<name>.pushurl config key

Merge git://git.kernel.org/pub/scm/gitk/gitkJunio C Hamano Mon, 11 Apr 2011 16:33:06 +0000 (09:33 -0700)

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

* git://git.kernel.org/pub/scm/gitk/gitk:
gitk: Update cherry-pick error message parsing
gitk: Quote tag names in event bindings to avoid problems with % chars
gitk: Allow user to control how much of the SHA1 ID gets auto-selected
gitk: spelling fixes in Russian translation
gitk: Take only numeric version components when computing $git_version

git-svn: Cache results of running the executable "git... James Y Knight Mon, 4 Apr 2011 19:09:08 +0000 (15:09 -0400)

git-svn: Cache results of running the executable "git config"

Running programs is not cheap!

Signed-off-by: James Y Knight <jknight@itasoftware.com>
Signed-off-by: Alejandro R. Sedeño <asedeno@mit.edu>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-svn: Add a svn-remote.<name>.pushurl config keyAlejandro R. Sedeño Fri, 8 Apr 2011 14:57:54 +0000 (10:57 -0400)

git-svn: Add a svn-remote.<name>.pushurl config key

Similar to the 'remote.<name>.pushurl' config key for git remotes,
'pushurl' is designed to be used in cases where 'url' points to an SVN
repository via a read-only transport, to provide an alternate
read/write transport. It is assumed that both keys point to the same
repository.

The 'pushurl' key is distinct from the 'commiturl' key in that
'commiturl' is a full svn path while 'pushurl' (like 'url') is a base
path. 'commiturl' takes precendece over 'pushurl' in cases where
either might be used.

The 'pushurl' is used by git-svn's dcommit and branch commands.

Signed-off-by: Alejandro R. Sedeño <asedeno@mit.edu>
Reviewed-by: James Y Knight <jknight@itasoftware.com>
Acked-by: Eric Wong <normalperson@yhbt.net>

gitk: Update cherry-pick error message parsingAnders Kaseorg Wed, 19 Jan 2011 19:45:00 +0000 (14:45 -0500)

gitk: Update cherry-pick error message parsing

Commit 981ff5c37ae20687c98d98c8689d5e89016026d2 changed the error
message from git cherry-pick from
Automatic cherry-pick failed. [...advice...]
to
error: could not apply 7ab78c9... Do something neat.
[...advice...]

Update gitk’s regex to match this, restoring the ability to launch git
citool to resolve conflicted cherry-picks.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Signed-off-by: Paul Mackerras <paulus@samba.org>

stash: ensure --no-keep-index and --patch can be used... Dan McGee Thu, 7 Apr 2011 17:04:20 +0000 (12:04 -0500)

stash: ensure --no-keep-index and --patch can be used in any order

Don't assume one comes after the other on the command line. Use a
three-state variable to track and check its value accordingly.

Signed-off-by: Dan McGee <dpmcgee@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

stash: add two more tests for --no-keep-indexDan McGee Thu, 7 Apr 2011 17:04:19 +0000 (12:04 -0500)

stash: add two more tests for --no-keep-index

One of these passes just fine; the other one exposes a problem where
command line flag order matters for --no-keep-index and --patch
interaction.

Signed-off-by: Dan McGee <dpmcgee@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-p4: replace each tab with 8 spaces for consistencyAndrew Garber Thu, 7 Apr 2011 06:01:21 +0000 (02:01 -0400)

git-p4: replace each tab with 8 spaces for consistency

Note that the majority of git-p4 uses spaces, not tabs, for indentation.
Consistent indentation is a good hygiene for Python scripts, and mixing
tabs and spaces in Python can lead to hard-to-find bugs.

Signed-off-by: Andrew Garber <andrew@andrewgarber.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

upload-pack: start pack-objects before async rev-listJeff King Wed, 6 Apr 2011 21:33:33 +0000 (17:33 -0400)

upload-pack: start pack-objects before async rev-list

In a pthread-enabled version of upload-pack, there's a race condition
that can cause a deadlock on the fflush(NULL) we call from run-command.

What happens is this:

1. Upload-pack is informed we are doing a shallow clone.

2. We call start_async() to spawn a thread that will generate rev-list
results to feed to pack-objects. It gets a file descriptor to a
pipe which will eventually hook to pack-objects.

3. The rev-list thread uses fdopen to create a new output stream
around the fd we gave it, called pack_pipe.

4. The thread writes results to pack_pipe. Outside of our control,
libc is doing locking on the stream. We keep writing until the OS
pipe buffer is full, and then we block in write(), still holding
the lock.

5. The main thread now uses start_command to spawn pack-objects.
Before forking, it calls fflush(NULL) to flush every stdio output
buffer. It blocks trying to get the lock on pack_pipe.

And we have a deadlock. The thread will block until somebody starts
reading from the pipe. But nobody will read from the pipe until we
finish flushing to the pipe.

To fix this, we swap the start order: we start the
pack-objects reader first, and then the rev-list writer
after. Thus the problematic fflush(NULL) happens before we
even open the new file descriptor (and even if it didn't,
flushing should no longer block, as the reader at the end of
the pipe is now active).

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

Git 1.7.5-rc1 v1.7.5-rc1Junio C Hamano Wed, 6 Apr 2011 17:57:32 +0000 (10:57 -0700)

Git 1.7.5-rc1

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

Sync with 1.7.4.4Junio C Hamano Wed, 6 Apr 2011 17:51:30 +0000 (10:51 -0700)

Sync with 1.7.4.4

Git 1.7.4.4 v1.7.4.4Junio C Hamano Wed, 6 Apr 2011 17:49:35 +0000 (10:49 -0700)

Git 1.7.4.4

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

Merge branch 'nm/maint-conflicted-submodule-entries... Junio C Hamano Wed, 6 Apr 2011 17:41:17 +0000 (10:41 -0700)

Merge branch 'nm/maint-conflicted-submodule-entries' into maint

* nm/maint-conflicted-submodule-entries:
submodule: process conflicting submodules only once

Merge branch 'mg/rev-list-n-reverse-doc' into maintJunio C Hamano Wed, 6 Apr 2011 17:40:49 +0000 (10:40 -0700)

Merge branch 'mg/rev-list-n-reverse-doc' into maint

* mg/rev-list-n-reverse-doc:
git-log.txt,rev-list-options.txt: put option blocks in proper order
git-log.txt,rev-list-options.txt: -n/--max-count is commit limiting

Merge branch 'jk/maint-remote-mirror-safer'Junio C Hamano Wed, 6 Apr 2011 17:38:14 +0000 (10:38 -0700)

Merge branch 'jk/maint-remote-mirror-safer'

* jk/maint-remote-mirror-safer:
remote: deprecate --mirror
remote: separate the concept of push and fetch mirrors
remote: disallow some nonsensical option combinations

Merge branch 'mg/doc-revisions-txt'Junio C Hamano Wed, 6 Apr 2011 17:37:56 +0000 (10:37 -0700)

Merge branch 'mg/doc-revisions-txt'

* mg/doc-revisions-txt:
revisions.txt: language improvements
revisions.txt: structure with a labelled list
revisions.txt: consistent use of quotes

stash: drop dirty worktree check on applyJeff King Tue, 5 Apr 2011 21:23:15 +0000 (17:23 -0400)

stash: drop dirty worktree check on apply

Before we apply a stash, we make sure there are no changes
in the worktree that are not in the index. This check dates
back to the original git-stash.sh, and is presumably
intended to prevent changes in the working tree from being
accidentally lost during the merge.

However, this check has two problems:

1. It is overly restrictive. If my stash changes only file
"foo", but "bar" is dirty in the working tree, it will
prevent us from applying the stash.

2. It is redundant. We don't touch the working tree at all
until we actually call merge-recursive. But it has its
own (much more accurate) checks to avoid losing working
tree data, and will abort the merge with a nicer
message telling us which paths were problems.

So we can simply drop the check entirely.

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

Teach core.bigfilethreashold to pack-objectsJunio C Hamano Tue, 5 Apr 2011 17:44:11 +0000 (10:44 -0700)

Teach core.bigfilethreashold to pack-objects

The pack-objects command should take notice of the object file and
refrain from attempting to delta large ones, to be consistent with
the fast-import command.

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

stash: fix false positive in the invalid ref test.Jon Seymour Tue, 5 Apr 2011 23:21:13 +0000 (09:21 +1000)

stash: fix false positive in the invalid ref test.

Jeff King reported a problem with git stash apply incorrectly
applying an invalid stash reference.

There is an existing test that should have caught this, but
the test itself was broken, resulting in a false positive.

Signed-off-by: Jon Seymour <jon.seymour@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

stash: fix accidental apply of non-existent stashesJeff King Tue, 5 Apr 2011 21:20:25 +0000 (17:20 -0400)

stash: fix accidental apply of non-existent stashes

Once upon a time, "git rev-parse ref@{9999999}" did not
generate an error. Therefore when we got an invalid stash
reference in "stash apply", we could end up not noticing
until quite late. Commit b0f0ecd (detached-stash: work
around git rev-parse failure to detect bad log refs,
2010-08-21) handled this by checking for the "Log for stash
has only %d entries" warning on stderr when we validated the
ref.

A few days later, e6eedc3 (rev-parse: exit with non-zero
status if ref@{n} is not valid., 2010-08-24) fixed the
original issue. That made the extra stderr test superfluous,
but also introduced a new bug. Now the early call to:

git rev-parse --symbolic "$@"

fails, but we don't notice the exit code. Worse, its empty
output means we think the user didn't provide us a ref, and
we try to apply stash@{0}.

This patch checks the rev-parse exit code and fails early in
the revision parsing process. We can also get rid of the
stderr test; as a bonus, this means that "stash apply" can
now run under GIT_TRACE=1 properly.

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Jon Seymour <jon.seymour@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revisions.txt: language improvementsMichael J Gruber Mon, 4 Apr 2011 15:27:05 +0000 (17:27 +0200)

revisions.txt: language improvements

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

Merge branch 'maint'Junio C Hamano Mon, 4 Apr 2011 22:02:08 +0000 (15:02 -0700)

Merge branch 'maint'

* maint:
Documentation: trivial grammar fix in core.worktree description
gitweb: Fix parsing of negative fractional timezones in JavaScript

Merge branch 'jl/submodule-fetch-on-demand'Junio C Hamano Mon, 4 Apr 2011 22:02:01 +0000 (15:02 -0700)

Merge branch 'jl/submodule-fetch-on-demand'

* jl/submodule-fetch-on-demand:
fetch/pull: Describe --recurse-submodule restrictions in the BUGS section
submodule update: Don't fetch when the submodule commit is already present
fetch/pull: Don't recurse into a submodule when commits are already present
Submodules: Add 'on-demand' value for the 'fetchRecurseSubmodule' option
config: teach the fetch.recurseSubmodules option the 'on-demand' value
fetch/pull: Add the 'on-demand' value to the --recurse-submodules option
fetch/pull: recurse into submodules when necessary

Conflicts:
builtin/fetch.c
submodule.c

Merge branch 'jc/rev-list-options-fix'Junio C Hamano Mon, 4 Apr 2011 17:55:38 +0000 (10:55 -0700)

Merge branch 'jc/rev-list-options-fix'

* jc/rev-list-options-fix:
"log --cherry-pick" documentation regression fix

Documentation: trivial grammar fix in core.worktree... SZEDER Gábor Mon, 4 Apr 2011 14:59:25 +0000 (16:59 +0200)

Documentation: trivial grammar fix in core.worktree description

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

gitweb: Fix parsing of negative fractional timezones... Jakub Narebski Fri, 1 Apr 2011 19:06:28 +0000 (21:06 +0200)

gitweb: Fix parsing of negative fractional timezones in JavaScript

Extract converting numerical timezone in the form of '(+|-)HHMM' to
timezoneOffset function, and fix parsing of negative fractional
timezones.

This is used to format timestamps in 'blame_incremental' view; this
complements commit 2b1e172 (gitweb: Fix handling of fractional
timezones in parse_date, 2011-03-25).

Now

gitweb.cgi/git.git/blame_incremental/3fe5489:/contrib/gitview/gitview#l853

and

gitweb.cgi/git.git/blame/3fe5489:/contrib/gitview/gitview#l853

show the same correct time in author's local timezone in title
(on mouseover) [Aneesh Kumar K.V, 2006-02-24 00:59:42 +0530].

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

Merge branch 'nm/maint-conflicted-submodule-entries'Junio C Hamano Mon, 4 Apr 2011 10:41:24 +0000 (03:41 -0700)

Merge branch 'nm/maint-conflicted-submodule-entries'

* nm/maint-conflicted-submodule-entries:
submodule: process conflicting submodules only once

Merge branch 'maint'Junio C Hamano Sun, 3 Apr 2011 20:53:11 +0000 (13:53 -0700)

Merge branch 'maint'

* maint:
Start preparing for 1.7.4.4
pull: do not clobber untracked files on initial pull
compat: add missing #include <sys/resource.h>

Conflicts:
RelNotes

Start preparing for 1.7.4.4Junio C Hamano Sun, 3 Apr 2011 19:58:23 +0000 (12:58 -0700)

Start preparing for 1.7.4.4

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

pull: do not clobber untracked files on initial pullJeff King Fri, 25 Mar 2011 18:13:31 +0000 (14:13 -0400)

pull: do not clobber untracked files on initial pull

For a pull into an unborn branch, we do not use "git merge"
at all. Instead, we call read-tree directly. However, we
used the --reset parameter instead of "-m", which turns off
the safety features.

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

Merge branch 'jc/index-update-if-able' into maintJunio C Hamano Sun, 3 Apr 2011 19:33:05 +0000 (12:33 -0700)

Merge branch 'jc/index-update-if-able' into maint

* jc/index-update-if-able:
update $GIT_INDEX_FILE when there are racily clean entries
diff/status: refactor opportunistic index update

Merge branch 'lt/default-abbrev' into maintJunio C Hamano Sun, 3 Apr 2011 19:32:51 +0000 (12:32 -0700)

Merge branch 'lt/default-abbrev' into maint

* lt/default-abbrev:
Rename core.abbrevlength back to core.abbrev
Make the default abbrev length configurable

Merge branch 'jc/maint-rev-list-culled-boundary' into... Junio C Hamano Sun, 3 Apr 2011 19:32:35 +0000 (12:32 -0700)

Merge branch 'jc/maint-rev-list-culled-boundary' into maint

* jc/maint-rev-list-culled-boundary:
list-objects.c: don't add an unparsed NULL as a pending tree

Conflicts:
list-objects.c

Merge branch 'mm/maint-log-n-with-diff-filtering' into... Junio C Hamano Sun, 3 Apr 2011 19:31:59 +0000 (12:31 -0700)

Merge branch 'mm/maint-log-n-with-diff-filtering' into maint

* mm/maint-log-n-with-diff-filtering:
log: fix --max-count when used together with -S or -G

Merge branch 'jk/format-patch-multiline-header' into... Junio C Hamano Sun, 3 Apr 2011 19:31:19 +0000 (12:31 -0700)

Merge branch 'jk/format-patch-multiline-header' into maint

* jk/format-patch-multiline-header:
format-patch: rfc2047-encode newlines in headers
format-patch: wrap long header lines
strbuf: add fixed-length version of add_wrapped_text

Merge branch 'jn/maint-instaweb-plack-fix' into maintJunio C Hamano Sun, 3 Apr 2011 19:30:58 +0000 (12:30 -0700)

Merge branch 'jn/maint-instaweb-plack-fix' into maint

* jn/maint-instaweb-plack-fix:
git-instaweb: Change how gitweb.psgi is made runnable as standalone app

Merge branch 'lp/config-vername-check' into maintJunio C Hamano Sun, 3 Apr 2011 19:29:45 +0000 (12:29 -0700)

Merge branch 'lp/config-vername-check' into maint

* lp/config-vername-check:
Disallow empty section and variable names
Sanity-check config variable names

sha1_name: Suggest commit:./file for path in subdirMichael J Gruber Thu, 31 Mar 2011 09:17:34 +0000 (11:17 +0200)

sha1_name: Suggest commit:./file for path in subdir

Currently, the "Did you mean..." message suggests "commit:fullpath"
only. Extend this to show the more convenient "commit:./file" form also.

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

t1506: factor out test for "Did you mean..."Michael J Gruber Thu, 31 Mar 2011 09:17:33 +0000 (11:17 +0200)

t1506: factor out test for "Did you mean..."

With the current code, it's a "'"'"'" jungle, and we test only 1 line of
the 2 line response. Factor out and test both.

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

compat: add missing #include <sys/resource.h>Jonathan Nieder Fri, 18 Mar 2011 20:23:52 +0000 (15:23 -0500)

compat: add missing #include <sys/resource.h>

Starting with commit c793430 (Limit file descriptors used by packs,
2011-02-28), git uses getrlimit to tell how many file descriptors it
can use. Unfortunately it does not include the header declaring that
function, resulting in compilation errors:

sha1_file.c: In function 'open_packed_git_1':
sha1_file.c:718: error: storage size of 'lim' isn't known
sha1_file.c:721: warning: implicit declaration of function 'getrlimit'
sha1_file.c:721: error: 'RLIMIT_NOFILE' undeclared (first use in this function)
sha1_file.c:718: warning: unused variable 'lim'

The standard header to include for this is <sys/resource.h> (which on
some systems itself requires declarations from <sys/types.h> or
<sys/time.h>). Probably the problem was missed until now because in
current glibc sys/resource.h happens to be included by sys/wait.h.

MinGW does not provide sys/resource.h (and compat/mingw takes care of
providing getrlimit some other way), so add the missing #include to
the "#ifndef __MINGW32__" block in git-compat-util.h.

Reported-by: Stefan Sperling <stsp@stsp.name>
Tested-by: Stefan Sperling <stsp@stsp.name> [on OpenBSD]
Tested-by: Arnaud Lacombe <lacombar@gmail.com> [on FreeBSD 8]
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git.el: Don't use font-lock-compile-keywordsLawrence Mitchell Fri, 4 Feb 2011 10:59:18 +0000 (10:59 +0000)

git.el: Don't use font-lock-compile-keywords

If font-lock is disabled, font-lock-compile-keywords complains.
Really what we want to do is to replace log-edit's font-lock
definitions with our own, so define a major mode deriving from
log-edit and set up font-lock-defaults there. We then use the
optional MODE argument to log-edit to set up the major mode of the
commit buffer appropriately.

Signed-off-by: Lawrence Mitchell <wence@gmx.li>
Acked-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t2019-checkout-ambiguous-ref.sh: depend on C_LOCALE_OUTPUTÆvar Arnfjörð Bjarmason Sun, 3 Apr 2011 13:33:39 +0000 (13:33 +0000)

t2019-checkout-ambiguous-ref.sh: depend on C_LOCALE_OUTPUT

The t2019-checkout-ambiguous-ref.sh tests added in v1.7.4.3~12^2
examines the output for a translatable string, and must be marked
with C_LOCALE_OUTPUT; otherwise, GETTEXT_POISON=YesPlease tests
will break.

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

Fix two unused variable warnings in gcc 4.6Dan McGee Mon, 28 Mar 2011 01:32:19 +0000 (20:32 -0500)

Fix two unused variable warnings in gcc 4.6

Seen with -Wunused-but-set-variable.

Signed-off-by: Dan McGee <dpmcgee@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Remove old binaries from .gitignoreDan McGee Thu, 31 Mar 2011 02:26:01 +0000 (21:26 -0500)

Remove old binaries from .gitignore

These two programs were dumped a while ago.

Signed-off-by: Dan McGee <dpmcgee@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

sparse: Fix errors and silence warningsStephen Boyd Sun, 3 Apr 2011 07:06:54 +0000 (00:06 -0700)

sparse: Fix errors and silence warnings

* load_file() returns a void pointer but is using 0 for the return
value

* builtin/receive-pack.c forgot to include builtin.h

* packet_trace_prefix can be marked static

* ll_merge takes a pointer for its last argument, not an int

* crc32 expects a pointer as the second argument but Z_NULL is defined
to be 0 (see 38f4d13 sparse fix: Using plain integer as NULL pointer,
2006-11-18 for more info)

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

Update release notesJunio C Hamano Sun, 3 Apr 2011 07:18:50 +0000 (00:18 -0700)

Update release notes

As 1.7.4.3 has backmerged a handful of fixes from the master,
drop these entries from 1.7.5 release notes.

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

Sync with 1.7.4.3Junio C Hamano Sun, 3 Apr 2011 07:14:16 +0000 (00:14 -0700)

Sync with 1.7.4.3

Git 1.7.4.3 v1.7.4.3Junio C Hamano Sun, 3 Apr 2011 07:12:31 +0000 (00:12 -0700)

Git 1.7.4.3

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

Doc: mention --delta-base-offset is the default for... Junio C Hamano Sun, 3 Apr 2011 06:08:13 +0000 (23:08 -0700)

Doc: mention --delta-base-offset is the default for Porcelain commands

The underlying pack-objects plumbing command still needs an explicit
option from the command line, but these days Porcelain passes the
option, so there is no need for end users to worry about it anymore.

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

Merge branch 'nd/init-gitdir'Junio C Hamano Sat, 2 Apr 2011 00:57:37 +0000 (17:57 -0700)

Merge branch 'nd/init-gitdir'

* nd/init-gitdir:
init, clone: support --separate-git-dir for .git file
git-init.txt: move description section up

Conflicts:
builtin/clone.c

Merge branch 'jc/merge-sans-branch'Junio C Hamano Sat, 2 Apr 2011 00:57:16 +0000 (17:57 -0700)

Merge branch 'jc/merge-sans-branch'

* jc/merge-sans-branch:
merge: merge with the default upstream branch without argument
merge: match the help text with the documentation

Conflicts:
builtin/merge.c

Merge branch 'jr/grep-en-config'Junio C Hamano Sat, 2 Apr 2011 00:56:27 +0000 (17:56 -0700)

Merge branch 'jr/grep-en-config'

* jr/grep-en-config:
grep: allow -E and -n to be turned on by default via configuration

Merge branch 'ab/i18n-st'Junio C Hamano Sat, 2 Apr 2011 00:55:55 +0000 (17:55 -0700)

Merge branch 'ab/i18n-st'

* ab/i18n-st: (69 commits)
i18n: git-shortlog basic messages
i18n: git-revert split up "could not revert/apply" message
i18n: git-revert literal "me" messages
i18n: git-revert "Your local changes" message
i18n: git-revert basic messages
i18n: git-notes GIT_NOTES_REWRITE_MODE error message
i18n: git-notes basic commands
i18n: git-gc "Auto packing the repository" message
i18n: git-gc basic messages
i18n: git-describe basic messages
i18n: git-clean clean.requireForce messages
i18n: git-clean basic messages
i18n: git-bundle basic messages
i18n: git-archive basic messages
i18n: git-status "renamed: " message
i18n: git-status "Initial commit" message
i18n: git-status "Changes to be committed" message
i18n: git-status shortstatus messages
i18n: git-status "nothing to commit" messages
i18n: git-status basic messages
...

Conflicts:
builtin/branch.c
builtin/checkout.c
builtin/clone.c
builtin/commit.c
builtin/grep.c
builtin/merge.c
builtin/push.c
builtin/revert.c
t/t3507-cherry-pick-conflict.sh
t/t7607-merge-overwrite.sh

Merge branch 'jk/pull-into-empty'Junio C Hamano Sat, 2 Apr 2011 00:50:54 +0000 (17:50 -0700)

Merge branch 'jk/pull-into-empty'

* jk/pull-into-empty:
pull: do not clobber untracked files on initial pull
merge: merge unborn index before setting ref