gitweb.git
Merge branch 'jc/no-gitweb-test-without-cgi-etc'Junio C Hamano Wed, 13 Jul 2011 21:31:36 +0000 (14:31 -0700)

Merge branch 'jc/no-gitweb-test-without-cgi-etc'

* jc/no-gitweb-test-without-cgi-etc:
t/gitweb-lib.sh: skip gitweb tests when perl dependencies are not met

Merge branch 'fg/submodule-keep-updating'Junio C Hamano Wed, 13 Jul 2011 21:31:35 +0000 (14:31 -0700)

Merge branch 'fg/submodule-keep-updating'

* fg/submodule-keep-updating:
git-submodule.sh: clarify the "should we die now" logic
submodule update: continue when a checkout fails
git-sh-setup: add die_with_status

Conflicts:
git-submodule.sh

Merge branch 'jc/legacy-loose-object'Junio C Hamano Wed, 13 Jul 2011 21:31:34 +0000 (14:31 -0700)

Merge branch 'jc/legacy-loose-object'

* jc/legacy-loose-object:
sha1_file.c: "legacy" is really the current format

Merge branch 'an/shallow-doc'Junio C Hamano Wed, 13 Jul 2011 21:31:34 +0000 (14:31 -0700)

Merge branch 'an/shallow-doc'

* an/shallow-doc:
Document the underlying protocol used by shallow repositories and --depth commands.
Fix documentation of fetch-pack that implies that the client can disconnect after sending wants.

Start 1.7.7 cycleJunio C Hamano Thu, 7 Jul 2011 00:00:46 +0000 (17:00 -0700)

Start 1.7.7 cycle

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

Merge branch 'maint'Junio C Hamano Wed, 6 Jul 2011 23:48:59 +0000 (16:48 -0700)

Merge branch 'maint'

* maint:
docs: document --textconv diff option

docs: document --textconv diff optionJeff King Wed, 6 Jul 2011 15:13:30 +0000 (11:13 -0400)

docs: document --textconv diff option

This has been there since textconv existed, but was never
documented. There is some overlap with what's in
gitattributes(5), but it's important to warn in both places
that textconv diffs probably can't be applied.

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

Merge branch 'jc/streaming-filter' into nextJunio C Hamano Thu, 30 Jun 2011 00:09:28 +0000 (17:09 -0700)

Merge branch 'jc/streaming-filter' into next

* jc/streaming-filter:
t0021: test application of both crlf and ident
t0021-conversion.sh: fix NoTerminatingSymbolAtEOF test
streaming: filter cascading
streaming filter: ident filter
Add LF-to-CRLF streaming conversion
stream filter: add "no more input" to the filters
Add streaming filter API
convert.h: move declarations for conversion from cache.h

Merge branch 'jn/gitweb-js-blame' into nextJunio C Hamano Thu, 30 Jun 2011 00:09:27 +0000 (17:09 -0700)

Merge branch 'jn/gitweb-js-blame' into next

* jn/gitweb-js-blame:
gitweb.js: use setTimeout rather than setInterval in blame_incremental.js
gitweb.js: No need for loop in blame_incremental's handleResponse()
gitweb.js: No need for inProgress in blame_incremental.js

Merge branch 'da/git-prefix-everywhere' into nextJunio C Hamano Thu, 30 Jun 2011 00:09:27 +0000 (17:09 -0700)

Merge branch 'da/git-prefix-everywhere' into next

* da/git-prefix-everywhere:
t/t7503-pre-commit-hook.sh: Add GIT_PREFIX tests
git-mergetool--lib: Make vimdiff retain the current directory
git: Remove handling for GIT_PREFIX
setup: Provide GIT_PREFIX to built-ins

Merge branch 'jc/streaming' into nextJunio C Hamano Thu, 30 Jun 2011 00:09:27 +0000 (17:09 -0700)

Merge branch 'jc/streaming' into next

* jc/streaming:
sha1_file: use the correct type (ssize_t, not size_t) for read-style function
streaming: read loose objects incrementally
sha1_file.c: expose helpers to read loose objects
streaming: read non-delta incrementally from a pack
streaming_write_entry(): support files with holes
convert: CRLF_INPUT is a no-op in the output codepath
streaming_write_entry(): use streaming API in write_entry()
streaming: a new API to read from the object store
write_entry(): separate two helper functions out
unpack_object_header(): make it public
sha1_object_info_extended(): hint about objects in delta-base cache
sha1_object_info_extended(): expose a bit more info
packed_object_info_detail(): do not return a string

Merge branch 'ab/i18n-scripts' into nextJunio C Hamano Thu, 30 Jun 2011 00:09:27 +0000 (17:09 -0700)

Merge branch 'ab/i18n-scripts' into next

* ab/i18n-scripts: (48 commits)
i18n: git-bisect bisect_next_check "You need to" message
i18n: git-bisect [Y/n] messages
i18n: git-bisect bisect_replay + $1 messages
i18n: git-bisect bisect_reset + $1 messages
i18n: git-bisect bisect_run + $@ messages
i18n: git-bisect die + eval_gettext messages
i18n: git-bisect die + gettext messages
i18n: git-bisect echo + eval_gettext message
i18n: git-bisect echo + gettext messages
i18n: git-bisect gettext + echo message
i18n: git-bisect add git-sh-i18n
i18n: git-stash drop_stash say/die messages
i18n: git-stash "unknown option" message
i18n: git-stash die + eval_gettext $1 messages
i18n: git-stash die + eval_gettext $* messages
i18n: git-stash die + eval_gettext messages
i18n: git-stash die + gettext messages
i18n: git-stash say + gettext messages
i18n: git-stash echo + gettext message
i18n: git-stash add git-sh-i18n
...

