gitweb.git
send-email: Refuse to send cover-letter template subjectThomas Rast Mon, 8 Jun 2009 21:34:12 +0000 (23:34 +0200)

send-email: Refuse to send cover-letter template subject

Every so often, someone sends out an unedited cover-letter template.
Add a simple check to send-email that refuses to send if the subject
contains "*** SUBJECT HERE ***", with an option --force to override.

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

revert: Fix trivial comment style issueElijah Newren Mon, 6 Sep 2010 21:53:24 +0000 (15:53 -0600)

revert: Fix trivial comment style issue

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

cache_tree_free: Fix small memory leakElijah Newren Mon, 6 Sep 2010 21:40:16 +0000 (15:40 -0600)

cache_tree_free: Fix small memory leak

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'xx/trivial' into maintJunio C Hamano Mon, 6 Sep 2010 07:11:59 +0000 (00:11 -0700)

Merge branch 'xx/trivial' into maint

* xx/trivial:
tag.c: whitespace breakages fix
Fix whitespace issue in object.c
t5505: add missing &&

tag.c: whitespace breakages fixJunio C Hamano Mon, 6 Sep 2010 05:32:05 +0000 (22:32 -0700)

tag.c: whitespace breakages fix

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

Fix whitespace issue in object.cJared Hance Sun, 5 Sep 2010 19:36:33 +0000 (15:36 -0400)

Fix whitespace issue in object.c

Change some expanded tabs (spaces) to tabs in object.c.

Signed-off-by: Jared Hance <jaredhance@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5505: add missing &&Jens Lehmann Sun, 5 Sep 2010 12:56:11 +0000 (14:56 +0200)

t5505: add missing &&

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.7.2.3 v1.7.2.3Junio C Hamano Fri, 3 Sep 2010 16:38:53 +0000 (09:38 -0700)

Git 1.7.2.3

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

builtin/merge_recursive.c: Add an usage string and... Thiago Farina Mon, 30 Aug 2010 03:30:22 +0000 (00:30 -0300)

builtin/merge_recursive.c: Add an usage string and make use of it.

This improves the usage output by adding builtin_merge_recursive_usage string
that follows the same pattern used by the other builtin commands.

The previous output for git merger-recursive was:
usage: merge-recursive <base>... -- <head> <remote> ...

Now the output is:
usage: git merge-recursive <base>... -- <head> <remote> ...

Since cmd_merge_recursive is used to handle four different commands we need
the %s in the usage string, so the following example:

$ git merge-subtree -h

Will output:
usage: git merge-subtree <base>... -- <head> <remote> ...

Signed-off-by: Thiago Farina <tfransosi@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Prepare for 1.7.2.3Junio C Hamano Wed, 1 Sep 2010 21:15:35 +0000 (14:15 -0700)

Prepare for 1.7.2.3

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

Merge branch 'gp/pack-refs-remove-empty-dirs' into... Junio C Hamano Wed, 1 Sep 2010 21:05:05 +0000 (14:05 -0700)

Merge branch 'gp/pack-refs-remove-empty-dirs' into maint

* gp/pack-refs-remove-empty-dirs:
pack-refs: remove newly empty directories

Merge branch 'sg/rerere-gc-old-still-used' into maintJunio C Hamano Wed, 1 Sep 2010 20:57:23 +0000 (13:57 -0700)

Merge branch 'sg/rerere-gc-old-still-used' into maint

* sg/rerere-gc-old-still-used:
rerere: fix overeager gc
mingw_utime(): handle NULL times parameter

Merge branch 'np/maint-huge-delta-generation' into... Junio C Hamano Wed, 1 Sep 2010 20:56:10 +0000 (13:56 -0700)

Merge branch 'np/maint-huge-delta-generation' into maint

* np/maint-huge-delta-generation:
fix >4GiB source delta assertion failure

Merge branch 'dj/fetch-tagopt' into maintJunio C Hamano Wed, 1 Sep 2010 20:52:10 +0000 (13:52 -0700)

Merge branch 'dj/fetch-tagopt' into maint

* dj/fetch-tagopt:
fetch: allow command line --tags to override config

Merge branch 'da/fix-submodule-sync-superproject-config... Junio C Hamano Wed, 1 Sep 2010 20:50:46 +0000 (13:50 -0700)

Merge branch 'da/fix-submodule-sync-superproject-config' into maint

* da/fix-submodule-sync-superproject-config:
submodule sync: Update "submodule.<name>.url"

Merge branch 'en/rebase-against-rebase-fix' into maintJunio C Hamano Wed, 1 Sep 2010 20:43:55 +0000 (13:43 -0700)

Merge branch 'en/rebase-against-rebase-fix' into maint

* en/rebase-against-rebase-fix:
pull --rebase: Avoid spurious conflicts and reapplying unnecessary patches
t5520-pull: Add testcases showing spurious conflicts from git pull --rebase

Merge branch 'maint-1.7.1' into maintJunio C Hamano Mon, 30 Aug 2010 06:36:57 +0000 (23:36 -0700)

Merge branch 'maint-1.7.1' into maint

* maint-1.7.1:
t0003: add missing && at end of lines

t0003: add missing && at end of linesMatthieu Moy Sat, 28 Aug 2010 18:18:36 +0000 (20:18 +0200)

t0003: add missing && at end of lines

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

for-each-ref: fix objectname:short bugJay Soffian Thu, 26 Aug 2010 21:34:29 +0000 (17:34 -0400)

for-each-ref: fix objectname:short bug

When objectname:short was introduced, it forgot to copy the result of
find_unique_abbrev. Because the result of find_unique_abbrev is a
pointer to static buffer, this resulted in the same value being
substituted in for each ref.

