git
13 years agoMerge branch 'tf/string-list-init'
Junio C Hamano [Wed, 18 Aug 2010 19:47:04 +0000 (12:47 -0700)] 
Merge branch 'tf/string-list-init'

* tf/string-list-init:
  string_list: Add STRING_LIST_INIT macro and make use of it.

13 years agoMerge branch 'cc/find-commit-subject'
Junio C Hamano [Wed, 18 Aug 2010 19:46:55 +0000 (12:46 -0700)] 
Merge branch 'cc/find-commit-subject'

* cc/find-commit-subject:
  blame: use find_commit_subject() instead of custom code
  merge-recursive: use find_commit_subject() instead of custom code
  bisect: use find_commit_subject() instead of custom code
  revert: rename variables related to subject in get_message()
  revert: refactor code to find commit subject in find_commit_subject()
  revert: fix off by one read when searching the end of a commit subject

13 years agoMerge branch 'jn/maint-plug-leak'
Junio C Hamano [Wed, 18 Aug 2010 19:37:09 +0000 (12:37 -0700)] 
Merge branch 'jn/maint-plug-leak'

* 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

13 years agoMerge branch 'jl/submodule-ignore-diff'
Junio C Hamano [Wed, 18 Aug 2010 19:36:25 +0000 (12:36 -0700)] 
Merge branch 'jl/submodule-ignore-diff'

* jl/submodule-ignore-diff:
  Add tests for the diff.ignoreSubmodules config option
  Add the 'diff.ignoreSubmodules' config setting
  Submodules: Use "ignore" settings from .gitmodules too for diff and status
  Submodules: Add the new "ignore" config option for diff and status

Conflicts:
diff.c

13 years agoMerge branch 'ml/rebase-x-strategy'
Junio C Hamano [Wed, 18 Aug 2010 19:29:47 +0000 (12:29 -0700)] 
Merge branch 'ml/rebase-x-strategy'

* ml/rebase-x-strategy:
  rebase: support -X to pass through strategy options

13 years agoMerge branch 'jn/fix-abbrev'
Junio C Hamano [Wed, 18 Aug 2010 19:28:58 +0000 (12:28 -0700)] 
Merge branch 'jn/fix-abbrev'

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

13 years agoMerge branch 'vs/doc-spell'
Junio C Hamano [Wed, 18 Aug 2010 19:28:24 +0000 (12:28 -0700)] 
Merge branch 'vs/doc-spell'

* vs/doc-spell:
  Documentation: spelling fixes

13 years agoMerge branch 'jh/use-test-must-fail'
Junio C Hamano [Wed, 18 Aug 2010 19:17:17 +0000 (12:17 -0700)] 
Merge branch 'jh/use-test-must-fail'

* jh/use-test-must-fail:
  Convert "! git" to "test_must_fail git"

13 years agoMerge branch 'jh/clean-exclude'
Junio C Hamano [Wed, 18 Aug 2010 19:17:02 +0000 (12:17 -0700)] 
Merge branch 'jh/clean-exclude'

* jh/clean-exclude:
  Add test for git clean -e.
  Add -e/--exclude to git-clean.

13 years agoMerge branch 'kf/post-receive-sample-hook'
Junio C Hamano [Wed, 18 Aug 2010 19:16:50 +0000 (12:16 -0700)] 
Merge branch 'kf/post-receive-sample-hook'

* kf/post-receive-sample-hook:
  post-receive-email: optional message line count limit

13 years agoMerge branch 'ab/report-corrupt-object-with-type'
Junio C Hamano [Wed, 18 Aug 2010 19:16:41 +0000 (12:16 -0700)] 
Merge branch 'ab/report-corrupt-object-with-type'

* ab/report-corrupt-object-with-type:
  sha1_file: Show the the type and path to corrupt objects

13 years agoMerge branch 'jn/rebase-rename-am'
Junio C Hamano [Wed, 18 Aug 2010 19:16:31 +0000 (12:16 -0700)] 
Merge branch 'jn/rebase-rename-am'