Merge branch 'ef/maint-win-verify-path'Junio C Hamano Thu, 30 Jun 2011 00:09:17 +0000 (17:09 -0700)

Merge branch 'ef/maint-win-verify-path'

* ef/maint-win-verify-path:
verify_dotfile(): do not assume '/' is the path seperator
verify_path(): simplify check at the directory boundary
verify_path: consider dos drive prefix
real_path: do not assume '/' is the path seperator
A Windows path starting with a backslash is absolute

Merge branch 'js/i18n-windows'Junio C Hamano Thu, 30 Jun 2011 00:03:13 +0000 (17:03 -0700)

Merge branch 'js/i18n-windows'

* js/i18n-windows:
Windows: teach getenv to do a case-sensitive search
mingw.c: move definition of mingw_getenv down
sh-i18n--envsubst: do not crash when no arguments are given

Merge branch 'rs/grep-color'Junio C Hamano Thu, 30 Jun 2011 00:03:13 +0000 (17:03 -0700)

Merge branch 'rs/grep-color'

* rs/grep-color:
grep: add --heading
grep: add --break
grep: fix coloring of hunk marks between files

Merge branch 'jc/maint-1.7.3-checkout-describe'Junio C Hamano Thu, 30 Jun 2011 00:03:12 +0000 (17:03 -0700)

Merge branch 'jc/maint-1.7.3-checkout-describe'

* jc/maint-1.7.3-checkout-describe:
checkout -b <name>: correctly detect existing branch

Merge branch 'db/http-cookies'Junio C Hamano Thu, 30 Jun 2011 00:03:12 +0000 (17:03 -0700)

Merge branch 'db/http-cookies'

* db/http-cookies:
http: pass http.cookiefile using CURLOPT_COOKIEFILE

Merge branch 'jk/maint-1.7.2-status-ignored'Junio C Hamano Thu, 30 Jun 2011 00:03:12 +0000 (17:03 -0700)

Merge branch 'jk/maint-1.7.2-status-ignored'

* jk/maint-1.7.2-status-ignored:
git status --ignored: tests and docs
status: fix bug with missing --ignore files

Conflicts:
Documentation/git-status.txt
t/t7508-status.sh

Merge branch 'jc/diff-index-quick-exit-early'Junio C Hamano Thu, 30 Jun 2011 00:03:11 +0000 (17:03 -0700)

Merge branch 'jc/diff-index-quick-exit-early'

* jc/diff-index-quick-exit-early:
diff-index --quiet: learn the "stop feeding the backend early" logic

Conflicts:
unpack-trees.h

Merge branch 'mg/diff-stat-count'Junio C Hamano Thu, 30 Jun 2011 00:03:10 +0000 (17:03 -0700)

Merge branch 'mg/diff-stat-count'

* mg/diff-stat-count:
diff --stat-count: finishing touches
diff-options.txt: describe --stat-{width,name-width,count}
diff: introduce --stat-lines to limit the stat lines
diff.c: omit hidden entries from namelen calculation with --stat

Merge branch 'jc/advice-about-to-lose-commit'Junio C Hamano Thu, 30 Jun 2011 00:03:10 +0000 (17:03 -0700)

Merge branch 'jc/advice-about-to-lose-commit'

* jc/advice-about-to-lose-commit:
checkout: make advice when reattaching the HEAD less loud

Conflicts:
builtin/checkout.c

Merge branch 'jk/combine-diff-binary-etc'Junio C Hamano Thu, 30 Jun 2011 00:03:10 +0000 (17:03 -0700)

Merge branch 'jk/combine-diff-binary-etc'

* jk/combine-diff-binary-etc:
combine-diff: respect textconv attributes
refactor get_textconv to not require diff_filespec
combine-diff: handle binary files as binary
combine-diff: calculate mode_differs earlier
combine-diff: split header printing into its own function

Merge branch 'instaweb' of git://bogomips.org/git-svnJunio C Hamano Wed, 29 Jun 2011 23:43:23 +0000 (16:43 -0700)

Merge branch 'instaweb' of git://bogomips.org/git-svn

* 'instaweb' of git://bogomips.org/git-svn:
git-instaweb: Check that correct config file exists for (re)start
git-instaweb: Move all actions at the end of script
git-instaweb: Use $conf, not $fqgitdir/gitweb/httpd.conf
git-instaweb: Extract configuring web server into configure_httpd

Merge git://bogomips.org/git-svn into maintJunio C Hamano Wed, 29 Jun 2011 23:42:41 +0000 (16:42 -0700)

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

* git://bogomips.org/git-svn:
git-svn: Correctly handle root commits in mergeinfo ranges
git-svn: Disambiguate rev-list arguments to improve error message
git-svn: Demonstrate a bug with root commits in mergeinfo ranges

Merge branch 'maint-1.7.5' into maintJunio C Hamano Wed, 29 Jun 2011 23:41:55 +0000 (16:41 -0700)

Merge branch 'maint-1.7.5' into maint

