Junio C Hamano [Fri, 19 Jul 2013 17:42:46 +0000 (10:42 -0700)]
Merge branch 'mm/push-force-is-dangerous' into maint
* mm/push-force-is-dangerous:
Documentation/git-push.txt: explain better cases where --force is dangerous
Junio C Hamano [Fri, 19 Jul 2013 17:42:18 +0000 (10:42 -0700)]
Merge branch 'rs/logical-vs-binary-or' into maint
* rs/logical-vs-binary-or:
use logical OR (||) instead of binary OR (|) in logical context
Junio C Hamano [Fri, 19 Jul 2013 17:41:22 +0000 (10:41 -0700)]
Merge branch 'js/test-ln-s-add' into maint
* js/test-ln-s-add:
t4011: remove SYMLINKS prerequisite
t6035: use test_ln_s_add to remove SYMLINKS prerequisite
t3509, t4023, t4114: use test_ln_s_add to remove SYMLINKS prerequisite
t3100: use test_ln_s_add to remove SYMLINKS prerequisite
t3030: use test_ln_s_add to remove SYMLINKS prerequisite
t0000: use test_ln_s_add to remove SYMLINKS prerequisite
tests: use test_ln_s_add to remove SYMLINKS prerequisite (trivial cases)
tests: introduce test_ln_s_add
t3010: modernize style
test-chmtime: Fix exit code on Windows
Junio C Hamano [Fri, 19 Jul 2013 17:41:01 +0000 (10:41 -0700)]
Merge branch 'jk/apache-test-for-2.4' into maint
Allow our tests to run with newer Apache.
* jk/apache-test-for-2.4:
lib-httpd/apache.conf: check version only after mod_version loads
t/lib-httpd/apache.conf: configure an MPM module for apache 2.4
t/lib-httpd/apache.conf: load compat access module in apache 2.4
t/lib-httpd/apache.conf: load extra auth modules in apache 2.4
t/lib-httpd/apache.conf: do not use LockFile in apache >= 2.4
Junio C Hamano [Fri, 19 Jul 2013 17:40:57 +0000 (10:40 -0700)]
Merge branch 'tr/test-commit-only-on-orphan' into maint
* tr/test-commit-only-on-orphan:
Test 'commit --only' after 'checkout --orphan'
Junio C Hamano [Fri, 19 Jul 2013 17:40:53 +0000 (10:40 -0700)]
Merge branch 'sb/archive-zip-double-assignment-fix' into maint
* sb/archive-zip-double-assignment-fix:
archive-zip:write_zip_entry: Remove second reset of size variable to zero.
Junio C Hamano [Fri, 19 Jul 2013 17:39:12 +0000 (10:39 -0700)]
Merge branch 'th/bisect-skip-report-range-fix' into maint
The bisect log listed incorrect commits when bisection ends with
only skipped ones.
* th/bisect-skip-report-range-fix:
bisect: Fix log output for multi-parent skip ranges
Junio C Hamano [Fri, 19 Jul 2013 17:39:09 +0000 (10:39 -0700)]
Merge branch 'rs/tar-tests' into maint
* rs/tar-tests:
t5000: test long filenames
t5000: simplify tar-tree tests
t5000: use check_tar for prefix test
t5000: factor out check_tar
t5000, t5003: create directories for extracted files lazily
t5000: integrate export-subst tests into regular tests
Junio C Hamano [Fri, 19 Jul 2013 17:39:06 +0000 (10:39 -0700)]
Merge branch 'rr/column-doc' into maint
* rr/column-doc:
column doc: rewrite documentation for column.ui
Junio C Hamano [Fri, 19 Jul 2013 17:39:01 +0000 (10:39 -0700)]
Merge branch 'rs/discard-index-discard-array' into maint
* rs/discard-index-discard-array:
read-cache: free cache in discard_index
read-cache: add simple performance test
Junio C Hamano [Fri, 19 Jul 2013 17:38:18 +0000 (10:38 -0700)]
Merge branch 'tr/coverage' into maint
The test coverage framework was left broken for some time.
* tr/coverage:
coverage: build coverage-untested-functions by default
coverage: set DEFAULT_TEST_TARGET to avoid using prove
coverage: do not delete .gcno files before building
coverage: split build target into compile and test
Stefan Beller [Fri, 19 Jul 2013 16:26:24 +0000 (18:26 +0200)]
Documentation: "git reset <tree-ish> <pathspec>" takes a tree-ish, not tree-sh
Reported-By: Ibrahim M. Ghazal <imgx64@gmail.com>
Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 15 Jul 2013 17:39:43 +0000 (10:39 -0700)]
Git 1.8.3.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 15 Jul 2013 17:36:14 +0000 (10:36 -0700)]
Merge branch 'tr/maint-apply-non-git-patch-parsefix' into maint
"git apply" parsed patches that add new files, generated by programs
other than Git, incorrectly. This is an old breakage in v1.7.11.
* tr/maint-apply-non-git-patch-parsefix:
apply: carefully strdup a possibly-NULL name
Junio C Hamano [Mon, 15 Jul 2013 17:36:01 +0000 (10:36 -0700)]
Merge branch 'bc/http-keep-memory-given-to-curl' into maint
Older cURL wanted piece of memory we call it with to be stable, but
we updated the auth material after handing it to a call.
* bc/http-keep-memory-given-to-curl:
http.c: don't rewrite the user:passwd string multiple times
Junio C Hamano [Mon, 15 Jul 2013 17:35:43 +0000 (10:35 -0700)]
Merge branch 'jk/pull-into-dirty-unborn' into maint
"git pull" into nothing trashed "local changes" that were in the
index.
* jk/pull-into-dirty-unborn:
pull: merge into unborn by fast-forwarding from empty tree
pull: update unborn branch tip after index
Junio C Hamano [Mon, 15 Jul 2013 17:35:17 +0000 (10:35 -0700)]
Merge branch 'fg/submodule-non-ascii-path' into maint
Many "git submodule" operations did not work on a submodule at a
path whose name is not in ASCII.
* fg/submodule-non-ascii-path:
t7400: test of UTF-8 submodule names pass under Mac OS
handle multibyte characters in name
Junio C Hamano [Mon, 15 Jul 2013 17:35:04 +0000 (10:35 -0700)]
Merge branch 'fc/sequencer-plug-leak' into maint
"cherry-pick" had a small leak in its error codepath.
* fc/sequencer-plug-leak:
sequencer: avoid leaking message buffer when refusing to create an empty commit
sequencer: remove useless indentation
Junio C Hamano [Mon, 15 Jul 2013 17:34:36 +0000 (10:34 -0700)]
Merge branch 'mt/send-email-cc-match-fix' into maint
Logic used by git-send-email to suppress cc mishandled names like "A
U. Thor" <author@example.xz>, where the human readable part needs to
be quoted (the user input may not have the double quotes around the
name, and comparison was done between quoted and unquoted strings).
It also mishandled names that need RFC2047 quoting.
* mt/send-email-cc-match-fix:
send-email: sanitize author when writing From line
send-email: add test for duplicate utf8 name
test-send-email: test for pre-sanitized self name
t/send-email: test suppress-cc=self with non-ascii
t/send-email: add test with quoted sender
send-email: make --suppress-cc=self sanitize input
t/send-email: test suppress-cc=self on cccmd
send-email: fix suppress-cc=self on cccmd
t/send-email.sh: add test for suppress-cc=self
Ramkumar Ramachandra [Fri, 28 Jun 2013 15:46:19 +0000 (21:16 +0530)]
fixup-builtins: retire an old transition helper script
This script was added in
36e5e70 (Start deprecating "git-command" in
favor of "git command", 2007-06-30) with the intent of aiding the
transition away from dashed forms.
It has already been used to help the transision and served its
purpose, and is no longer very useful for follow-up work, because
the majority of remaining matches it finds are false positives.
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 3 Jul 2013 22:43:41 +0000 (15:43 -0700)]
Update draft release notes to 1.8.3.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 3 Jul 2013 22:41:17 +0000 (15:41 -0700)]
Merge branch 'rr/diffcore-pickaxe-doc' into maint
* rr/diffcore-pickaxe-doc:
diffcore-pickaxe doc: document -S and -G properly
diffcore-pickaxe: make error messages more consistent
Junio C Hamano [Wed, 3 Jul 2013 22:41:05 +0000 (15:41 -0700)]
Merge branch 'cr/git-work-tree-sans-git-dir' into maint
* cr/git-work-tree-sans-git-dir:
git.txt: remove stale comment regarding GIT_WORK_TREE
Junio C Hamano [Wed, 3 Jul 2013 22:40:38 +0000 (15:40 -0700)]
Merge branch 'fc/do-not-use-the-index-in-add-to-index' into maint
* fc/do-not-use-the-index-in-add-to-index:
read-cache: trivial style cleanups
read-cache: fix wrong 'the_index' usage
Junio C Hamano [Wed, 3 Jul 2013 22:39:37 +0000 (15:39 -0700)]
Merge branch 'dm/unbash-subtree' into maint
* dm/unbash-subtree:
contrib/git-subtree: Use /bin/sh interpreter instead of /bin/bash
Junio C Hamano [Wed, 3 Jul 2013 22:39:15 +0000 (15:39 -0700)]
Merge branch 'jc/core-checkstat' into maint
* jc/core-checkstat:
deprecate core.statinfo at Git 2.0 boundary
Junio C Hamano [Wed, 3 Jul 2013 22:37:58 +0000 (15:37 -0700)]
Merge branch 'jc/t5551-posix-sed-bre' into maint
* jc/t5551-posix-sed-bre:
t5551: do not use unportable sed '\+'
Junio C Hamano [Wed, 3 Jul 2013 22:37:50 +0000 (15:37 -0700)]
Merge branch 'vv/help-unknown-ref' into maint
* vv/help-unknown-ref:
merge: use help_unknown_ref()
help: add help_unknown_ref()
Junio C Hamano [Wed, 3 Jul 2013 22:36:54 +0000 (15:36 -0700)]
Merge branch 'rs/empty-archive' into maint
* rs/empty-archive:
t5004: resurrect original empty tar archive test
t5004: avoid using tar for checking emptiness of archive
Conflicts:
t/t5004-archive-corner-cases.sh
Junio C Hamano [Wed, 3 Jul 2013 22:36:30 +0000 (15:36 -0700)]
Merge branch 'rh/merge-options-doc-fix' into maint
* rh/merge-options-doc-fix:
Documentation/merge-options.txt: restore `-e` option
Junio C Hamano [Wed, 3 Jul 2013 22:35:55 +0000 (15:35 -0700)]
Merge branch 'an/diff-index-doc' into maint
* an/diff-index-doc:
Documentation/diff-index: mention two modes of operation
Junio C Hamano [Wed, 3 Jul 2013 22:31:36 +0000 (15:31 -0700)]
Merge branch 'cm/gitweb-project-list-persistent-cgi-fix' into maint
"gitweb" forgot to clear a global variable $search_regexp upon each
request, mistakenly carrying over the previous search to a new one
when used as a persistent CGI.
* cm/gitweb-project-list-persistent-cgi-fix:
gitweb: fix problem causing erroneous project list
Junio C Hamano [Wed, 3 Jul 2013 22:31:27 +0000 (15:31 -0700)]
Merge branch 'ar/wildmatch-foldcase' into maint
The wildmatch engine did not honor WM_CASEFOLD option correctly.
* ar/wildmatch-foldcase:
wildmatch: properly fold case everywhere
Junio C Hamano [Wed, 3 Jul 2013 22:30:59 +0000 (15:30 -0700)]
Merge branch 'cb/log-follow-with-combined' into maint
"git log -c --follow $path" segfaulted upon hitting the commit that
renamed the $path being followed.
* cb/log-follow-with-combined:
fix segfault with git log -c --follow
Junio C Hamano [Wed, 3 Jul 2013 22:30:24 +0000 (15:30 -0700)]
Merge branch 'rr/die-on-missing-upstream' into maint
When a reflog notation is used for implicit "current branch", we did
not say which branch, and worse said "branch ''".
* rr/die-on-missing-upstream:
sha1_name: fix error message for @{<N>}, @{<date>}
sha1_name: fix error message for @{u}
Junio C Hamano [Wed, 3 Jul 2013 22:27:19 +0000 (15:27 -0700)]
Merge branch 'maint-1.8.2' into maint
* maint-1.8.2:
git-config: update doc for --get with multiple values
Junio C Hamano [Wed, 3 Jul 2013 22:26:53 +0000 (15:26 -0700)]
Merge branch 'maint-1.8.1' into maint-1.8.2
* maint-1.8.1:
git-config: update doc for --get with multiple values
John Keeping [Wed, 3 Jul 2013 18:27:39 +0000 (19:27 +0100)]
git-config: update doc for --get with multiple values
Since commit
00b347d (git-config: do not complain about duplicate
entries, 2012-10-23), "git config --get" does not exit with an error if
there are multiple values for the specified key but instead returns the
last value. Update the documentation to reflect this.
Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Andrew Pimlott [Mon, 1 Jul 2013 16:20:36 +0000 (09:20 -0700)]
t7500: fix flipped actual/expect
Signed-off-by: Andrew Pimlott <andrew@pimlott.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Andrew Pimlott [Mon, 1 Jul 2013 16:20:35 +0000 (09:20 -0700)]
lib-rebase: document exec_ in FAKE_LINES
Signed-off-by: Andrew Pimlott <andrew@pimlott.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 30 Jun 2013 22:36:03 +0000 (15:36 -0700)]
Start preparing for 1.8.3.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 30 Jun 2013 22:33:40 +0000 (15:33 -0700)]
Merge branch 'fc/macos-x-clipped-write' into maint
Mac OS X does not like to write(2) more than INT_MAX number of
bytes; work it around by chopping write(2) into smaller pieces.
* fc/macos-x-clipped-write:
compate/clipped-write.c: large write(2) fails on Mac OS X/XNU
Junio C Hamano [Sun, 30 Jun 2013 22:33:13 +0000 (15:33 -0700)]
Merge branch 'da/darwin' into maint
Newer MacOS X encourages the programs to compile and link with their
CommonCrypto, not with OpenSSL.
* da/darwin:
imap-send: eliminate HMAC deprecation warnings on Mac OS X
cache.h: eliminate SHA-1 deprecation warnings on Mac OS X
Makefile: add support for Apple CommonCrypto facility
Makefile: fix default regex settings on Darwin
Ramkumar Ramachandra [Sun, 30 Jun 2013 12:05:28 +0000 (17:35 +0530)]
check-ignore doc: fix broken link to ls-files page
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
SZEDER Gábor [Sun, 30 Jun 2013 10:45:25 +0000 (12:45 +0200)]
test: spell 'ls-files --delete' option correctly in test descriptions
The option is spelled '--deleted'.
Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 28 Jun 2013 21:56:30 +0000 (14:56 -0700)]
Git 1.8.3.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stefano Lattarini [Fri, 28 Jun 2013 17:19:42 +0000 (19:19 +0200)]
configure: fix option help message for --disable-pthreads
The configure option to disable threading is '--disable-pthreads',
not '--without-pthreads'.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 28 Jun 2013 17:00:00 +0000 (10:00 -0700)]
Merge branch 'nd/clone-connectivity-shortcut' (early part) into maint
Cloning with "git clone --depth N" while fetch.fsckobjects (or
transfer.fsckobjects) is set to true did not tell the cut-off points
of the shallow history to the process that validates the objects and
the history received, causing the validation to fail.
* 'nd/clone-connectivity-shortcut' (early part):
fetch-pack: prepare updated shallow file before fetching the pack
clone: let the user know when check_everything_connected is run
Junio C Hamano [Thu, 27 Jun 2013 21:48:14 +0000 (14:48 -0700)]
Start preparing for 1.8.3.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 27 Jun 2013 21:38:22 +0000 (14:38 -0700)]
Merge branch 'ks/difftool-dir-diff-copy-fix' into maint
* ks/difftool-dir-diff-copy-fix:
difftool --dir-diff: allow changing any clean working tree file
Junio C Hamano [Thu, 27 Jun 2013 21:38:17 +0000 (14:38 -0700)]
Merge branch 'rr/push-head' into maint
* rr/push-head:
push: make push.default = current use resolved HEAD
push: fail early with detached HEAD and current
push: factor out the detached HEAD error message
Junio C Hamano [Thu, 27 Jun 2013 21:38:16 +0000 (14:38 -0700)]
Merge branch 'fc/show-branch-in-rebase-am' into maint
* fc/show-branch-in-rebase-am:
prompt: fix for simple rebase
Junio C Hamano [Thu, 27 Jun 2013 21:38:14 +0000 (14:38 -0700)]
Merge branch 'tg/maint-zsh-svn-remote-prompt' into maint
* tg/maint-zsh-svn-remote-prompt:
prompt: fix show upstream with svn and zsh
Junio C Hamano [Thu, 27 Jun 2013 21:38:12 +0000 (14:38 -0700)]
Merge branch 'nd/urls-doc-no-file-hyperlink-fix' into maint
* nd/urls-doc-no-file-hyperlink-fix:
urls.txt: avoid auto converting to hyperlink
Junio C Hamano [Thu, 27 Jun 2013 21:38:09 +0000 (14:38 -0700)]
Merge branch 'tr/push-no-verify-doc' into maint
* tr/push-no-verify-doc:
Document push --no-verify
Junio C Hamano [Thu, 27 Jun 2013 21:38:07 +0000 (14:38 -0700)]
Merge branch 'rs/commit-m-no-edit' into maint
* rs/commit-m-no-edit:
commit: don't start editor if empty message is given with -m
Junio C Hamano [Thu, 27 Jun 2013 21:38:02 +0000 (14:38 -0700)]
Merge branch 'jc/strbuf-branchname-fix' into maint
* jc/strbuf-branchname-fix:
strbuf_branchname(): do not double-expand @{-1}~22
Junio C Hamano [Thu, 27 Jun 2013 21:37:55 +0000 (14:37 -0700)]
Merge branch 'mk/combine-diff-context-horizon-fix' into maint
* mk/combine-diff-context-horizon-fix:
combine-diff.c: Fix output when changes are exactly 3 lines apart
Junio C Hamano [Thu, 27 Jun 2013 21:37:52 +0000 (14:37 -0700)]
Merge branch 'kb/ancestry-path-threedots' into maint
* kb/ancestry-path-threedots:
revision.c: treat A...B merge bases as if manually specified
t6019: demonstrate --ancestry-path A...B breakage
Junio C Hamano [Thu, 27 Jun 2013 21:37:44 +0000 (14:37 -0700)]
Merge branch 'jk/subtree-do-not-push-if-split-fails' into maint
* jk/subtree-do-not-push-if-split-fails:
contrib/subtree: don't delete remote branches if split fails
Junio C Hamano [Thu, 27 Jun 2013 21:37:41 +0000 (14:37 -0700)]
Merge branch 'mh/fetch-into-shallow' into maint
* mh/fetch-into-shallow:
t5500: add test for fetching with an unknown 'shallow'
upload-pack: ignore 'shallow' lines with unknown obj-ids
Junio C Hamano [Thu, 27 Jun 2013 21:37:21 +0000 (14:37 -0700)]
Merge branch 'jh/checkout-auto-tracking' into maint
* jh/checkout-auto-tracking:
glossary: Update and rephrase the definition of a remote-tracking branch
branch.c: Validate tracking branches with refspecs instead of refs/remotes/*
t9114.2: Don't use --track option against "svn-remote"-tracking branches
t7201.24: Add refspec to keep --track working
t3200.39: tracking setup should fail if there is no matching refspec.
checkout: Use remote refspecs when DWIMming tracking branches
t2024: Show failure to use refspec when DWIMming remote branch names
t2024: Add tests verifying current DWIM behavior of 'git checkout <branch>'
Ramkumar Ramachandra [Tue, 25 Jun 2013 15:54:36 +0000 (21:24 +0530)]
column doc: rewrite documentation for column.ui
The configuration option column.ui is very poorly documented, and it is
unclear what the defaults are, and what option can be combined with
what. Rewrite it by splitting up the options into three sections
clearly showing how COL_ENABLED, COL_LAYOUT_MASK, and COL_DENSE work.
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Fri, 21 Jun 2013 18:12:51 +0000 (14:12 -0400)]
lib-httpd/apache.conf: check version only after mod_version loads
Commit
0442743 introduced an <IfVersion> directive near the
top of the apache config file. However, at that point we
have not yet checked for and loaded the mod_version module.
This means that the directive will behave oddly if
mod_version is dynamically loaded, failing to match when it
should.
We can fix this by moving the whole block below the
LoadModule directive for mod_version.
Reported-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Ramkumar Ramachandra [Tue, 18 Jun 2013 19:24:05 +0000 (00:54 +0530)]
completion: complete diff --word-diff
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Thomas Rast [Fri, 21 Jun 2013 11:38:00 +0000 (13:38 +0200)]
apply: carefully strdup a possibly-NULL name
2901bbe (apply: free patch->{def,old,new}_name fields, 2012-03-21)
cleaned up the memory management of filenames in the patches, but
forgot that find_name_traditional() can return NULL as a way of saying
"I couldn't find a name".
That NULL unfortunately gets passed into xstrdup() next, resulting in
a segfault. Use null_strdup() so as to safely propagate the null,
which will let us emit the correct error message.
Reported-by: DevHC on #git
Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Thomas Rast [Thu, 20 Jun 2013 22:38:28 +0000 (18:38 -0400)]
pull: merge into unborn by fast-forwarding from empty tree
The logic for pulling into an unborn branch was originally
designed to be used on a newly-initialized repository
(
d09e79c, git-pull: allow pulling into an empty repository,
2006-11-16). It thus did not initially deal with
uncommitted changes in the unborn branch. The case of an
_unstaged_ untracked file was fixed by
4b3ffe5 (pull: do not
clobber untracked files on initial pull, 2011-03-25).
However, it still clobbered existing staged files, both when
the file exists in the merged commit (it will be
overwritten), and when it does not (it will be deleted).
We fix this by doing a two-way merge, where the "current"
side of the merge is an empty tree, and the "target" side is
HEAD (already updated to FETCH_HEAD at this point). This
amounts to claiming that all work in the index was done vs.
an empty tree, and thus all content of the index is
precious.
Note that this use of read-tree just gives us protection
against overwriting index and working tree changes. It will
not actually result in a 3-way merge conflict in the index.
This is fine, as this is a rare situation, and the conflict
would not be interesting anyway (it must, by definition, be
an add/add conflict with the whole content conflicting). And
it makes it simpler for the user to recover, as they have no
HEAD to "git reset" back to.
Reported-by: Stefan Schüßler <mail@stefanschuessler.de>
Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Thu, 20 Jun 2013 22:36:31 +0000 (18:36 -0400)]
pull: update unborn branch tip after index
When commit
d09e79c taught git to pull into an unborn
branch, it first updated the unborn branch to point at the
pulled commit, and then used read-tree to update the index
and working tree. That ordering made sense, since any
failure of the latter step would be due to filesystem
errors, and one could then recover with "git reset --hard".
Later, commit
4b3ffe5 added extra safety for existing files
in the working tree by asking read-tree to bail out when it
would overwrite such a file. This error mode is much less
"your pull failed due to random errors" and more like "we
reject this pull because it would lose data". In that case,
it makes sense not to update the HEAD ref, just as a regular
rejected merge would do.
This patch reverses the order of the update-ref and
read-tree calls, so that we do not touch the HEAD ref at all if a
merge is rejected. This also means that we would not update
HEAD in case of a transient filesystem error, but those are
presumably less rare (and one can still recover by repeating
the pull, or by accessing FETCH_HEAD directly).
While we're reorganizing the code, we can drop the "exit 1"
from the end of our command chain. We exit immediately
either way, and just calling exit without an argument will
use the exit code from the last command.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Torsten Bögershausen [Thu, 20 Jun 2013 14:58:48 +0000 (16:58 +0200)]
t7400: test of UTF-8 submodule names pass under Mac OS
submodules with names using UTF-8 need core.precomposeunicode true
under Mac OS X, set it in the test case.
Improve the portability:
- Not all shells on all OS may understand literal UTF-8 strings.
- Use a help variable filled by printf, as we do it in e.g. t0050.
"strange names" can be called UTF-8, rephrase the heading.
While at it, unbreak &&-chain in the test, and use test_config.
Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michael S. Tsirkin [Tue, 18 Jun 2013 12:49:26 +0000 (15:49 +0300)]
send-email: sanitize author when writing From line
sender is now sanitized, but we didn't sanitize author when checking
whether From: line is needed in the message body.
As a result git started writing duplicate From: lines when author
matched sender and has utf8 characters.
Reported-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Tested-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michael S. Tsirkin [Tue, 18 Jun 2013 12:49:29 +0000 (15:49 +0300)]
send-email: add test for duplicate utf8 name
Verify that author name is not duplicated if it matches sender, even
if it is in utf8 (the test expects a failure that will be fixed in
the next patch).
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brandon Casey [Wed, 19 Jun 2013 02:43:49 +0000 (19:43 -0700)]
http.c: don't rewrite the user:passwd string multiple times
Curl older than 7.17 (RHEL 4.X provides 7.12 and RHEL 5.X provides
7.15) requires that we manage any strings that we pass to it as
pointers. So, we really shouldn't be modifying this strbuf after we
have passed it to curl.
Our interaction with curl is currently safe (before or after this
patch) since the pointer that is passed to curl is never invalidated;
it is repeatedly rewritten with the same sequence of characters but
the strbuf functions never need to allocate a larger string, so the
same memory buffer is reused.
This "guarantee" of safety is somewhat subtle and could be overlooked
by someone who may want to add a more complex handling of the username
and password. So, let's stop modifying this strbuf after we have
passed it to curl, but also leave a note to describe the assumptions
that have been made about username/password lifetime and to draw
attention to the code.
Signed-off-by: Brandon Casey <drafnel@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Matthieu Moy [Mon, 17 Jun 2013 17:52:41 +0000 (19:52 +0200)]
Documentation/git-push.txt: explain better cases where --force is dangerous
The behavior of "git push --force" is rather clear when it updates only
one remote ref, but running it when pushing several branches can really
be dangerous. Warn the users a bit more and give them the alternative to
push only one branch.
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Sun, 9 Jun 2013 08:09:32 +0000 (04:09 -0400)]
t/lib-httpd/apache.conf: configure an MPM module for apache 2.4
Versions of Apache before 2.4 always had a "MultiProcessing
Module" (MPM) statically built in, which manages the worker
threads/processes. We do not care which one, as it is
largely a performance issue, and we put only a light load on
the server during our testing.
As of Apache 2.4, the MPM module is loadable just like any
other module, but exactly one such module must be loaded. On
a system where the MPMs are compiled dynamically (e.g.,
Debian unstable), this means that our test Apache server
will not start unless we provide the appropriate
configuration.
Unfortunately, we do not actually know which MPM modules are
available or appropriate for the system on which the tests
are running. This patch picks the "prefork" module, as it
is likely to be available on all Unix-like systems.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Sun, 9 Jun 2013 08:08:45 +0000 (04:08 -0400)]
t/lib-httpd/apache.conf: load compat access module in apache 2.4
In apache 2.4, the "Order" directive has gone away in favor
of a new system in mod_authz_host. However, since we want
our config file to remain compatible across multiple Apache
versions, we can use mod_access_compat to keep using the
older style.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Sun, 9 Jun 2013 08:08:22 +0000 (04:08 -0400)]
t/lib-httpd/apache.conf: load extra auth modules in apache 2.4
In apache 2.4, the "Auth*" and "Require" directives have
moved into the authn_core and authz_core modules,
respectively.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Sun, 9 Jun 2013 08:07:59 +0000 (04:07 -0400)]
t/lib-httpd/apache.conf: do not use LockFile in apache >= 2.4
The LockFile directive from earlier versions of apache has
been replaced by the Mutex directive. The latter seems to
give sane defaults and does not need any specific
customization, so we can get away with just adding a version
check to the use of LockFile.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Fredrik Gustafsson [Fri, 14 Jun 2013 00:26:02 +0000 (02:26 +0200)]
handle multibyte characters in name
Many "git submodule" operations do not work on a submodule at a path whose
name is not in ASCII.
This is because "git ls-files" is used to find which paths are bound to
submodules to the current working tree, and the output is C-quoted by default
for non ASCII pathnames.
Tell "git ls-files" to not C-quote its output, which is easier than unwrapping
C-quote ourselves.
Signed-off-by: Fredrik Gustafsson <iveqy@iveqy.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe [Thu, 13 Jun 2013 18:19:44 +0000 (20:19 +0200)]
use logical OR (||) instead of binary OR (|) in logical context
The compiler can short-circuit the evaluation of conditions strung
together with logical OR operators instead of computing the resulting
bitmask with binary ORs. More importantly, this patch makes the
intent of the changed code clearer, because the logical context (as
opposed to binary context) becomes immediately obvious.
While we're at it, simplify the check for patch->is_rename in
builtin/apply.c a bit; it can only be 0 or 1, so we don't need a
comparison operator.
Signed-off-by: René Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 11 Jun 2013 21:24:56 +0000 (14:24 -0700)]
Merge branch 'maint-1.8.2' into maint
* maint-1.8.2:
t0070 "mktemp to unwritable directory" needs SANITY
pre-push.sample: Make the script executable
Torsten Bögershausen [Sat, 8 Jun 2013 12:17:49 +0000 (14:17 +0200)]
t0070 "mktemp to unwritable directory" needs SANITY
Use the SANITY prerequisite when testing if a temp file can
be created in a read only directory.
Skip the test under CYGWIN, or skip it under Unix/Linux when
it is run as root.
Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Wieland Hoffmann [Tue, 11 Jun 2013 12:14:56 +0000 (14:14 +0200)]
pre-push.sample: Make the script executable
githooks(5) says that "[...]the .sample files are executable by default"
which was not true.
Signed-off-by: Wieland Hoffmann <themineo@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 10 Jun 2013 00:16:20 +0000 (17:16 -0700)]
Git 1.8.3.1
Primarily to push out two regression issues that seem to affect many
people, namely, the ".gitignore !directory" bug and "daemon cannot
read from $HOME owned by root" bug.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Erik Faye-Lund [Mon, 10 Jun 2013 05:48:17 +0000 (07:48 +0200)]
mingw: make mingw_signal return the correct handler
Returning the SIGALRM handler for SIGINT is not very useful.
Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 10 Jun 2013 00:06:55 +0000 (17:06 -0700)]
Merge branch 'jn/config-ignore-inaccessible' into maint
A git daemon that starts as "root" and then drops privilege often
leaves $HOME set to that of the root user, which is unreadable by
the daemon process, which was diagnosed as a configuration error.
Make per-user configuration files that are inaccessible due to
EACCES as though these files do not exist to avoid this issue, as
the tightening which was originally meant as an additional security
has annoyed enough sysadmins.
* jn/config-ignore-inaccessible:
config: allow inaccessible configuration under $HOME
Junio C Hamano [Mon, 10 Jun 2013 00:05:15 +0000 (17:05 -0700)]
Merge branch 'kb/status-ignored-optim-2' into maint
Fix recent regression of .gitignore files that list !directory to
mark it not-ignored.
* kb/status-ignored-optim-2:
dir.c: fix ignore processing within not-ignored directories
René Scharfe [Sun, 9 Jun 2013 17:39:18 +0000 (19:39 +0200)]
read-cache: free cache in discard_index
discard_cache doesn't have to free the array of cache entries, because
the next call of read_cache can simply reuse it, as they all operate on
the global variable the_index.
discard_index on the other hand does have to free it, because it can be
used e.g. with index_state variables on the stack, in which case a
missing free would cause an unrecoverable leak. This patch releases the
memory and removes a comment that was relevant for discard_cache but has
become outdated.
Since discard_cache is just a wrapper around discard_index nowadays, we
lose the optimization that avoids reallocation of that array within
loops of read_cache and discard_cache. That doesn't cause a performance
regression for me, however (HEAD = this patch, HEAD^ = master + p0002):
Test // HEAD^ HEAD
---------------\\-----------------------------------------------------
0002.1: read_ca// 1000 times 0.62(0.58+0.04) 0.61(0.58+0.02) -1.6%
Suggested-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: René Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe [Sun, 9 Jun 2013 17:39:17 +0000 (19:39 +0200)]
read-cache: add simple performance test
Add the helper test-read-cache, which can be used to call read_cache and
discard_cache in a loop as well as a performance check based on it.
Signed-off-by: René Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe [Sun, 9 Jun 2013 16:33:45 +0000 (18:33 +0200)]
submodule: remove redundant check for the_index.initialized
read_cache already performs the same check and returns immediately if
the cache has already been loaded.
Signed-off-by: René Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Fredrik Gustafsson [Sun, 9 Jun 2013 11:11:36 +0000 (13:11 +0200)]
Document .git/modules
A note in the beginning of this document describes the behavior already.
This patch just adds where to find the repositories.
Signed-off-by: Fredrik Gustafsson <iveqy@iveqy.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Sixt [Fri, 7 Jun 2013 20:53:34 +0000 (22:53 +0200)]
t4011: remove SYMLINKS prerequisite
The part of the test that is about symbolic links in the index does not
require that the corresponding file system entry is actually a symbolic
link. Use test_ln_s_add to insert a symbolic link in the index. When
the file system does not support symbolic links, we actually have a
regular file in the worktree, which we can update as if it were a
symbolic link. diff-index picks up the symbolic link property from the
index.
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Sixt [Fri, 7 Jun 2013 20:53:33 +0000 (22:53 +0200)]
t6035: use test_ln_s_add to remove SYMLINKS prerequisite
All tests in t6035 are protected by SYMLINKS. But that is not necessary,
because a lot of the functionality can be tested provided symbolic link
entries enter the index and object data base. Use test_ln_s_add for this
purpose.
Some test cases do test the presence of symbolic links on the file system.
Move these tests into separate test cases that remain protected by
SYMLINKS.
There is one instance of expect_failure. There is a possibility that this
test case fails differently depending on whether SYMLINKS is present or
not; but this is not the case.
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Sixt [Fri, 7 Jun 2013 20:53:32 +0000 (22:53 +0200)]
t3509, t4023, t4114: use test_ln_s_add to remove SYMLINKS prerequisite
In t4023 and t4114, we have to remove the entries using 'git rm' because
otherwise the entries that must turn from symbolic links to regular files
would stay symbolic links in the index. For the same reason, we have to
use 'git mv' instead of plain 'mv' in t3509.
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Sixt [Fri, 7 Jun 2013 20:53:31 +0000 (22:53 +0200)]
t3100: use test_ln_s_add to remove SYMLINKS prerequisite
This undoes the special casing introduced in this test by
704a3143
(Use prerequisite tags to skip tests that depend on symbolic links,
2009-03-04).
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Sixt [Fri, 7 Jun 2013 20:53:30 +0000 (22:53 +0200)]
t3030: use test_ln_s_add to remove SYMLINKS prerequisite
The test cases include many corner-cases of merge-recursive's behavior,
some of them involve type changes and symbolic links. All cases, including
those that are protected by SYMLINKS check only whether the result of
merge-recursive is correctly stored in the database and the index; the
file system is not investigated. Use test_ln_s_add to enter a symbolic
link in the index in the test setup and run the tests without the
SYMLINKS prerequisite.
Notice that one test that has the SYMLINKS protection removed is an
expect_failure. There is a possibility that the test fails differently
depending on whether SYMLINKS is present or not; but this is not the case
presently.
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Sixt [Fri, 7 Jun 2013 20:53:29 +0000 (22:53 +0200)]
t0000: use test_ln_s_add to remove SYMLINKS prerequisite
t0000-basic hard-codes many object IDs. To cater to file systems that do
not support symbolic links, different IDs are used depending on the
SYMLINKS prerequisite. But we can observe the symbolic links are only
needed to generate index entries. Use test_ln_s_add to generate the
index entries and get rid of explicit SYMLINKS checks.
This undoes the special casing introduced in this test by
704a3143
(Use prerequisite tags to skip tests that depend on symbolic links,
2009-03-04).
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Sixt [Fri, 7 Jun 2013 20:53:28 +0000 (22:53 +0200)]
tests: use test_ln_s_add to remove SYMLINKS prerequisite (trivial cases)
There are many instances where the treatment of symbolic links in the
object model and the algorithms are tested, but where it is not
necessary to actually have a symbolic link in the worktree. Make
adjustments to the tests and remove the SYMLINKS prerequisite when
appropriate in trivial cases, where "trivial" means:
- merely a replacement of 'ln -s a b && git add b' by test_ln_s_add
is needed;
- a test for symbolic link on the file system can be split off (and
remains protected by SYMLINKS);
- existing code is equivalent to test_ln_s_add.
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Sixt [Fri, 7 Jun 2013 20:53:27 +0000 (22:53 +0200)]
tests: introduce test_ln_s_add
Add a new function that creates a symbolic link and adds it to the index
to be used in cases where a symbolic link is not required on the file
system. We will use it to remove many SYMLINKS prerequisites from test
cases.
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Sixt [Fri, 7 Jun 2013 20:53:26 +0000 (22:53 +0200)]
t3010: modernize style
In particular:
- move test preparations inside test_expect_success
- place test description on the test_expect_success line
- indent with a tab
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Charles McGarvey [Wed, 5 Jun 2013 04:44:28 +0000 (22:44 -0600)]
gitweb: fix problem causing erroneous project list
The bug is manifest when running gitweb in a persistent process (e.g.
FastCGI, PSGI), and it's easy to reproduce. If a gitweb request
includes the searchtext parameter (i.e. s), subsequent requests using
the project_list action--which is the default action--and without
a searchtext parameter will be filtered by the searchtext value of the
first request. This is because the value of the $search_regexp global
(the value of which is based on the searchtext parameter) is currently
being persisted between requests.
Instead, clear $search_regexp before dispatching each request.
Signed-off-by: Charles McGarvey <chazmcgarvey@brokenzipper.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>