* 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

13 years agoMerge branch 'jn/fast-import-subtree'
Junio C Hamano [Wed, 18 Aug 2010 19:14:41 +0000 (12:14 -0700)] 
Merge branch 'jn/fast-import-subtree'

* jn/fast-import-subtree:
  Teach fast-import to import subtrees named by tree id

13 years agoMerge branch 'ar/string-list-foreach'
Junio C Hamano [Wed, 18 Aug 2010 19:14:38 +0000 (12:14 -0700)] 
Merge branch 'ar/string-list-foreach'

* ar/string-list-foreach:
  Convert the users of for_each_string_list to for_each_string_list_item macro
  Add a for_each_string_list_item macro

13 years agoMerge branch 'jh/graph-next-line'
Junio C Hamano [Wed, 18 Aug 2010 19:14:32 +0000 (12:14 -0700)] 
Merge branch 'jh/graph-next-line'

* jh/graph-next-line:
  Enable custom schemes for column colors in the graph API
  Make graph_next_line() available in the graph.h API

13 years agoMerge branch 'tr/xsize-bits'
Junio C Hamano [Wed, 18 Aug 2010 19:14:23 +0000 (12:14 -0700)] 
Merge branch 'tr/xsize-bits'

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

13 years agoMerge branch 'tc/checkout-B'
Junio C Hamano [Wed, 18 Aug 2010 18:42:47 +0000 (11:42 -0700)] 
Merge branch 'tc/checkout-B'

* tc/checkout-B:
  builtin/checkout: handle -B from detached HEAD correctly
  builtin/checkout: learn -B
  builtin/checkout: reword hint for -b
  add tests for checkout -b

13 years agomergetool: Skip autoresolved paths
David Aguilar [Tue, 17 Aug 2010 09:22:46 +0000 (02:22 -0700)] 
mergetool: Skip autoresolved paths

When mergetool is run without path limiters it loops
over each entry in 'git ls-files -u'.  This includes
autoresolved paths.

Teach mergetool to only merge files listed in 'rerere status'
when rerere is enabled.

There are some subtle but harmless changes in behavior.
We now call cd_to_toplevel when no paths are given.
We do this because 'rerere status' paths are always relative
to the root.  This is beneficial for the non-rerere use as
well in that mergetool now runs against all unmerged files
regardless of the current directory.

This also slightly tweaks the output when run without paths
to be more readable.

The old output:

Merging the files: foo
bar
baz

The new output:

Merging:
foo
bar
baz

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-svn: fix fetch with deleted tag
David D. Kilzer [Sun, 15 Aug 2010 13:15:55 +0000 (06:15 -0700)] 
git-svn: fix fetch with deleted tag

Currently git-svn assumes that two tags created from the same
revision will have the same repo url, so it uses a ref to the
tag without checking that its url matches the current url.

This causes issues when fetching an svn repo where a tag was
created, deleted, and then recreated under the following
circumstances:

- Both tags were copied from the same revision.
- Both tags had the same name.
- Both tags had different repository paths.
- [Optional] Both tags have a file with the same name but
  different content.

When all four conditions are met, a checksum mismatch error
occurs because the content of two files with the same path
differs (see t/t9155--git-svn-fetch-deleted-tag.sh):

    Checksum mismatch: ChangeLog 065854....
    expected: ce771b....
         got: 9563fd....

When only the first three conditions are met, no error occurs
but the tag in git matches the first (deleted) tag instead of
the last (most recent) tag (see
t/t9156-git-svn-fetch-deleted-tag-2.sh).

The fix is to verify that the repo url for the ref matches the
current url.  If the urls do not match, then a "tail" is grown
on the tag name by appending a dash and rechecking the new ref's
repo url until either a matching repo url is found or a new tag
is created.