* maint-1.7.5:
test: skip clean-up when running under --immediate mode
"branch -d" can remove more than one branches

test: skip clean-up when running under --immediate... Junio C Hamano Mon, 27 Jun 2011 18:02:22 +0000 (11:02 -0700)

test: skip clean-up when running under --immediate mode

Some tests try to be too careful about cleaning themselves up and
do

test_expect_success description '
set-up some test refs and/or configuration &&
test_when_finished "revert the above changes" &&
the real test
'

Which is nice to make sure that a potential failure would not have
unexpected interaction with the next test. This however interferes when
"the real test" fails and we want to see what is going on, by running the
test with --immediate mode and descending into its trash directory after
the test stops. The precondition to run the real test and cause it to fail
is all gone after the clean-up procedure defined by test_when_finished is
done.

Update test_run_ which is the workhorse of running a test script
called from test_expect_success and test_expect_failure, so that we do not
run clean-up script defined with test_when_finished when a test that is
expected to succeed fails under the --immediate mode.

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

"branch -d" can remove more than one branchesJunio C Hamano Mon, 27 Jun 2011 22:04:32 +0000 (15:04 -0700)

"branch -d" can remove more than one branches

Since 03feddd (git-check-ref-format: reject funny ref names, 2005-10-13),
"git branch -d" can take more than one branch names to remove.

The documentation was correct, but the usage string was not.

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

git-svn: Correctly handle root commits in mergeinfo... Michael Haggerty Sat, 18 Jun 2011 06:48:00 +0000 (08:48 +0200)

git-svn: Correctly handle root commits in mergeinfo ranges

If the bottom of a mergeinfo range is a commit that maps to a git root
commit, then it doesn't have a parent. In such a case, use git commit
range "$top_commit" rather than "$bottom_commit^..$top_commit".

[ew: line-wrap at 80 columns]

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-svn: Disambiguate rev-list arguments to improve... Michael Haggerty Sat, 18 Jun 2011 06:47:59 +0000 (08:47 +0200)

git-svn: Disambiguate rev-list arguments to improve error message

Add "--" in the "git rev-list" command line so that if there is a bug
and the revisions cannot be found, the error message is a bit less
cryptic.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-svn: Demonstrate a bug with root commits in mergein... Michael Haggerty Sat, 18 Jun 2011 06:47:58 +0000 (08:47 +0200)

git-svn: Demonstrate a bug with root commits in mergeinfo ranges

If a svn:mergeinfo range starts at a commit that was converted as a
git root commit (e.g., r1 or a branch that was created out of thin
air), then there is an error when git-svn tries to run

git rev-list "$bottom_commit^..$top_commit"

because $bottom_commit (the git commit corresponding to r1) has no
parent.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-instaweb: Check that correct config file exists... Jakub Narebski Thu, 23 Jun 2011 21:01:03 +0000 (23:01 +0200)

git-instaweb: Check that correct config file exists for (re)start

Currently start/restart does not generate any configuration files for
spawning a new instance. This means that

$ git instaweb --http=<server> --start

might pick up stale 'httpd.conf' file for a different web server
(e.g. for default lighttpd when requesting apache2).

This commit changes that, and makes git-instaweb generate web server
config file and/or gitweb config file if don't exists.

This required naming config files after the name of web server
(alternate solution would be to somehow mark for which web server was
config file generated).

Note that web servers that embed configuration in server script file,
namely webrick and plackup, and which delete "$conf" in their *_conf
function, would have their config (server script) always regenerated.

Note: this commit introduces a bit of code repetition (but only a few
lines).

Reported-by: Gurjeet Singh <singh.gurjeet@gmail.com>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-instaweb: Move all actions at the end of scriptJakub Narebski Thu, 23 Jun 2011 20:59:26 +0000 (22:59 +0200)

git-instaweb: Move all actions at the end of script

As a nice side-effect now the order of parameters does not matter:

$ git instaweb --httpd=apache2 --start

is now (after this patch) the same as

$ git instaweb --start --httpd=apache2

Before this commit --start, --stop, --restart (and their subcommand
versions start, stop, restart) exited immediately.

This is preparatory work for making start/restart check that correct
configuration is set up; this change was required to have access in
start_httpd to requested web browser etc.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-instaweb: Use $conf, not $fqgitdir/gitweb/httpd... Jakub Narebski Thu, 23 Jun 2011 19:56:37 +0000 (21:56 +0200)

git-instaweb: Use $conf, not $fqgitdir/gitweb/httpd.conf

Don't repeat yourself: use "$conf" instead of its [current] contents,
namely "$fqgitdir/gitweb/httpd.conf".

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-instaweb: Extract configuring web server into confi... Jakub Narebski Thu, 23 Jun 2011 19:55:00 +0000 (21:55 +0200)

git-instaweb: Extract configuring web server into configure_httpd

This is preparatory work for making start/restart check that
git-instaweb set up correct configuration, and generate it if it is
missing.

Pure refactoring, no functional changes.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>

Git 1.7.6 v1.7.6Junio C Hamano Sun, 26 Jun 2011 19:41:16 +0000 (12:41 -0700)

Git 1.7.6

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

Merge branch 'maint'Junio C Hamano Sun, 26 Jun 2011 19:09:11 +0000 (12:09 -0700)

Merge branch 'maint'

* maint:
completion: replace core.abbrevguard to core.abbrev