Signed-off-by: Jay Soffian <jaysoffian@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tree-walk: Correct bitrotted comment about tree_entry()Elijah Newren Wed, 25 Aug 2010 02:53:11 +0000 (20:53 -0600)

tree-walk: Correct bitrotted comment about tree_entry()

There was a code comment that referred to the "above two functions" but
over time the functions immediately preceding the comment have changed.
Just mention the relevant functions by name.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix 'git log' early pager startup error caseLinus Torvalds Tue, 24 Aug 2010 17:33:59 +0000 (10:33 -0700)

Fix 'git log' early pager startup error case

We start the pager too early for several git commands, which results in
the errors sometimes going to the pager rather than show up as errors.

This is often hidden by the fact that we pass in '-X' to less by default,
which causes 'less' to exit for small output, but if you do

export LESS=-S

you can then clearly see the problem by doing

git log --prretty

which shows the error message ("fatal: unrecognized argument: --prretty")
being sent to the pager.

This happens for pretty much all git commands that use USE_PAGER, and then
check arguments separately. But "git diff" does it too early too (even
though it does an explicit setup_pager() call)

This only fixes it for the trivial "git log" family case.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

parse-options: clarify PARSE_OPT_NOARG descriptionJonathan Nieder Sun, 22 Aug 2010 16:26:38 +0000 (21:56 +0530)

parse-options: clarify PARSE_OPT_NOARG description

Here "takes no argument" means "does not take an argument". The
latter phrasing might make it clearer that PARSE_OPT_NOARG does not
make an option with an argument that can optionally be left off.

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

t3302 (notes): Port to SolarisJonathan Nieder Tue, 24 Aug 2010 07:14:53 +0000 (02:14 -0500)

t3302 (notes): Port to Solaris

The time_notes script, which uses POSIX shell features, is
currently sometimes run with a non-POSIX /bin/sh.

Reported-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>

Typos in code comments, an error message, documentationRalf Wildenhues Sun, 22 Aug 2010 11:12:12 +0000 (13:12 +0200)

Typos in code comments, an error message, documentation

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fix >4GiB source delta assertion failureNicolas Pitre Sat, 21 Aug 2010 05:00:13 +0000 (01:00 -0400)

fix >4GiB source delta assertion failure

When people try insane things such as delta-compressing 4GiB files, they
get this assertion:

diff-delta.c:285: create_delta_index: Assertion `packed_entry - (struct index_entry *)mem == entries' failed.

This happens because:

1) the 'entries' variable is an unsigned int

2) it is assigned with entries = (bufsize - 1) / RABIN_WINDOW
(that itself is not a problem unless bufsize > 4G * RABIN_WINDOW)

3) the buffer is indexed from top to bottom starting at
"data = buffer + entries * RABIN_WINDOW" and the multiplication
here does indeed overflows, making the resulting top of the buffer
much lower than expected.

This makes the number of actually produced index entries smaller than
what was computed initially, hence the assertion.

Furthermore, the current delta encoding format cannot represent offsets
into a reference buffer with more than 32 bits anyway. So let's just
limit the number of entries to what the delta format can encode.

Reported-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7403: add missing &&'sJens Lehmann Wed, 18 Aug 2010 21:20:33 +0000 (23:20 +0200)

t7403: add missing &&'s

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Tell ignore file about generate files in /gitweb/staticMark Rada Sat, 21 Aug 2010 16:18:37 +0000 (12:18 -0400)

Tell ignore file about generate files in /gitweb/static

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

Merge branch 'jc/maint-follow-rename-fix' into maintJunio C Hamano Fri, 20 Aug 2010 19:53:09 +0000 (12:53 -0700)

Merge branch 'jc/maint-follow-rename-fix' into maint

* jc/maint-follow-rename-fix:
log: test for regression introduced in v1.7.2-rc0~103^2~2
diff --follow: do call diffcore_std() as necessary
diff --follow: do not waste cycles while recursing

Merge branch 'jn/maint-plug-leak' into maintJunio C Hamano Fri, 20 Aug 2010 19:53:09 +0000 (12:53 -0700)

Merge branch 'jn/maint-plug-leak' into maint

* jn/maint-plug-leak:
write-tree: Avoid leak when index refers to an invalid object
read-tree: stop leaking tree objects
core: Stop leaking ondisk_cache_entrys

Merge branch 'jn/fix-abbrev' into maintJunio C Hamano Fri, 20 Aug 2010 19:53:09 +0000 (12:53 -0700)

Merge branch 'jn/fix-abbrev' into maint

* jn/fix-abbrev:
examples/commit: use --abbrev for commit summary
checkout, commit: remove confusing assignments to rev.abbrev
archive: abbreviate substituted commit ids again

Merge branch 'vs/doc-spell' into maintJunio C Hamano Fri, 20 Aug 2010 19:53:08 +0000 (12:53 -0700)

Merge branch 'vs/doc-spell' into maint

* vs/doc-spell:
Documentation: spelling fixes

Merge branch 'jn/rebase-rename-am' into maintJunio C Hamano Fri, 20 Aug 2010 19:53:08 +0000 (12:53 -0700)

Merge branch 'jn/rebase-rename-am' into maint

* jn/rebase-rename-am:
rebase: protect against diff.renames configuration
t3400 (rebase): whitespace cleanup
Teach "apply --index-info" to handle rename patches
t4150 (am): futureproof against failing tests
t4150 (am): style fix

Merge branch 'jn/doc-pull' into maintJunio C Hamano Fri, 20 Aug 2010 19:53:08 +0000 (12:53 -0700)

Merge branch 'jn/doc-pull' into maint

* jn/doc-pull:
Documentation: flesh out “git pull” description

Merge branch 'bc/use-more-hardlinks-in-install' into... Junio C Hamano Fri, 20 Aug 2010 19:53:07 +0000 (12:53 -0700)

Merge branch 'bc/use-more-hardlinks-in-install' into maint

* bc/use-more-hardlinks-in-install:
Makefile: make hard/symbolic links for non-builtins too
Makefile: link builtins residing in bin directory to main git binary too

Merge branch 'tr/rfc-reset-doc' into maintJunio C Hamano Fri, 20 Aug 2010 19:53:07 +0000 (12:53 -0700)

Merge branch 'tr/rfc-reset-doc' into maint

* tr/rfc-reset-doc:
Documentation/reset: move "undo permanently" example behind "make topic"
Documentation/reset: reorder examples to match description
Documentation/reset: promote 'examples' one section up
Documentation/reset: separate options by mode
Documentation/git-reset: reorder modes for soft-mixed-hard progression

xmalloc: include size in the failure messageMatthieu Moy Fri, 20 Aug 2010 15:09:51 +0000 (17:09 +0200)

xmalloc: include size in the failure message

Out-of-memory errors can either be actual lack of memory, or bugs (like
code trying to call xmalloc(-1) by mistake). A little more information
may help tracking bugs reported by users.

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

Git 1.7.2.2 v1.7.2.2Junio C Hamano Thu, 19 Aug 2010 23:03:18 +0000 (16:03 -0700)

Git 1.7.2.2

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

Merge branch 'tr/xsize-bits' into maintJunio C Hamano Thu, 19 Aug 2010 22:49:54 +0000 (15:49 -0700)

Merge branch 'tr/xsize-bits' into maint

* tr/xsize-bits:
xsize_t: check whether we lose bits

Merge branch 'jc/sha1-name-find-fix' into maintJunio C Hamano Thu, 19 Aug 2010 22:49:24 +0000 (15:49 -0700)

Merge branch 'jc/sha1-name-find-fix' into maint

* jc/sha1-name-find-fix:
sha1_name.c: fix parsing of ":/token" syntax

Conflicts:
sha1_name.c

Merge branch 'sp/fix-smart-http-deadlock-on-error'... Junio C Hamano Wed, 18 Aug 2010 23:30:11 +0000 (16:30 -0700)

Merge branch 'sp/fix-smart-http-deadlock-on-error' into maint

* sp/fix-smart-http-deadlock-on-error:
smart-http: Don't deadlock on server failure

submodule sync: Update "submodule.<name>.url"David Aguilar Wed, 18 Aug 2010 15:58:33 +0000 (08:58 -0700)

submodule sync: Update "submodule.<name>.url"

When "git submodule sync" synchronizes the repository URLs
it only updates submodules' .git/config. However, the old
URLs still exist in the super-project's .git/config.

Update the super-project's configuration so that commands
such as "git submodule update" use the URLs from .gitmodules.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

log: test for regression introduced in v1.7.2-rc0~103^2~2Ævar Arnfjörð Bjarmason Sun, 15 Aug 2010 10:16:25 +0000 (10:16 +0000)

log: test for regression introduced in v1.7.2-rc0~103^2~2

Add a regression test for the git log -M --follow $diff_option bug
introduced in v1.7.2-rc0~103^2~2, $diff_option being diff related
options like -p, --stat, --name-only etc.

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

fetch: allow command line --tags to override configDaniel Johnson Wed, 11 Aug 2010 22:57:20 +0000 (18:57 -0400)

fetch: allow command line --tags to override config

Originally, if remote.<name>.tagopt was set, the --tags and option would
have no effect when given to git fetch. So if
tagopt="--no-tags"

git fetch --tags

would not actually fetch tags.

This patch changes this behavior to only follow what is written in the
config if there is no option passed by the command line.

Signed-off-by: Daniel Johnson <ComputerDruid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff --follow: do call diffcore_std() as necessaryJunio C Hamano Fri, 13 Aug 2010 19:17:45 +0000 (12:17 -0700)

diff --follow: do call diffcore_std() as necessary

Usually, diff frontends populate the output queue with filepairs without
any rename information and call diffcore_std() to sort the renames out.
When --follow is in effect, however, diff-tree family of frontend has a
hack that looks like this:

diff-tree frontend
-> diff_tree_sha1()
. populate diff_queued_diff
. if --follow is in effect and there is only one change that
creates the target path, then
-> try_to_follow_renames()
-> diff_tree_sha1() with no pathspec but with -C
-> diffcore_std() to find renames
. if rename is found, tweak diff_queued_diff and put a
single filepair that records the found rename there
-> diffcore_std()
. tweak elements on diff_queued_diff by
- rename detection
- path ordering
- pickaxe filtering

We need to skip parts of the second call to diffcore_std() that is related
to rename detection, and do so only when try_to_follow_renames() did find
a rename. Earlier 1da6175 (Make diffcore_std only can run once before a
diff_flush, 2010-05-06) tried to deal with this issue incorrectly; it
unconditionally disabled any second call to diffcore_std().

This hopefully fixes the breakage.

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

diff --follow: do not waste cycles while recursingJunio C Hamano Fri, 13 Aug 2010 17:36:01 +0000 (10:36 -0700)

diff --follow: do not waste cycles while recursing

The "--follow" logic is called from diff_tree_sha1() function, but the
input trees to diff_tree_sha1() are not necessarily the top-level trees
(compare_tree_entry() calls it while it recursively descends into
subtrees). When a newly created path lives in somewhere deep in the
source hierarchy, e.g. "platform/", but the rename source is in a totally
different place in the destination hierarchy, e.g. "lang-api/src/com/...",
running "try_to_find_renames()" while base is set to "platform/" is a
wasted call.

We only need to run the rename following at the very top level.

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

pull --rebase: Avoid spurious conflicts and reapplying... Elijah Newren Fri, 13 Aug 2010 01:50:50 +0000 (19:50 -0600)

pull --rebase: Avoid spurious conflicts and reapplying unnecessary patches

Prior to c85c792 (pull --rebase: be cleverer with rebased upstream
branches, 2008-01-26), pull --rebase would run

git rebase $merge_head

which resulted in a call to

git format-patch ... --ignore-if-in-upstream $merge_head..$cur_branch

This resulted in patches from $merge_head..$cur_branch being applied, as
long as they did not already exist in $cur_branch..$merge_head.

Unfortunately, when upstream is rebased, $merge_head..$cur_branch also
refers to "old" commits that have already been rebased upstream, meaning
that many patches that were already fixed upstream would be reapplied.
This could result in many spurious conflicts, as well as reintroduce
patches that were intentionally dropped upstream.

So the algorithm was changed in c85c792 (pull --rebase: be cleverer with
rebased upstream branches, 2008-01-26) and d44e712 (pull: support rebased
upstream + fetch + pull --rebase, 2009-07-19). Defining $old_remote_ref to
be the most recent entry in the reflog for @{upstream} that is an ancestor
of $cur_branch, pull --rebase was changed to run

git rebase --onto $merge_head $old_remote_ref

which results in a call to

git format-patch ... --ignore-if-in-upstream $old_remote_ref..$cur_branch

The whole point of this change was to reduce the number of commits being
reapplied, by avoiding commits that upstream already has or had.

In the rebased upstream case, this change achieved that purpose. It is
worth noting, though, that since $old_remote_ref is always an ancestor of
$cur_branch (by its definition), format-patch will not know what upstream
is and thus will not be able to determine if any patches are already
upstream; they will all be reapplied.

In the non-rebased upstream case, this new form is usually the same as the
original code but in some cases $old_remote_ref can be an ancestor of

$(git merge-base $merge_head $cur_branch)

meaning that instead of avoiding reapplying commits that upstream already
has, it actually includes more such commits. Combined with the fact that
format-patch can no longer detect commits that are already upstream (since
it is no longer told what upstream is), results in lots of confusion for
users (e.g. "git is giving me lots of conflicts in stuff I didn't even
change since my last push.")

Cases where additional commits could be reapplied include forking from a
commit other than the tracking branch, or amending/rebasing after pushing.
Cases where the inability to detect upstreamed commits cause problems
include independent discovery of a fix and having your patches get
upstreamed by some alternative route (e.g. pulling your changes to a third
machine, pushing from there, and then going back to your original machine
and trying to pull --rebase).

Fix the non-rebased upstream case by ignoring $old_remote_ref whenever it
is contained in $(git merge-base $merge_head $cur_branch). This should
have no affect on the rebased upstream case.

Acked-by: Santi Béjar <santi@agolina.net>
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5520-pull: Add testcases showing spurious conflicts... Elijah Newren Fri, 13 Aug 2010 01:50:49 +0000 (19:50 -0600)

t5520-pull: Add testcases showing spurious conflicts from git pull --rebase

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

push: mention "git pull" in error message for non-fast... Matthieu Moy Mon, 2 Aug 2010 13:42:44 +0000 (15:42 +0200)

push: mention "git pull" in error message for non-fast forwards

The message remains fuzzy to include "git pull", "git pull --rebase" and
others, but directs the user to the simplest solution in the vast
majority of cases.

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

Standardize do { ... } while (0) styleJonathan Nieder Thu, 12 Aug 2010 22:11:15 +0000 (17:11 -0500)

Standardize do { ... } while (0) style

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

t/t7003: replace \t with literal tab in sed expressionBrandon Casey Thu, 12 Aug 2010 20:55:54 +0000 (15:55 -0500)

t/t7003: replace \t with literal tab in sed expression

The sed utilities on IRIX and Solaris do not interpret the sequence '\t'
to mean a tab character; they read a literal character 't'. So, use a
literal tab instead.

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

index-pack: Don't follow replace refs.Nelson Elhage Thu, 12 Aug 2010 14:18:12 +0000 (10:18 -0400)

index-pack: Don't follow replace refs.

Without this, attempting to index a pack containing objects that have been
replaced results in a fatal error that looks like:

fatal: SHA1 COLLISION FOUND WITH <replaced-object> !

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

post-receive-email: remove spurious commas in email... Matthieu Moy Wed, 11 Aug 2010 08:14:13 +0000 (10:14 +0200)

post-receive-email: remove spurious commas in email subject

The previous form produced subjects like

[SCM] project.git branch, foo, updated. ...

The new one will produce the lighter

[SCM] project.git branch foo updated. ...

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

fast-import: export correctly marks larger than 2^20-1Raja R Harinath Tue, 13 Jul 2010 11:51:48 +0000 (17:21 +0530)

fast-import: export correctly marks larger than 2^20-1

dump_marks_helper() has a bug when dumping marks larger than 2^20-1,
i.e., when the sparse array has more than two levels. The bug was
that the 'base' counter was being shifted by 20 bits at level 3, and
then again by 10 bits at level 2, rather than a total shift of 20 bits
in this argument to the recursive call:

(base + k) << m->shift

There are two ways to fix this correctly, the elegant:

(base + k) << 10

and the one I chose due to edit distance:

base + (k << m->shift)

Signed-off-by: Raja R Harinath <harinath@hurrynot.org>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t/lib-git-svn.sh: use $PERL_PATH for perl, not perl... Ævar Arnfjörð Bjarmason Tue, 10 Aug 2010 12:14:25 +0000 (12:14 +0000)

t/lib-git-svn.sh: use $PERL_PATH for perl, not perl from $PATH

Change the git-svn tests to use $PERL_PATH, not the "perl" in $PATH.

Using perl in $PATH was added by Sam Vilain in v1.6.6-rc0~95^2~3,
Philippe Bruhat introduced $PERL_PATH to the test suite in
v1.6.6-rc0~9^2, but the lib-git-svn.sh tests weren't updated to use
the new convention.

This resulted in the git-svn tests always being skipped on my
system. My /usr/bin/perl has access to SVN::Core and SVN::Repos, but
the perl in my $PATH does not.

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

write-tree: Avoid leak when index refers to an invalid... Jonathan Nieder Tue, 10 Aug 2010 03:32:11 +0000 (22:32 -0500)

write-tree: Avoid leak when index refers to an invalid object

Noticed by valgrind during test t0000.35 “writing this tree without
--missing-ok”.

Even in the cherry-pick foo..bar code path, such an error is the
end of the line. But maybe some day an interactive porcelain will
want to link to libgit, making this matter.

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

read-tree: stop leaking tree objectsJonathan Nieder Tue, 10 Aug 2010 03:33:44 +0000 (22:33 -0500)

read-tree: stop leaking tree objects

The underlying problem is that the fill_tree_descriptor()
API is easy to misuse, and this patch does not fix that.

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

core: Stop leaking ondisk_cache_entrysJonathan Nieder Tue, 10 Aug 2010 03:28:07 +0000 (22:28 -0500)

core: Stop leaking ondisk_cache_entrys

Noticed with valgrind.

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

diff: strip extra "/" when stripping prefixJakub Narebski Mon, 9 Aug 2010 14:50:53 +0000 (10:50 -0400)

diff: strip extra "/" when stripping prefix

There are two ways a user might want to use "diff --relative":

1. For a file in a directory, like "subdir/file", the user
can use "--relative=subdir/" to strip the directory.

2. To strip part of a filename, like "foo-10", they can
use "--relative=foo-".

We currently handle both of those situations. However, if the user passes
"--relative=subdir" (without the trailing slash), we produce inconsistent
results. For the unified diff format, we collapse the double-slash of
"a//file" correctly into "a/file". But for other formats (raw, stat,
name-status), we end up with "/file".

We can do what the user means here and strip the extra "/" (and only a
slash). We are not hurting any existing users of (2) above with this
behavior change because the existing output for this case was nonsensical.

Patch by Jakub, tests and commit message by Jeff King.

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

gitweb: clarify search results page when no matching... Jonathan Nieder Sat, 7 Aug 2010 21:56:47 +0000 (16:56 -0500)

gitweb: clarify search results page when no matching commit found

When searching commits for a string that never occurs, the results
page looks something like this:

projects / foo.git / search \o/
summary | ... | tree [commit] search: [ kfjdkas ] [ ]re
first ⋅ prev ⋅ next

Merge branch 'maint'

Foo: a demonstration project

Without a list of hits to compare it to, the header describing the
commit named by the hash parameter (usually HEAD) may itself look
like a hit. Add some text (“No match.”) to replace the empty
list of hits and avoid this confusion.

While at it, remove some nearby dead code, left behind from a
simplification a few years ago (v1.5.4-rc0~276^2~4, 2007-11-01).

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

Documentation: add a FILES section for show-refJonathan Nieder Mon, 9 Aug 2010 01:32:43 +0000 (20:32 -0500)

Documentation: add a FILES section for show-ref

A peek at where the refs are kept might help understanding, even if,
as the DESCRIPTION section suggests, direct access is not part of the
public API.

Balance that out with a pointer to update-ref.

Suggested-by: Geoff Russell <geoffrey.russell@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Makefile: add missing dependency on http.hJonathan Nieder Sun, 8 Aug 2010 21:48:59 +0000 (16:48 -0500)

Makefile: add missing dependency on http.h

v1.7.1-rc0~65^2~2 (http: init and cleanup separately from
http-walker, 2010-03-02) introduced a direct dependency from
http-fetch on the HTTP request library. Declare it.

Detected with "make CHECK_HEADER_DEPENDENCIES=1".

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

Makefile: add missing dependencies on url.hJonathan Nieder Sun, 8 Aug 2010 21:25:11 +0000 (16:25 -0500)

Makefile: add missing dependencies on url.h

v1.7.2-rc0~56^2 and its parent (decode file:// and ssh://
URLs, 2010-05-23) introduced a new url library. Update the
Makefile with the relevant dependencies.

Detected with "make CHECK_HEADER_DEPENDENCIES=1".

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

Documentation/git-log: Clarify --full-diffMichael J Gruber Sun, 8 Aug 2010 15:31:34 +0000 (17:31 +0200)

Documentation/git-log: Clarify --full-diff

The current description gives the impression that "--full-diff" affects
"log -p" only.

Make it clearer that it affects all diff-based output types.

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

git-rebase: fix typo when parsing --force-rebaseWilly Tarreau Sun, 8 Aug 2010 05:13:32 +0000 (07:13 +0200)

git-rebase: fix typo when parsing --force-rebase

Due to two missing hyphens, The "force" keyword on the command line
would be taken as an alias for the --force-rebase option.

Signed-off-by: Willy Tarreau <w@1wt.eu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

imap-send: Fix sprintf usageÆvar Arnfjörð Bjarmason Sat, 7 Aug 2010 23:09:45 +0000 (18:09 -0500)

imap-send: Fix sprintf usage

When composing a command for the imap server, imap-send uses a single
nfsnprintf() invocation for brevity instead of dealing separately with
the case when there is a message to be sent and the case when there
isn’t. The unused argument in the second case, while valid, is
confusing for static analyzers and human readers.

v1.6.4-rc0~117 (imap-send: add support for IPv6, 2009-05-25)
mistakenly used %hu as the format for an int “port”, by analogy with
existing usage for the unsigned short “addr.sin_port”.  Use %d
instead.

Noticed with clang.

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>

prune: allow --dry-run for -n and --verbose for -vRené Scharfe Fri, 6 Aug 2010 20:28:05 +0000 (22:28 +0200)

prune: allow --dry-run for -n and --verbose for -v

For consistency with other git commands, let git prune accept the long
options --dry-run and --verbose for the respective short ones -n and -v.

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

notes: allow --dry-run for -n and --verbose for -vRené Scharfe Fri, 6 Aug 2010 20:28:09 +0000 (22:28 +0200)

notes: allow --dry-run for -n and --verbose for -v

For consistency with other git commands, let the prune subcommand of
git notes accept the long options --dry-run and --verbose for the
respective short ones -n and -v.

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

Document -B<n>[/<m>], -M<n> and -C<n> variants of ... Matthieu Moy Thu, 5 Aug 2010 16:14:25 +0000 (18:14 +0200)

Document -B<n>[/<m>], -M<n> and -C<n> variants of -B, -M and -C

These options take an optional argument, but this optional argument was
not documented.

Original patch by Matthieu Moy, but documentation for -B mostly copied
from the explanations of Junio C Hamano.

While we're there, fix a typo in a comment in diffcore.h.

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

Documentation: cite git-am from git-applyBrad King Tue, 3 Aug 2010 18:41:50 +0000 (14:41 -0400)

Documentation: cite git-am from git-apply

Users reading git-apply documentation may also be interested in git-am,
especially after receiving an email created with git-format-patch. The
documentation for git-am already references git-apply. Add the reverse.

Signed-off-by: Brad King <brad.king@kitware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7003: fix subdirectory-filter testThomas Rast Thu, 29 Jul 2010 15:10:22 +0000 (17:10 +0200)

t7003: fix subdirectory-filter test

The test would not fail if the filtering failed to do anything, since
in

test -z "$(git diff HEAD directorymoved:newsubdir)"'

'directorymoved:newsubdir' is not valid, so git-diff fails without
printing anything on stdout. But then the exit status of git-diff is
lost, whereas test -z "" succeeds.

Use 'git diff --exit-code' instead, which does the right thing and has
the added bonus of showing the differences if there are any.

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

smart-http: Don't deadlock on server failureShawn O. Pearce Fri, 6 Aug 2010 21:19:44 +0000 (14:19 -0700)

smart-http: Don't deadlock on server failure

If the remote HTTP server fails (e.g. returns 404 or 500) when we
posted the RPC to it, we won't have sent anything to the background
Git process that is supposed to handle the stream. Because we
didn't send anything, its waiting for input from remote-curl, and
remote-curl cannot read its response payload because doing so would
lead to a deadlock.

Send the background task EOF on its input before we try to read
its response back, that way it will break out of its read loop
and terminate.

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

Allow "check-ref-format --branch" from subdirectoryJonathan Nieder Fri, 6 Aug 2010 03:39:22 +0000 (22:39 -0500)

Allow "check-ref-format --branch" from subdirectory

check-ref-format --branch requires access to the repository
to resolve refs like @{-1}.

Noticed by Nguyễn Thái Ngọc Duy.

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

check-ref-format: handle subcommands in separate functionsJonathan Nieder Fri, 6 Aug 2010 03:36:07 +0000 (22:36 -0500)

check-ref-format: handle subcommands in separate functions

The code for each subcommand should be easier to read and manipulate
this way.

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

pretty-options.txt: match --format's documentation... Matthieu Moy Thu, 5 Aug 2010 13:08:05 +0000 (15:08 +0200)

pretty-options.txt: match --format's documentation with implementation.

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

Merge branch 'sv/maint-diff-q-clear-fix' into maintJunio C Hamano Tue, 3 Aug 2010 22:17:34 +0000 (15:17 -0700)

Merge branch 'sv/maint-diff-q-clear-fix' into maint

* sv/maint-diff-q-clear-fix:
Fix DIFF_QUEUE_CLEAR refactoring

Merge branch 'rr/svn-fe' into maintJunio C Hamano Tue, 3 Aug 2010 22:17:11 +0000 (15:17 -0700)

Merge branch 'rr/svn-fe' into maint

* rr/svn-fe:
contrib/svn-fe: Add the svn-fe target to .gitignore
contrib/svn-fe: Fix IncludePath

Merge branch 'pt/git-gui' into maintJunio C Hamano Tue, 3 Aug 2010 22:16:38 +0000 (15:16 -0700)

Merge branch 'pt/git-gui' into maint

* pt/git-gui:
git-gui: fix size and position of window panes on startup
git-gui: mc cannot be used before msgcat has been loaded
git-gui: use textconv filter for diff and blame
git-gui: Avoid using the <<Copy>> binding as a menu accelerator on win32
git-gui: fix shortcut creation on cygwin
git-gui: fix PATH environment for mingw development environment
git-gui: fix usage of _gitworktree when creating shortcut for windows
git-gui: fix "Explore Working Copy" for Windows again
git-gui: fix usage of themed widgets variable
git-gui: Handle failure of core.worktree to identify the working directory.
git-gui: check whether systems nice command works or disable it

contrib/svn-fe: Add the svn-fe target to .gitignoreRamkumar Ramachandra Thu, 29 Jul 2010 05:36:20 +0000 (11:06 +0530)

contrib/svn-fe: Add the svn-fe target to .gitignore

Add the svn-fe target to .gitignroe.

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

contrib/svn-fe: Fix IncludePathRamkumar Ramachandra Thu, 29 Jul 2010 05:36:19 +0000 (11:06 +0530)

contrib/svn-fe: Fix IncludePath

Include the path "../../vcs-svn" while compiling it in the Makefile
and change svn-fe.c to include svndump.h.

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

Documentation: flesh out “git pull” descriptionJonathan Nieder Mon, 2 Aug 2010 21:39:30 +0000 (16:39 -0500)

Documentation: flesh out “git pull” description

The current description in the pull man page does not say much more
than that “git pull” is fetch + merge. Though that is all a person
needs to know in the end, it would be useful to summarize a bit about
what those commands do for new readers.

Most of this description is taken from the “git merge” docs.

Now that we explain how to back out of a failed merge (reset --merge),
we can tone down the warning against that a bit.

Except, as Thomas noticed, there’s a risk with that because people
might read this version of the manpage online and then conclude that
it is safe to try a merge with uncommitted changes, only to find that
their “git reset” doesn't support --merge yet. Or worse, verify that
their git-reset has --merge by a quick test (1b5b465 is in 1.6.2) but
then find that it does not help with backing out of a merge (e11d7b5
is only in 1.7.0!). So keep the warning.

With clarifications from Ævar, Thomas, and Junio.

Noticed-by: Geoff Russell <geoffrey.russell@gmail.com>
Cc: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Cc: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

sha1_name.c: fix parsing of ":/token" syntaxJunio C Hamano Mon, 2 Aug 2010 21:37:06 +0000 (14:37 -0700)

sha1_name.c: fix parsing of ":/token" syntax

The parser tried to clean up the object flags it used while finding
commits with matching string, but was not doing a very good job at it.

This caused "checkout -b new ':/token'", which internally tries to parse
':/token' twice as an object name, to fail when the commit in question
was reachable from only one ref.

The mask bits given to pop_most_recent_commit(&list, MASK) means "I have
already been on the list to be processed, so please do not place me again
even if I am found to be a parent of some other commit on the list." So
mark them when we add them to the list at the beginning.

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

Merge branch 'ab/tap' into maintJunio C Hamano Mon, 2 Aug 2010 18:53:58 +0000 (11:53 -0700)

Merge branch 'ab/tap' into maint

* ab/tap:
test-lib: Remove 3 year old no-op --no-python option
test-lib: Ignore --quiet under a TAP harness

test-lib: Remove 3 year old no-op --no-python optionÆvar Arnfjörð Bjarmason Sat, 31 Jul 2010 16:49:53 +0000 (16:49 +0000)

test-lib: Remove 3 year old no-op --no-python option

The --no-python option was added to test-lib.sh by Johannes Schindelin
in early 2006 in abb7c7b3. It was later turned into a no-op by Junio C
Hamano in 7cdbff14 the same year.

Over three years is long enough before removing this old wart which
was retained for backwards compatibility. Our tests have been using
NO_PYTHON and "test_have_prereq PYTHON" for a long time now.

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

test-lib: Ignore --quiet under a TAP harnessÆvar Arnfjörð Bjarmason Sat, 31 Jul 2010 16:40:05 +0000 (16:40 +0000)

test-lib: Ignore --quiet under a TAP harness

Running the tests with --quiet under a TAP harness will always fail,
since a TAP harness always needs actual test output to go along with
the plan that's being emitted.

Change the test-lib.sh to ignore the --quiet option under
HARNESS_ACTIVE to work around this. Then users that have --quiet in
their GIT_TEST_OPTS can run tests under prove(1) without everything
breaking.

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

Merge git://repo.or.cz/git-gui into pt/git-guiJunio C Hamano Mon, 2 Aug 2010 16:28:30 +0000 (09:28 -0700)

Merge git://repo.or.cz/git-gui into pt/git-gui

* git://repo.or.cz/git-gui:
git-gui: fix size and position of window panes on startup
git-gui: mc cannot be used before msgcat has been loaded
git-gui: use textconv filter for diff and blame
git-gui: Avoid using the <<Copy>> binding as a menu accelerator on win32
git-gui: fix shortcut creation on cygwin
git-gui: fix PATH environment for mingw development environment
git-gui: fix usage of _gitworktree when creating shortcut for windows
git-gui: fix "Explore Working Copy" for Windows again
git-gui: fix usage of themed widgets variable
git-gui: Handle failure of core.worktree to identify the working directory.
git-gui: check whether systems nice command works or disable it

Documentation/rev-parse: quoting is required with ... Thomas Rast Fri, 30 Jul 2010 15:01:50 +0000 (17:01 +0200)

Documentation/rev-parse: quoting is required with --parseopt

When calling rev-parse --parseopt, as in the (now fixed) documented
example

eval "$(echo "$OPTS_SPEC" | git rev-parse --parseopt -- "$@" || echo exit $?)"

the outermost quoting is required, as otherwise all runs of arbitrary
whitespace inside the resulting 'set -- ...' call would be collapsed
into a single space.

This was exposed as a result of our new use of cat <<\EOF since
47e9cd2 (parseopt: wrap rev-parse --parseopt usage for eval
consumption, 2010-06-12), but has always been a problem when handling
arguments containing e.g. newlines.

Point this out in the documentation, and in particular correct the
example that did not have the quotes.

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

Documentation: reporting bugsJunio C Hamano Mon, 2 Aug 2010 16:07:39 +0000 (09:07 -0700)

Documentation: reporting bugs

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

Fix DIFF_QUEUE_CLEAR refactoringJunio C Hamano Mon, 2 Aug 2010 15:29:42 +0000 (08:29 -0700)

Fix DIFF_QUEUE_CLEAR refactoring

It introduced a macro to reduce repeated assignments to three fields,
but an unrelated and incorrect change snuck in by mistake, which broke
commands like "git diff-files -p --submodule".

Noticed by Sven Verdoolaege.

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

git-gui: fix size and position of window panes on startupPat Thoyts Mon, 2 Aug 2010 12:42:45 +0000 (13:42 +0100)

git-gui: fix size and position of window panes on startup

The themed panedwindow needs to have the sash position set after the
widget has been mapped therefore apply this setting in the Map event
binding. To avoid visible redraws as the application is constructed
the main window should be withdrawn until all the widgets have been added

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>

git-gui: mc cannot be used before msgcat has been loadedPat Thoyts Mon, 2 Aug 2010 11:13:05 +0000 (12:13 +0100)

git-gui: mc cannot be used before msgcat has been loaded

If someone attempts to use an older version that Tk 8.4 the error was
masked by the lack of a mc command.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>

git-gui: use textconv filter for diff and blameClément Poulain Fri, 30 Jul 2010 08:11:02 +0000 (09:11 +0100)

git-gui: use textconv filter for diff and blame

Create a checkbox "Use Textconv For Diffs and Blame" in git-gui options.
If checked and if the driver for the concerned file exists, git-gui calls diff
and blame with --textconv option

Signed-off-by: Clément Poulain <clement.poulain@ensimag.imag.fr>
Signed-off-by: Diane Gasselin <diane.gasselin@ensimag.imag.fr>
Signed-off-by: Axel Bonnet <axel.bonnet@ensimag.imag.fr>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>

git-gui: Avoid using the <<Copy>> binding as a menu... Pat Thoyts Mon, 8 Mar 2010 12:43:27 +0000 (12:43 +0000)

git-gui: Avoid using the <<Copy>> binding as a menu accelerator on win32

On Windows the Control-C binding is used to copy and is mapped to the Tk
virtual event <<Copy>>. In the initial git-gui dialog this is also bound
as an accelerator for the Clone menu item. The effect is that both bindings
run, copying the text but resetting the clone page or switching to the clone
page when the user tries to copy text from one of the entry fields.
This patch avoids this by using Control-L instead for Windows only.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>

git-gui: fix shortcut creation on cygwinHeiko Voigt Sat, 27 Feb 2010 20:48:48 +0000 (21:48 +0100)

git-gui: fix shortcut creation on cygwin

When the user tried to create a desktop icon with git gui on cygwin
wscript was complaining about an unknown option and displaying the
non-native path as such.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>

git-gui: fix PATH environment for mingw development... Heiko Voigt Sat, 27 Feb 2010 20:47:42 +0000 (21:47 +0100)

git-gui: fix PATH environment for mingw development environment

When creating a desktop shortcut from the gui the shortcut directly
starts wish with the git-gui script. In the msysgit development
environment some dll's reside in the mingw/bin directory which causes
that git can not start because libiconv2.dll is not found.

When using such a link the error is even more cryptic stating:
"child killed: unknown signal"

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>

git-gui: fix usage of _gitworktree when creating shortc... Heiko Voigt Sat, 27 Feb 2010 20:45:51 +0000 (21:45 +0100)

git-gui: fix usage of _gitworktree when creating shortcut for windows

This fixes msysGit issue 425.

Signed-off-by: Heiko Voigt <heiko.voigt@mahr.de>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>

git-gui: fix "Explore Working Copy" for Windows againMarkus Heidelberg Thu, 25 Feb 2010 00:14:22 +0000 (01:14 +0100)

git-gui: fix "Explore Working Copy" for Windows again

It has already been fixed in commit 454efb47 (git-gui (Win): make
"Explore Working Copy" more robust, 2009-04-01), but has been broken in
commit 21985a11 (git-gui: handle non-standard worktree locations,
2010-01-23) by accidentally replacing too much with a new variable.

The problem can be reproduced when starting git-gui from within a
subdirectory. The solution is to convert the path name, explorer.exe is
invoked with, to a platform native name.

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>

xsize_t: check whether we lose bitsThomas Rast Wed, 28 Jul 2010 16:36:31 +0000 (18:36 +0200)

xsize_t: check whether we lose bits

Attempting to mmap (via git-add or similar) a file larger than 4GB on
32-bit Linux systems results in a repository that has only the file
modulo 4GB stored, because of truncation of the off_t file size to a
size_t for mmap.

When xsize_t was introduced to handle this truncation in dc49cd7 (Cast
64 bit off_t to 32 bit size_t, 2007-03-06), Shawn even pointed out
that it should detect when such a cutoff happens.

Make it so.

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

Fix git rebase --continue to work with touched filesDavid D. Kilzer Wed, 28 Jul 2010 08:20:16 +0000 (01:20 -0700)

Fix git rebase --continue to work with touched files

When performing a non-interactive rebase, sometimes
"git rebase --continue" will fail if an unmodified file is
touched in the working directory:

You must edit all merge conflicts and then
mark them as resolved using git add

This is caused by "git diff-files" reporting a difference
between the index and the filesystem:

:100644 100644 d00491...... 000000...... M file

The fix is to run "git update-index --refresh" before
"git diff-files" as is done in git-rebase--interactive.

Signed-off-by: David D. Kilzer <ddkilzer@kilzer.net>
Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Document ls-files -t as semi-obsolete.Matthieu Moy Wed, 28 Jul 2010 07:24:27 +0000 (09:24 +0200)

Document ls-files -t as semi-obsolete.

The behavior of "git ls-files -t" is very misleading (see
http://thread.gmane.org/gmane.comp.version-control.git/126516 and
http://thread.gmane.org/gmane.comp.version-control.git/144394/focus=144397
for examples of mislead users) and badly documented, hence we point the
users to superior alternatives.

The feature is marked as "semi-obsolete" but not "scheduled for removal"
since it's a plumbing command, scripts might use it, and Git testsuite
already uses it to test the state of the index.

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

Git 1.7.2.1 v1.7.2.1Junio C Hamano Tue, 27 Jul 2010 23:42:47 +0000 (16:42 -0700)

Git 1.7.2.1

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