Signed-off-by: David D. Kilzer <ddkilzer@kilzer.net>
Acked-by: Eric Wong <normalperson@yhbt.net>
13 years agogit-svn: fix regex to remove "tail" from svn tags
David D. Kilzer [Sun, 15 Aug 2010 13:15:54 +0000 (06:15 -0700)] 
git-svn: fix regex to remove "tail" from svn tags

Fix a regular expression used to remove the revision from the
end of an svn tag or branch name.  The regex did not account for
any "tail" (dashes) that may have been added to the end of the
tag name (which first appeared in v1.4.1-rc2~11).  If not fixed,
tags with names like "tags/mytag@5--@2" may be created.

Signed-off-by: David D. Kilzer <ddkilzer@kilzer.net>
Acked-by: Eric Wong <normalperson@yhbt.net>
13 years agoMerge branch 'jc/sha1-name-find-fix'
Junio C Hamano [Fri, 13 Aug 2010 01:32:49 +0000 (18:32 -0700)] 
Merge branch 'jc/sha1-name-find-fix'

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

Conflicts:
sha1_name.c

13 years agoMerge branch 'jn/doc-pull'
Junio C Hamano [Fri, 13 Aug 2010 01:32:37 +0000 (18:32 -0700)] 
Merge branch 'jn/doc-pull'

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

13 years agoMerge branch 'jn/maint-gitweb-dynconf'
Junio C Hamano [Fri, 13 Aug 2010 01:32:31 +0000 (18:32 -0700)] 
Merge branch 'jn/maint-gitweb-dynconf'

* jn/maint-gitweb-dynconf:
  gitweb: allow configurations that change with each request

13 years agoMerge branch 'bc/use-more-hardlinks-in-install'
Junio C Hamano [Fri, 13 Aug 2010 01:32:20 +0000 (18:32 -0700)] 
Merge branch 'bc/use-more-hardlinks-in-install'

* 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

13 years agoMerge branch 'tr/rfc-reset-doc'
Junio C Hamano [Fri, 13 Aug 2010 01:31:43 +0000 (18:31 -0700)] 
Merge branch 'tr/rfc-reset-doc'

* 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

13 years agoMerge branch 'jn/parse-date-basic'
Junio C Hamano [Fri, 13 Aug 2010 01:31:03 +0000 (18:31 -0700)] 
Merge branch 'jn/parse-date-basic'

* jn/parse-date-basic:
  Export parse_date_basic() to convert a date string to timestamp

13 years agoMerge branch 'sp/fix-smart-http-deadlock-on-error'
Junio C Hamano [Fri, 13 Aug 2010 01:27:01 +0000 (18:27 -0700)] 
Merge branch 'sp/fix-smart-http-deadlock-on-error'

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

13 years agoMerge branch 'maint'
Junio C Hamano [Fri, 13 Aug 2010 01:07:09 +0000 (18:07 -0700)] 
Merge branch 'maint'

* maint:
  push: mention "git pull" in error message for non-fast forwards
  Standardize do { ... } while (0) style
  t/t7003: replace \t with literal tab in sed expression
  index-pack: Don't follow replace refs.

13 years agopush: mention "git pull" in error message for non-fast forwards
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>
13 years agoStandardize do { ... } while (0) style
Jonathan 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>
13 years agot/t7003: replace \t with literal tab in sed expression
Brandon 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>
13 years agoindex-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>
13 years agoMerge branch 'maint'
Junio C Hamano [Wed, 11 Aug 2010 18:32:00 +0000 (11:32 -0700)] 
Merge branch 'maint'

* maint:
  post-receive-email: remove spurious commas in email subject
  fast-import: export correctly marks larger than 2^20-1
  t/lib-git-svn.sh: use $PERL_PATH for perl, not perl from $PATH
  diff: strip extra "/" when stripping prefix