Merge branch 'maint-1.7.4' into maintJunio C Hamano Fri, 24 Jun 2011 16:40:02 +0000 (09:40 -0700)

Merge branch 'maint-1.7.4' into maint

* maint-1.7.4:
completion: replace core.abbrevguard to core.abbrev

completion: replace core.abbrevguard to core.abbrevNamhyung Kim Fri, 24 Jun 2011 06:17:42 +0000 (15:17 +0900)

completion: replace core.abbrevguard to core.abbrev

The core.abbrevguard config variable had removed and
now core.abbrev has been used instead. Teach it.

Signed-off-by: Namhyung Kim <namhyung@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.7.6-rc3 v1.7.6-rc3Junio C Hamano Wed, 22 Jun 2011 23:13:16 +0000 (16:13 -0700)

Git 1.7.6-rc3

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

Merge branch 'maint'Junio C Hamano Wed, 22 Jun 2011 21:01:18 +0000 (14:01 -0700)

Merge branch 'maint'

* maint:
Documentation: git diff --check respects core.whitespace

Documentation: git diff --check respects core.whitespaceChristof Krüger Wed, 22 Jun 2011 15:33:02 +0000 (17:33 +0200)

Documentation: git diff --check respects core.whitespace

Fix documentation on "git diff --check" by adopting the description from
"git apply --whitespace".

Signed-off-by: Christof Krüger <git@christof-krueger.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Tue, 21 Jun 2011 21:56:59 +0000 (14:56 -0700)

Merge branch 'maint'

* maint:
gitweb: 'pickaxe' and 'grep' features requires 'search' to be enabled

gitweb: 'pickaxe' and 'grep' features requires 'search... Jakub Narebski Tue, 21 Jun 2011 06:41:16 +0000 (08:41 +0200)

gitweb: 'pickaxe' and 'grep' features requires 'search' to be enabled

Both 'pickaxe' (searching changes) and 'grep' (searching files)
require basic 'search' feature to be enabled to work. Enabling
e.g. only 'pickaxe' won't work.

Add a comment about this.

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

Merge branch 'mk/grep-pcre'Junio C Hamano Mon, 20 Jun 2011 21:49:44 +0000 (14:49 -0700)

Merge branch 'mk/grep-pcre'

* mk/grep-pcre:
t7810: avoid unportable use of "echo"

t7810: avoid unportable use of "echo"Junio C Hamano Mon, 20 Jun 2011 21:49:34 +0000 (14:49 -0700)

t7810: avoid unportable use of "echo"

Michael J Gruber noticed that under /bin/dash this test failed
(as is expected -- \n in the string can be interpreted by the
command), while it passed with bash. We probably could work it
around by using backquote in front of it, but it is safer and
more readable to avoid "echo" altogether in a case like this.

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

plug a few coverity-spotted leaksJim Meyering Mon, 20 Jun 2011 07:40:06 +0000 (09:40 +0200)

plug a few coverity-spotted leaks

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

Merge branch 'di/no-no-existant'Junio C Hamano Sun, 19 Jun 2011 23:01:54 +0000 (16:01 -0700)

Merge branch 'di/no-no-existant'

* di/no-no-existant:
Fix typo: existant->existent

Merge branch 'maint'Junio C Hamano Sun, 19 Jun 2011 23:01:51 +0000 (16:01 -0700)

Merge branch 'maint'

* maint:
builtin/gc.c: add missing newline in message

builtin/gc.c: add missing newline in messageAndreas Schwab Sun, 19 Jun 2011 08:03:26 +0000 (10:03 +0200)

builtin/gc.c: add missing newline in message

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

tests: link shell libraries into valgrind directoryJeff King Fri, 17 Jun 2011 20:36:32 +0000 (16:36 -0400)

tests: link shell libraries into valgrind directory

When we run tests under valgrind, we symlink anything
executable that starts with git-* or test-* into a special
valgrind bin directory, and then make that our
GIT_EXEC_PATH.

However, shell libraries like git-sh-setup do not have the
executable bit marked, and did not get symlinked. This
means that any test looking for shell libraries in our
exec-path would fail to find them, even though that is a
fine thing to do when testing against a regular git build
(or in a git install, for that matter).

t2300 demonstrated this problem. The fix is to symlink these
shell libraries directly into the valgrind directory.

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

t/Makefile: pass test opts to valgrind target properlyJeff King Fri, 17 Jun 2011 08:29:57 +0000 (04:29 -0400)

t/Makefile: pass test opts to valgrind target properly

The valgrind target just reinvokes make with GIT_TEST_OPTS
set to "--valgrind". However, it does this using an
environment variable, which means GIT_TEST_OPTS in your
config.mak would override it, and "make valgrind" would
simply run the test suite without valgrind on.

Instead, we should pass GIT_TEST_OPTS on the command-line,
overriding what's in config.mak, and take care to append to
whatever the user has there already.

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

Merge branch 'ab/i18n-scripts-basic'Junio C Hamano Fri, 17 Jun 2011 18:40:32 +0000 (11:40 -0700)

Merge branch 'ab/i18n-scripts-basic'

* ab/i18n-scripts-basic:
sh-i18n--envsubst.c: do not #include getopt.h

sh-i18n--envsubst.c: do not #include getopt.hBrandon Casey Fri, 17 Jun 2011 18:19:26 +0000 (11:19 -0700)

sh-i18n--envsubst.c: do not #include getopt.h

The getopt.h header file is not used. It's inclusion is left over from the
original version of this source. Additionally, getopt.h does not exist on
all platforms (SunOS 5.7) and will cause a compilation failure. So, let's
remove it.

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

Fix typo: existant->existentDmitry Ivankov Thu, 16 Jun 2011 13:42:48 +0000 (19:42 +0600)

Fix typo: existant->existent

refs.c had a error message "Trying to write ref with nonexistant object".
And no tests relied on the wrong spelling.
Also typo was present in some test scripts internals, these tests still pass.

Signed-off-by: Dmitry Ivankov <divanorama@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.7.6-rc2 v1.7.6-rc2Junio C Hamano Thu, 16 Jun 2011 16:21:36 +0000 (09:21 -0700)

Git 1.7.6-rc2

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

t/gitweb-lib.sh: skip gitweb tests when perl dependenci... Junio C Hamano Wed, 15 Jun 2011 16:54:15 +0000 (09:54 -0700)

t/gitweb-lib.sh: skip gitweb tests when perl dependencies are not met

Linus noticed that we go ahead testing gitweb and fail miserably on a
box with Perl but not perl-CGI library. We already have a code to detect
lack of Perl and refrain from testing gitweb in t/gitweb-lib.sh (by the
way, shouldn't it be called t/lib-gitweb.sh?), so let's extend it
to cover this case as well.

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

git-submodule.sh: clarify the "should we die now" logicJunio C Hamano Mon, 13 Jun 2011 19:17:52 +0000 (12:17 -0700)

git-submodule.sh: clarify the "should we die now" logic

Earlier the decision to stop or continue was made on the $action variable
that was set by inspecting $update_module variable. The former is a
redundant variable and will be removed in another topic.

Decide upon inspecting $update_module if a failure should cascade up to
cause us immediately stop, and use a variable that means just that, to
clarify the logic.

Incidentally this also makes the merge with the other topic slightly
easier and cleaner to understand.

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

submodule update: continue when a checkout failsFredrik Gustafsson Mon, 13 Jun 2011 17:15:26 +0000 (19:15 +0200)

submodule update: continue when a checkout fails

"git submodule update" stops at the first error and gives control
back to the user. Only after the user fixes the problematic
submodule and runs "git submodule update" again, the second error
is found. And the user needs to repeat until all the problems are
found and fixed one by one. This is tedious.

Instead, the command can remember which submodules it had trouble with,
continue updating the ones it can, and report which ones had errors at
the end. The user can run "git submodule update", find all the ones that
need minor fixing (e.g. working tree was dirty) to fix them in a single
pass. Then another "git submodule update" can be run to update all.

Note that the problematic submodules are skipped only when they are to
be integrated with a safer value of submodule.<name>.update option,
namely "checkout". Fixing a failure in a submodule that uses "rebase" or
"merge" may need an involved conflict resolution by the user, and
leaving too many submodules in states that need resolution would not
reduce the mental burden on the user.

Signed-off-by: Fredrik Gustafsson <iveqy@iveqy.com>
Mentored-by: Jens Lehmann <Jens.Lehmann@web.de>
Mentored-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-sh-setup: add die_with_statusFredrik Gustafsson Thu, 9 Jun 2011 07:47:02 +0000 (09:47 +0200)

git-sh-setup: add die_with_status

This behaves similar to "die" but can exit with status different from the
usual 1.

Signed-off-by: Fredrik Gustafsson <iveqy@iveqy.com>
Mentored-by: Jens Lehmann <Jens.Lehmann@web.de>
Mentored-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitweb: do not misparse nonnumeric content tag files... Jonathan Nieder Thu, 9 Jun 2011 07:08:57 +0000 (02:08 -0500)

gitweb: do not misparse nonnumeric content tag files that contain a digit

v1.7.6-rc0~27^2~4 (gitweb: Change the way "content tags" ('ctags') are
handled, 2011-04-29) tried to make gitweb's tag cloud feature more
intuitive for webmasters by checking whether the ctags/<label> under
a project's .git dir contains a number (representing the strength of
association to <label>) before treating it as one.

With that change, after putting '$feature{'ctags'}{'default'} = [1];'
in your $GITWEB_CONFIG, you could do

echo Linux >.git/ctags/linux

and gitweb would treat that as a request to tag the current repository
with the Linux tag, instead of the previous behavior of writing an
error page embedded in the projects list that triggers error messages
from Chromium and Firefox about malformed XML.

Unfortunately the pattern (\d+) used to match numbers is too loose,
and the "XML declaration allowed only at the start of the document"
error can still be experienced if you write "Linux-2.6" in place of
"Linux" in the example above. Fix it by tightening the pattern to
^\d+$.

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

Git 1.7.6-rc1 v1.7.6-rc1Junio C Hamano Thu, 9 Jun 2011 01:29:48 +0000 (18:29 -0700)

Git 1.7.6-rc1

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

Merge branch 'maint'Junio C Hamano Thu, 9 Jun 2011 01:13:39 +0000 (18:13 -0700)

Merge branch 'maint'

* maint:
fetch: do not leak a refspec

Document the underlying protocol used by shallow reposi... Alex Neronskiy Wed, 8 Jun 2011 22:11:51 +0000 (15:11 -0700)

Document the underlying protocol used by shallow repositories and --depth commands.