13 years agopost-receive-email: remove spurious commas in email subject
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>
13 years agofast-import: export correctly marks larger than 2^20-1
Raja 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>
13 years agot/lib-git-svn.sh: use $PERL_PATH for perl, not perl from $PATH
Æ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>
13 years agowrite-tree: Avoid leak when index refers to an invalid object
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>
13 years agoread-tree: stop leaking tree objects
Jonathan 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>
13 years agocore: Stop leaking ondisk_cache_entrys
Jonathan 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>
13 years agodiff: strip extra "/" when stripping prefix
Jakub 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>
13 years agoMerge branch 'maint'
Junio C Hamano [Mon, 9 Aug 2010 20:05:47 +0000 (13:05 -0700)] 
Merge branch 'maint'

* maint:
  gitweb: clarify search results page when no matching commit found
  Documentation: add a FILES section for show-ref
  Makefile: add missing dependency on http.h
  Makefile: add missing dependencies on url.h
  Documentation/git-log: Clarify --full-diff
  git-rebase: fix typo when parsing --force-rebase
  imap-send: Fix sprintf usage
  prune: allow --dry-run for -n and --verbose for -v
  notes: allow --dry-run for -n and --verbose for -v
  Document -B<n>[/<m>], -M<n> and -C<n> variants of -B, -M and -C
  Documentation: cite git-am from git-apply
  t7003: fix subdirectory-filter test
  Allow "check-ref-format --branch" from subdirectory
  check-ref-format: handle subcommands in separate functions
  pretty-options.txt: match --format's documentation with implementation.

13 years agogitweb: clarify search results page when no matching commit found
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>
13 years agobuiltin/checkout: handle -B from detached HEAD correctly
Tay Ray Chuan [Mon, 9 Aug 2010 16:52:26 +0000 (00:52 +0800)] 
builtin/checkout: handle -B from detached HEAD correctly

Ensure that strcmp() isn't called when head is null.

Previously we were getting segfaults when checkout -B was done from a
detached HEAD.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoDocumentation: add a FILES section for show-ref
Jonathan 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>
13 years agoMakefile: add missing dependency on http.h
Jonathan 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>
13 years agoMakefile: add missing dependencies on url.h
Jonathan 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>
13 years agoDocumentation/git-log: Clarify --full-diff
Michael 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>
13 years agogit-rebase: fix typo when parsing --force-rebase
Willy 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>
13 years agoimap-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>
13 years agoprune: allow --dry-run for -n and --verbose for -v
René 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>
13 years agonotes: allow --dry-run for -n and --verbose for -v
René 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>
13 years agoMerge branch 'webrick' of git://git.bogomips.org/git-svn
Junio C Hamano [Mon, 9 Aug 2010 16:46:52 +0000 (09:46 -0700)] 
Merge branch 'webrick' of git://git.bogomips.org/git-svn

* 'webrick' of git://git.bogomips.org/git-svn:
  instaweb: add access+error logging for WEBrick
  instaweb: minimize moving parts for WEBrick
  instaweb: fix WEBrick server support

13 years agoDocument -B<n>[/<m>], -M<n> and -C<n> variants of -B, -M and -C
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>
13 years agoDocumentation: cite git-am from git-apply
Brad 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>
13 years agot7003: fix subdirectory-filter test
Thomas 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>
13 years agoAdd tests for the diff.ignoreSubmodules config option
Jens Lehmann [Thu, 5 Aug 2010 23:27:15 +0000 (01:27 +0200)] 
Add tests for the diff.ignoreSubmodules config option

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoAdd the 'diff.ignoreSubmodules' config setting
Johannes Schindelin [Thu, 5 Aug 2010 08:49:55 +0000 (10:49 +0200)] 
Add the 'diff.ignoreSubmodules' config setting

When you have a lot of submodules checked out, the time penalty to check
for dirty submodules can easily imply a multiplication of the total time
by the factor 20. This makes the difference between almost instantaneous
(< 2 seconds) and unbearably slow (> 50 seconds) here, since the disk
caches are constantly overloaded.

To this end, the submodule.*.ignore config option was introduced, but it
is per-submodule.