Explain the exchange that occurs between a client and server when
the client is requesting shallow history and/or is already using
a shallow repository.

Signed-off-by: Alex Neronskiy <zakmagnus@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix documentation of fetch-pack that implies that the... Alex Neronskiy Wed, 8 Jun 2011 22:11:50 +0000 (15:11 -0700)

Fix documentation of fetch-pack that implies that the client can disconnect after sending wants.

Specify conditions under which the client can terminate the connection
early. Previously, an unintended behavior was possible which could
confuse servers.

Based-on-patch-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Alex Neronskiy <zakmagnus@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fetch: do not leak a refspecJim Meyering Wed, 8 Jun 2011 20:06:33 +0000 (22:06 +0200)

fetch: do not leak a refspec

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

sha1_file.c: "legacy" is really the current formatJunio C Hamano Wed, 8 Jun 2011 18:29:01 +0000 (11:29 -0700)

sha1_file.c: "legacy" is really the current format

Every time I look at the read-loose-object codepath, legacy_loose_object()
function makes my brain go through mental contortion. When we were playing
with the experimental loose object format, it may have made sense to call
the traditional format "legacy", in the hope that the experimental one
will some day replace it to become official, but it never happened.

This renames the function (and negates its return value) to detect if we
are looking at the experimental format, and move the code around in its
caller which used to do "if we are looing at legacy, do this special case,
otherwise the normal case is this". The codepath to read from the loose
objects in experimental format is the "unlikely" case.

Someday after Git 2.0, we should drop the support of this format.

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

verify_dotfile(): do not assume '/' is the path seperatorTheo Niessink Wed, 8 Jun 2011 12:04:41 +0000 (14:04 +0200)

verify_dotfile(): do not assume '/' is the path seperator

verify_dotfile() currently assumes that the path seperator is '/', but on
Windows it can also be '\\', so use is_dir_sep() instead.

Signed-off-by: Theo Niessink <theo@taletn.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

verify_path(): simplify check at the directory boundaryJunio C Hamano Tue, 7 Jun 2011 03:49:06 +0000 (20:49 -0700)

verify_path(): simplify check at the directory boundary

We simply want to say "At a directory boundary, be careful with a name
that begins with a dot, forbid a name that ends with the boundary
character or has duplicated bounadry characters".

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

Merge branch 'jc/magic-pathspec'Junio C Hamano Tue, 7 Jun 2011 15:32:42 +0000 (08:32 -0700)

Merge branch 'jc/magic-pathspec'

* jc/magic-pathspec:
t3703: skip more tests using colons in file names on Windows

t3703: skip more tests using colons in file names on... Alex Riesen Tue, 7 Jun 2011 09:49:44 +0000 (11:49 +0200)

t3703: skip more tests using colons in file names on Windows

Use the same test and prerequisite as introduced in similar
fix in 650af7ae8bdf92bd92df2.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jn/mime-type-with-params'Junio C Hamano Mon, 6 Jun 2011 18:40:22 +0000 (11:40 -0700)

Merge branch 'jn/mime-type-with-params'

* jn/mime-type-with-params:
gitweb: Fix usability of $prevent_xss

Merge branch 'jn/gitweb-docs'Junio C Hamano Mon, 6 Jun 2011 18:40:18 +0000 (11:40 -0700)

Merge branch 'jn/gitweb-docs'

* jn/gitweb-docs:
gitweb: Move "Requirements" up in gitweb/INSTALL
gitweb: Describe CSSMIN and JSMIN in gitweb/INSTALL
gitweb: Move information about installation from README to INSTALL

Merge branch 'jk/diff-not-so-quick'Junio C Hamano Mon, 6 Jun 2011 18:40:14 +0000 (11:40 -0700)

Merge branch 'jk/diff-not-so-quick'

* jk/diff-not-so-quick:
diff: futureproof "stop feeding the backend early" logic
diff_tree: disable QUICK optimization with diff filter

Conflicts:
diff.c

Merge branch 'bc/maint-status-z-to-use-porcelain'Junio C Hamano Mon, 6 Jun 2011 18:40:08 +0000 (11:40 -0700)

Merge branch 'bc/maint-status-z-to-use-porcelain'

* bc/maint-status-z-to-use-porcelain:
builtin/commit.c: set status_format _after_ option parsing
t7508: demonstrate status's failure to use --porcelain format with -z

Conflicts:
builtin/commit.c

Windows: teach getenv to do a case-sensitive searchJohannes Sixt Mon, 6 Jun 2011 07:08:13 +0000 (09:08 +0200)

Windows: teach getenv to do a case-sensitive search

getenv() on Windows looks up environment variables in a case-insensitive
manner. Even though all documentations claim that the environment is
case-insensitive, it is possible for applications to pass an environment
to child processes that has variables that differ only in case. Bash on
Windows does this, for example, and sh-i18n--envsubst depends on this
behavior.

With this patch environment variables are first looked up in a
case-sensitive manner; only if this finds nothing, the system's getenv() is
used as a fallback.

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

mingw.c: move definition of mingw_getenv downJohannes Sixt Mon, 6 Jun 2011 07:06:02 +0000 (09:06 +0200)

mingw.c: move definition of mingw_getenv down

We want to use static lookup_env() in a subsequent change.

At first sight, this change looks innocent. But it is not due to the
#undef getenv. There is one caller of getenv between the old location and
the new location whose behavior could change. But as can be seen from the
defintion of mingw_getenv, the behavior for this caller does not change
substantially.