This commit introduces a global config setting to set a default
(porcelain) value for the --ignore-submodules option, keeping the
default at 'none'. It can be overridden by the submodule.*.ignore
setting and by the --ignore-submodules option.

Incidentally, this commit fixes an issue with the overriding logic:
multiple --ignore-submodules options would not clear the previously
set flags.

While at it, fix a typo in the documentation for submodule.*.ignore.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoSubmodules: Use "ignore" settings from .gitmodules too for diff and status
Jens Lehmann [Thu, 5 Aug 2010 22:40:48 +0000 (00:40 +0200)] 
Submodules: Use "ignore" settings from .gitmodules too for diff and status

The .gitmodules file is parsed for "submodule.<name>.ignore" entries
before looking for them in .git/config. Thus settings found in .git/config
will override those from .gitmodules, thereby allowing the local developer
to ignore settings given by the remote side while also letting upstream
set defaults for those users who don't have special needs.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoSubmodules: Add the new "ignore" config option for diff and status
Jens Lehmann [Thu, 5 Aug 2010 22:39:25 +0000 (00:39 +0200)] 
Submodules: Add the new "ignore" config option for diff and status

The new "ignore" config option controls the default behavior for "git
status" and the diff family. It specifies under what circumstances they
consider submodules as modified and can be set separately for each
submodule.

The command line option "--ignore-submodules=" has been extended to accept
the new parameter "none" for both status and diff.

Users that chose submodules to get rid of long work tree scanning times
might want to set the "dirty" option for those submodules. This brings
back the pre 1.7.0 behavior, where submodule work trees were never
scanned for modifications. By using "--ignore-submodules=none" on the
command line the status and diff commands can be told to do a full scan.

This option can be set to the following values (which have the same name
and meaning as for the "--ignore-submodules" option of status and diff):

"all": All changes to the submodule will be ignored.

"dirty": Only differences of the commit recorded in the superproject and
the submodules HEAD will be considered modifications, all changes
to the work tree of the submodule will be ignored. When using this
value, the submodule will not be scanned for work tree changes at
all, leading to a performance benefit on large submodules.

"untracked": Only untracked files in the submodules work tree are ignored,
a changed HEAD and/or modified files in the submodule will mark it
as modified.

"none" (which is the default): Either untracked or modified files in a
submodules work tree or a difference between the subdmodules HEAD
and the commit recorded in the superproject will make it show up
as changed. This value is added as a new parameter for the
"--ignore-submodules" option of the diff family and "git status"
so the user can override the settings in the configuration.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agosmart-http: Don't deadlock on server failure
Shawn 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>
13 years agoAllow "check-ref-format --branch" from subdirectory
Jonathan 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>
13 years agocheck-ref-format: handle subcommands in separate functions
Jonathan 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>
13 years agoMerge git://git.bogomips.org/git-svn
Junio C Hamano [Fri, 6 Aug 2010 16:06:20 +0000 (09:06 -0700)] 
Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
  git svn: URL-decode left-hand side of svn refspec

13 years agopretty-options.txt: match --format's documentation with implementation.
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>
13 years agoinstaweb: add access+error logging for WEBrick
Eric Wong [Thu, 5 Aug 2010 08:46:04 +0000 (08:46 +0000)] 
instaweb: add access+error logging for WEBrick

This allows WEBrick to support all the logging functionality
in a manner consistent with the other web servers.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
13 years agoinstaweb: minimize moving parts for WEBrick
Eric Wong [Thu, 5 Aug 2010 08:35:45 +0000 (08:35 +0000)] 
instaweb: minimize moving parts for WEBrick

Since there are WEBrick configuration settings (including the
upcoming AccessLog support) that cannot be represented in YAML
and require Ruby anyways, the YAML config file is an unnecessary
layer of complexity.

Additionally, the shell script wrapper to start WEBrick is
unecessary since our generated Ruby script can be made
executable in the same manner with /usr/bin/env.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
13 years agoinstaweb: fix WEBrick server support
Eric Wong [Wed, 4 Aug 2010 09:51:25 +0000 (09:51 +0000)] 
instaweb: fix WEBrick server support