To ensure consistent behavior in the future, change all getenv callers
in mingw.c to use mingw_getenv.

With this patch, this is not a big deal, yet, but with the subsequent
change, where we teach getenv to do a case-sensitive lookup, the behavior
of all call sites is changed.

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

sh-i18n--envsubst: do not crash when no arguments are... Johannes Sixt Mon, 6 Jun 2011 06:59:10 +0000 (08:59 +0200)

sh-i18n--envsubst: do not crash when no arguments are given

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

checkout -b <name>: correctly detect existing branchJunio C Hamano Mon, 6 Jun 2011 05:17:04 +0000 (22:17 -0700)

checkout -b <name>: correctly detect existing branch

When create a new branch, we fed "refs/heads/<proposed name>" as a string
to get_sha1() and expected it to fail when a branch already exists.

The right way to check if a ref exists is to check with resolve_ref().

A naïve solution that might appear attractive but does not work is to
forbid slashes in get_describe_name() but that will not work. A describe
name is is in the form of "ANYTHING-g<short sha1>", and that ANYTHING part
comes from a original tag name used in the repository the user ran the
describe command. A sick user could have a confusing hierarchical tag
whose name is "refs/heads/foobar" (stored as refs/tags/refs/heads/foobar")
to generate a describe name "refs/heads/foobar-6-g02ac983", and we should
be able to use that name to refer to the object whose name is 02ac983.

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

grep: add --headingRené Scharfe Sun, 5 Jun 2011 15:24:36 +0000 (17:24 +0200)

grep: add --heading

With --heading, the filename is printed once before matches from that
file instead of at the start of each line, giving more screen space to
the actual search results.

This option is taken from ack (http://betterthangrep.com/). And now
git grep can dress up like it:

$ git config alias.ack "grep --break --heading --line-number"

$ git ack -e --heading
Documentation/git-grep.txt
154:--heading::

t/t7810-grep.sh
785:test_expect_success 'grep --heading' '
786: git grep --heading -e char -e lo_w hello.c hello_world >actual &&
808: git grep --break --heading -n --color \

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

grep: add --breakRené Scharfe Sun, 5 Jun 2011 15:24:25 +0000 (17:24 +0200)

grep: add --break

With --break, an empty line is printed between matches from different
files, increasing readability. This option is taken from ack
(http://betterthangrep.com/).

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

grep: fix coloring of hunk marks between filesRené Scharfe Sun, 5 Jun 2011 15:24:15 +0000 (17:24 +0200)

grep: fix coloring of hunk marks between files

Commit 431d6e7b (grep: enable threading for context line printing)
split the printing of the "--\n" mark between results from different
files out into two places: show_line() in grep.c for the non-threaded
case and work_done() in builtin/grep.c for the threaded case. Commit
55f638bd (grep: Colorize filename, line number, and separator) updated
the former, but not the latter, so the separators between files are
not colored if threads are used.

This patch merges the two. In the threaded case, hunk marks are now
printed by show_line() for every file, including the first one, and the
very first mark is simply skipped in work_done(). This ensures that the
output is properly colored and works just as well.

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

gitweb: Fix usability of $prevent_xssJakub Narebski Sat, 4 Jun 2011 08:43:35 +0000 (10:43 +0200)

gitweb: Fix usability of $prevent_xss

With XSS prevention on (enabled using $prevent_xss), blobs
('blob_plain') of all types except a few known safe ones are served
with "Content-Disposition: attachment". However the check was too
strict; it didn't take into account optional parameter attributes,

media-type = type "/" subtype *( ";" parameter )

as described in RFC 2616

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17
http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7

This fixes that, and it for example treats following as safe MIME
media type:

text/plain; charset=utf-8

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

gitweb: Move "Requirements" up in gitweb/INSTALLJakub Narebski Fri, 3 Jun 2011 16:31:48 +0000 (18:31 +0200)

gitweb: Move "Requirements" up in gitweb/INSTALL

This way you can examine prerequisites at first glance, before
detailed instructions on installing gitweb. Straightforward
text movement.

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

http: pass http.cookiefile using CURLOPT_COOKIEFILEDuncan Brown Thu, 2 Jun 2011 20:31:25 +0000 (16:31 -0400)

http: pass http.cookiefile using CURLOPT_COOKIEFILE

If the config option http.cookiefile is set, pass this file to libCURL using
the CURLOPT_COOKIEFILE option. This is similar to calling curl with the -b
option. This allows git http authorization with authentication mechanisms
that use cookies, such as SAML Enhanced Client or Proxy (ECP) used by
Shibboleth.

To use SAML/ECP, the user needs to request a session cookie with their own ECP
code. See for example:

<https://wiki.shibboleth.net/confluence/display/SHIB2/ECP>

Once the cookie file has been created, it can be passed to git with, e.g.

git config --global http.cookiefile "/home/dbrown/.curlcookies"

libCURL will then pass the appropriate session cookies to the git http server.

Signed-off-by: Duncan Brown <duncan.brown@ligo.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git status --ignored: tests and docsJunio C Hamano Thu, 2 Jun 2011 16:07:11 +0000 (09:07 -0700)

git status --ignored: tests and docs

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

gitweb: Describe CSSMIN and JSMIN in gitweb/INSTALLJakub Narebski Thu, 2 Jun 2011 14:55:53 +0000 (16:55 +0200)

gitweb: Describe CSSMIN and JSMIN in gitweb/INSTALL

The build-time configuration variables JSMIN and CSSMIN were mentioned
only in Makefile; add their description to gitweb/INSTALL.

This required moving description of GITWEB_JS up, near GITWEB_CSS and
just introduced CSMIN and JSMIN.

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

gitweb: Move information about installation from README... Jakub Narebski Thu, 2 Jun 2011 14:55:52 +0000 (16:55 +0200)

gitweb: Move information about installation from README to INSTALL

Almost straightformard moving of "How to configure gitweb for your
local system" section from gitweb/README to gitweb/INSTALL, as it is
about build time configuration. Updated references to it.

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

t/t7503-pre-commit-hook.sh: Add GIT_PREFIX testsDavid Aguilar Thu, 2 Jun 2011 09:26:25 +0000 (02:26 -0700)

t/t7503-pre-commit-hook.sh: Add GIT_PREFIX tests

Ensure that the pre-commit hook has access to GIT_PREFIX.

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

status: fix bug with missing --ignore filesJeff King Thu, 2 Jun 2011 05:54:49 +0000 (01:54 -0400)

status: fix bug with missing --ignore files

Commit 1b908b6 (wt-status: rename and restructure
status-print-untracked, 2010-04-10) converted the
wt_status_print_untracked function into
wt_status_print_other, taking a string_list of either
untracked or ignored items to print. However, the "nothing
to show" early return still checked the wt_status->untracked
list instead of the passed-in list.

That meant that if we had ignored items to show, but no
untracked items, we would erroneously exit early and fail to
show the ignored items.

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

Sync with 1.7.5.4 v1.7.6-rc0Junio C Hamano Wed, 1 Jun 2011 21:11:17 +0000 (14:11 -0700)

Sync with 1.7.5.4

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

Git 1.7.5.4 v1.7.5.4Junio C Hamano Wed, 1 Jun 2011 21:08:26 +0000 (14:08 -0700)

Git 1.7.5.4

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

Merge branch 'jk/maint-config-alias-fix' into maintJunio C Hamano Wed, 1 Jun 2011 21:05:22 +0000 (14:05 -0700)

Merge branch 'jk/maint-config-alias-fix' into maint

* jk/maint-config-alias-fix:
handle_options(): do not miscount how many arguments were used
config: always parse GIT_CONFIG_PARAMETERS during git_config
git_config: don't peek at global config_parameters
config: make environment parsing routines static

Merge branch 'jc/fmt-req-fix' into maintJunio C Hamano Wed, 1 Jun 2011 21:03:07 +0000 (14:03 -0700)

Merge branch 'jc/fmt-req-fix' into maint

* jc/fmt-req-fix:
userformat_find_requirements(): find requirement for the correct format

Merge branch 'jk/maint-docs' into maintJunio C Hamano Wed, 1 Jun 2011 21:02:52 +0000 (14:02 -0700)

Merge branch 'jk/maint-docs' into maint

* jk/maint-docs:
docs: fix some antique example output
docs: make sure literal "->" isn't converted to arrow
docs: update status --porcelain format
docs: minor grammar fixes to git-status

Merge branch 'jn/doc-remote-helpers' into maintJunio C Hamano Wed, 1 Jun 2011 21:02:45 +0000 (14:02 -0700)

Merge branch 'jn/doc-remote-helpers' into maint

* jn/doc-remote-helpers:
Documentation: do not misinterpret refspecs as bold text

Merge branch 'kk/maint-prefix-in-config-mak' into maintJunio C Hamano Wed, 1 Jun 2011 21:02:39 +0000 (14:02 -0700)

Merge branch 'kk/maint-prefix-in-config-mak' into maint

* kk/maint-prefix-in-config-mak:
config.mak.in: allow "configure --sysconfdir=/else/where"

diffcore-rename.c: avoid set-but-not-used warningJim Meyering Fri, 29 Apr 2011 09:42:41 +0000 (11:42 +0200)

diffcore-rename.c: avoid set-but-not-used warning

Since 9d8a5a5 (diffcore-rename: refactor "too many candidates" logic,
2011-01-06), diffcore_rename() initializes num_src but does not use it
anymore. "-Wunused-but-set-variable" in gcc-4.6 complains about this.

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

Update draft release notes to 1.7.6Junio C Hamano Tue, 31 May 2011 19:22:50 +0000 (12:22 -0700)

Update draft release notes to 1.7.6

I think we are almost there for the feature freeze.

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

Merge branch 'jk/format-patch-am'Junio C Hamano Tue, 31 May 2011 19:19:11 +0000 (12:19 -0700)

Merge branch 'jk/format-patch-am'

* jk/format-patch-am:
format-patch: preserve subject newlines with -k
clean up calling conventions for pretty.c functions
pretty: add pp_commit_easy function for simple callers
mailinfo: always clean up rfc822 header folding
t: test subject handling in format-patch / am pipeline

Conflicts:
builtin/branch.c
builtin/log.c
commit.h

Merge branch 'jn/doc-remote-helpers'Junio C Hamano Tue, 31 May 2011 19:09:35 +0000 (12:09 -0700)

Merge branch 'jn/doc-remote-helpers'

* jn/doc-remote-helpers:
Documentation: do not misinterpret refspecs as bold text