This has been broken since commit be5347b ("httpd logs in a
"$httpd_only" subdirectory").

Since WEBrick has no other way of preserving environment
variables needed for gitweb, we create a shell script wrapper
that sets the environment variables as our CGI interpreter
to run gitweb.cgi.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
13 years agogit svn: URL-decode left-hand side of svn refspec
Steven Walter [Tue, 3 Aug 2010 23:21:25 +0000 (19:21 -0400)] 
git svn: URL-decode left-hand side of svn refspec

This change allows git-svn to handle an URL with colons in the path

[ew: rewritten to use uri_decode() function]

Signed-off-by: Eric Wong <normalperson@yhbt.net>
13 years agoMerge branch 'maint'
Junio C Hamano [Tue, 3 Aug 2010 22:20:01 +0000 (15:20 -0700)] 
Merge branch 'maint'

* maint:
  contrib/svn-fe: Add the svn-fe target to .gitignore
  contrib/svn-fe: Fix IncludePath
  Fix DIFF_QUEUE_CLEAR refactoring
  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

13 years agoMerge branch 'gp/pack-refs-remove-empty-dirs'
Junio C Hamano [Tue, 3 Aug 2010 22:19:02 +0000 (15:19 -0700)] 
Merge branch 'gp/pack-refs-remove-empty-dirs'

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

13 years agoMerge branch 'sv/maint-diff-q-clear-fix' into maint
Junio 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

13 years agoMerge branch 'rr/svn-fe' into maint
Junio 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

13 years agoMerge branch 'pt/git-gui' into maint
Junio 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

13 years agorebase: support -X to pass through strategy options
Mike Lundy [Wed, 28 Jul 2010 22:04:29 +0000 (00:04 +0200)] 
rebase: support -X to pass through strategy options

git-rebase calls out to merge strategies, but did not support merge
strategy options so far.  Add this, in the same style used in
git-merge.

Sadly we have to do the full quoting/eval dance here, since
merge-recursive supports the --subtree=<path> option which potentially
contains whitespace.

This patch does not cover git rebase -i, which does not call any merge
strategy directly except in --preserve-merges, and even then only for
merges.

[jc: with a trivial fix-up for 'expr']

Signed-off-by: Mike Lundy <mike@fluffypenguin.org>
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocontrib/svn-fe: Add the svn-fe target to .gitignore
Ramkumar 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>
13 years agocontrib/svn-fe: Fix IncludePath
Ramkumar 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>
13 years agoDocumentation: flesh out “git pull” description
Jonathan 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>
13 years agoMerge git://git.bogomips.org/git-svn
Junio C Hamano [Mon, 2 Aug 2010 22:38:55 +0000 (15:38 -0700)] 
Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
  git svn: fix dcommit to work with touched files
  git svn: add an option to recode pathnames

13 years agoupload-pack: Improve error message when bad ref requested
Elijah Newren [Sat, 31 Jul 2010 20:11:46 +0000 (14:11 -0600)] 
upload-pack: Improve error message when bad ref requested

When printing an error message saying a ref was requested that we do not
have, only print that ref, rather than the ref and everything sent to us
on the same packet line (e.g. protocol support specifications).

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoDocument git-instaweb start/stop/restart
Jared Hance [Mon, 2 Aug 2010 18:20:38 +0000 (14:20 -0400)] 
Document git-instaweb start/stop/restart

The flags --start, --stop, and --restart can be used without the "--".
Document this feature.

Signed-off-by: Jared Hance <jaredhance@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogitweb: Fix typo in run() subroutine
Jakub Narebski [Mon, 2 Aug 2010 20:21:47 +0000 (22:21 +0200)] 
gitweb: Fix typo in run() subroutine

Run $post_dispatch_hook->() not $pre_dispatch_hook->() after each
request.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agosha1_name.c: fix parsing of ":/token" syntax
Junio 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>
13 years agogit svn: fix dcommit to work with touched files
David D. Kilzer [Mon, 2 Aug 2010 19:58:19 +0000 (12:58 -0700)] 
git svn: fix dcommit to work with touched files

The dcommit command fails if an otherwise unmodified file has
been touched in the working directory:

    Cannot dcommit with a dirty index.  Commit your changes
    first, or stash them with `git stash'.

This happens because "git diff-index" reports 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-index" as is done in git-rebase and
git-rebase--interactive before "git diff-files".

This changes dcommit to display a list of modified files before
exiting.

Also add a similar test case for "git svn rebase".

[ew: rearranged commit message subject]

Signed-off-by: David D. Kilzer <ddkilzer@kilzer.net>
Acked-by: Eric Wong <normalperson@yhbt.net>
13 years agols-files: learn a debugging dump format
Thomas Rast [Fri, 30 Jul 2010 22:35:59 +0000 (00:35 +0200)] 
ls-files: learn a debugging dump format

Teach git-ls-files a new option --debug that just tacks all available
data from the cache onto each file's line.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'maint'
Junio C Hamano [Mon, 2 Aug 2010 19:02:16 +0000 (12:02 -0700)] 
Merge branch 'maint'

* maint:
  test-lib: Remove 3 year old no-op --no-python option
  test-lib: Ignore --quiet under a TAP harness
  Documentation/rev-parse: quoting is required with --parseopt
  Documentation: reporting bugs
  Fix git rebase --continue to work with touched files
  Document ls-files -t as semi-obsolete.

13 years agoMerge branch 'ab/tap' into maint
Junio 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

13 years agotest-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>
13 years agotest-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>
13 years agobuiltin/push.c: remove useless temporary variable
Jared Hance [Sat, 31 Jul 2010 12:54:55 +0000 (08:54 -0400)] 
builtin/push.c: remove useless temporary variable

Creating a variable nr here to use throughout the function only to change
refspec_nr to nr at the end, having not used refspec_nr the entire time,
is rather pointless. Instead, simply increment refspec_nr.

While at it, use ALLOC_GROW() instead of xrealloc().

Signed-off-by: Jared Hance <jaredhance@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogitweb: allow configurations that change with each request
Jonathan Nieder [Sat, 31 Jul 2010 03:01:59 +0000 (22:01 -0500)] 
gitweb: allow configurations that change with each request

gitolite's contrib/gitweb/gitweb.conf includes:

$ENV{GL_USER} = $cgi->remote_user || "gitweb";

which is useful for setups where a user has to be authenticated
to access certain repos.  Perhaps other typical configurations
change per session in other ways, too.

v1.7.2-rc2~6 (gitweb: Move evaluate_gitweb_config out of run_request,
2010-07-05) broke such configurations for a speedup, by loading
the configuration once per FastCGI process.

Probably in the end there should be a way to specify in the
configuration whether a particular installation wants the speedup or
the flexibility.  But for now it is easier to just undo the relevant
change.

This partially reverts commit 869d58813b24c74e84c9388041eafcef40cb51e4.

Reported-by: Julio Lajara <julio.lajara@alum.rpi.edu>
Analysis-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge git://repo.or.cz/git-gui into pt/git-gui
Junio 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

13 years agoDocumentation/rev-parse: quoting is required with --parseopt
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>
13 years agoDocumentation: reporting bugs
Junio 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>
13 years agoFix DIFF_QUEUE_CLEAR refactoring
Junio 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>
13 years agogit-gui: fix size and position of window panes on startup
Pat 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>
13 years agogit-gui: mc cannot be used before msgcat has been loaded
Pat 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>
13 years agogit-gui: use textconv filter for diff and blame
Clé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>
13 years agogit-gui: Avoid using the <<Copy>> binding as a menu accelerator on win32
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>
13 years agogit-gui: fix shortcut creation on cygwin
Heiko 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>
13 years agogit-gui: fix PATH environment for mingw development environment
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>