Junio C Hamano [Fri, 6 Jun 2014 18:22:24 +0000 (11:22 -0700)]
Merge branch 'tg/tag-state-tag-name-in-editor-hints'
* tg/tag-state-tag-name-in-editor-hints:
builtin/tag.c: show tag name to hint in the message editor
Junio C Hamano [Fri, 6 Jun 2014 18:21:49 +0000 (11:21 -0700)]
Merge branch 'jk/grep-tell-run-command-to-cd-when-running-pager'
* jk/grep-tell-run-command-to-cd-when-running-pager:
grep: use run-command's "dir" option for --open-files-in-pager
Junio C Hamano [Fri, 6 Jun 2014 18:21:47 +0000 (11:21 -0700)]
Merge branch 'fc/status-printf-squelch-format-zero-length-warnings'
* fc/status-printf-squelch-format-zero-length-warnings:
silence a bunch of format-zero-length warnings
Junio C Hamano [Fri, 6 Jun 2014 18:21:36 +0000 (11:21 -0700)]
Merge branch 'jk/squelch-compiler-warning-from-funny-error-macro'
* jk/squelch-compiler-warning-from-funny-error-macro:
let clang use the constant-return error() macro
inline constant return from error() function
Junio C Hamano [Fri, 6 Jun 2014 18:18:34 +0000 (11:18 -0700)]
Merge branch 'dk/raise-core-deltabasecachelimit'
The `core.deltabasecachelimit` used to default to 16 MiB , but this
proved to be too small, and has been bumped to 96 MiB.
* dk/raise-core-deltabasecachelimit:
Bump core.deltaBaseCacheLimit to 96m
Junio C Hamano [Fri, 6 Jun 2014 18:18:29 +0000 (11:18 -0700)]
Merge branch 'tl/relax-in-poll-emulation'
* tl/relax-in-poll-emulation:
compat/poll: sleep 1 millisecond to avoid busy wait
Junio C Hamano [Fri, 6 Jun 2014 18:18:26 +0000 (11:18 -0700)]
Merge branch 'jk/utf8-switch-between-nfd-and-nfc'
Document a known breakage with a test.
* jk/utf8-switch-between-nfd-and-nfc:
t3910: show failure of core.precomposeunicode with decomposed filenames
Junio C Hamano [Fri, 6 Jun 2014 18:17:56 +0000 (11:17 -0700)]
Merge branch 'da/imap-send-use-credential-helper'
"git imap-send" learns to ask the credential helper for
authentication material.
* da/imap-send-use-credential-helper:
imap-send: use git-credential
Junio C Hamano [Fri, 6 Jun 2014 18:16:59 +0000 (11:16 -0700)]
Merge branch 'je/pager-do-not-recurse'
We used to unconditionally disable the pager in the pager process
we spawn to feed out output, but that prevented people who want to
run "less" within "less" from doing so.
* je/pager-do-not-recurse:
pager: do allow spawning pager recursively
Junio C Hamano [Fri, 6 Jun 2014 18:16:04 +0000 (11:16 -0700)]
Merge branch 'jk/commit-C-pick-empty'
"git commit --allow-empty-message -C $commit" did not work when the
commit did not have any log message.
* jk/commit-C-pick-empty:
commit: do not complain of empty messages from -C
Junio C Hamano [Fri, 6 Jun 2014 18:02:59 +0000 (11:02 -0700)]
Merge branch 'mm/pager-less-sans-S'
Since the very beginning of Git, we gave the LESS environment a
default value "FRSX" when we spawn "less" as the pager. "S" (chop
long lines instead of wrapping) has been removed from this default
set of options, because it is more or less a personal taste thing,
as opposed to others that have good justifications (i.e. "R" is very
much justified because many kinds of output we produce are colored
and "FX" is justified because output we produce is often shorter
than a page).
Existing users who prefer not to see line-wrapped output may want to
set
$ git config core.pager "less -S"
to restore the traditional behaviour. It is expected that people
find output from the most subcommands easier to read with the new
default, except for "blame" which tends to produce really long
lines. To override the new default only for "git blame", you can do
this:
$ git config pager.blame "less -S"
* mm/pager-less-sans-S:
pager: remove 'S' from $LESS by default
Junio C Hamano [Tue, 3 Jun 2014 19:08:37 +0000 (12:08 -0700)]
First batch for 2.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 3 Jun 2014 19:06:46 +0000 (12:06 -0700)]
Merge branch 'sk/msvc-dynlink-crt'
* sk/msvc-dynlink-crt:
MSVC: link dynamically to the CRT
Junio C Hamano [Tue, 3 Jun 2014 19:06:46 +0000 (12:06 -0700)]
Merge branch 'ew/config-protect-mode'
* ew/config-protect-mode:
config: preserve config file permissions on edits
Junio C Hamano [Tue, 3 Jun 2014 19:06:46 +0000 (12:06 -0700)]
Merge branch 'bg/strbuf-trim'
* bg/strbuf-trim:
api-strbuf.txt: add docs for _trim and _ltrim
strbuf: use _rtrim and _ltrim in strbuf_trim
Junio C Hamano [Tue, 3 Jun 2014 19:06:46 +0000 (12:06 -0700)]
Merge branch 'jk/commit-date-approxidate'
* jk/commit-date-approxidate:
commit: accept more date formats for "--date"
commit: print "Date" line when the user has set date
pretty: make show_ident_date public
commit: use split_ident_line to compare author/committer
Junio C Hamano [Tue, 3 Jun 2014 19:06:45 +0000 (12:06 -0700)]
Merge branch 'ep/shell-command-substitution'
Adjust shell scripts to use $(cmd) instead of `cmd`.
* ep/shell-command-substitution: (41 commits)
t5000-tar-tree.sh: use the $( ... ) construct for command substitution
t4204-patch-id.sh: use the $( ... ) construct for command substitution
t4119-apply-config.sh: use the $( ... ) construct for command substitution
t4116-apply-reverse.sh: use the $( ... ) construct for command substitution
t4057-diff-combined-paths.sh: use the $( ... ) construct for command substitution
t4038-diff-combined.sh: use the $( ... ) construct for command substitution
t4036-format-patch-signer-mime.sh: use the $( ... ) construct for command substitution
t4014-format-patch.sh: use the $( ... ) construct for command substitution
t4013-diff-various.sh: use the $( ... ) construct for command substitution
t4012-diff-binary.sh: use the $( ... ) construct for command substitution
t4010-diff-pathspec.sh: use the $( ... ) construct for command substitution
t4006-diff-mode.sh: use the $( ... ) construct for command substitution
t3910-mac-os-precompose.sh: use the $( ... ) construct for command substitution
t3905-stash-include-untracked.sh: use the $( ... ) construct for command substitution
t1050-large.sh: use the $( ... ) construct for command substitution
t1020-subdirectory.sh: use the $( ... ) construct for command substitution
t1004-read-tree-m-u-wf.sh: use the $( ... ) construct for command substitution
t1003-read-tree-prefix.sh: use the $( ... ) construct for command substitution
t1002-read-tree-m-u-2way.sh: use the $( ... ) construct for command substitution
t1001-read-tree-m-2way.sh: use the $( ... ) construct for command substitution
...
Junio C Hamano [Tue, 3 Jun 2014 19:06:45 +0000 (12:06 -0700)]
Merge branch 'fc/rerere-conflict-style'
* fc/rerere-conflict-style:
rerere: fix for merge.conflictstyle
Junio C Hamano [Tue, 3 Jun 2014 19:06:45 +0000 (12:06 -0700)]
Merge branch 'dt/api-doc-setup-gently'
* dt/api-doc-setup-gently:
docs: document RUN_SETUP_GENTLY and clarify RUN_SETUP
Junio C Hamano [Tue, 3 Jun 2014 19:06:44 +0000 (12:06 -0700)]
Merge branch 'fc/mergetool-prompt'
mergetool.prompt used to default to 'true', always causing a confirmation
"do you really want to run the tool on this path" to be shown.
Among the two purposes the prompt serves, ignore the use case to
confirm that the user wants to view particular path with the named
tool, and make the prompt only to confirm the choice of the tool
made by autodetection and defaulting. For those who configured the
tool explicitly, the prompt shown for the latter purpose is simply
annoying.
Strictly speaking, this is a backward incompatible change and the
users need to explicitly set the variable to 'true' if they want to
resurrect the now-ignored use case.
* fc/mergetool-prompt:
mergetool: document the default for --[no-]prompt
mergetool: run prompt only if guessed tool
Junio C Hamano [Tue, 3 Jun 2014 19:06:44 +0000 (12:06 -0700)]
Merge branch 'mm/mediawiki-encoding-fix'
* mm/mediawiki-encoding-fix:
git-remote-mediawiki: fix encoding issue for UTF-8 media files
git-remote-mediawiki: allow stop/start-ing the test server
Junio C Hamano [Tue, 3 Jun 2014 19:06:44 +0000 (12:06 -0700)]
Merge branch 'sk/tag-contains-wo-recursion'
* sk/tag-contains-wo-recursion:
git tag --contains: avoid stack overflow
Junio C Hamano [Tue, 3 Jun 2014 19:06:44 +0000 (12:06 -0700)]
Merge branch 'ef/send-email-absolute-path-to-the-command'
* ef/send-email-absolute-path-to-the-command:
send-email: windows drive prefix (e.g. C:) appears only at the beginning
send-email: recognize absolute path on Windows
Junio C Hamano [Tue, 3 Jun 2014 19:06:43 +0000 (12:06 -0700)]
Merge branch 'jx/blame-align-relative-time'
"git blame" miscounted number of columns needed to show localized
timestamps, resulting in jaggy left-side-edge of the source code
lines in its output.
* jx/blame-align-relative-time:
blame: dynamic blame_date_width for different locales
blame: fix broken time_buf paddings in relative timestamp
Junio C Hamano [Tue, 3 Jun 2014 19:06:43 +0000 (12:06 -0700)]
Merge branch 'lr/git-run-setup-gently'
* lr/git-run-setup-gently:
git.c: treat RUN_SETUP_GENTLY and RUN_SETUP as mutually exclusive
Junio C Hamano [Tue, 3 Jun 2014 19:06:43 +0000 (12:06 -0700)]
Merge branch 'fc/mergetools-vimdiff3'
* fc/mergetools-vimdiff3:
mergetools: add vimdiff3 mode
Junio C Hamano [Tue, 3 Jun 2014 19:06:43 +0000 (12:06 -0700)]
Merge branch 'fc/merge-default-to-upstream'
"git merge" without argument, even when there is an upstream
defined for the current branch, refused to run until
merge.defaultToUpstream is set to true. Flip the default of that
configuration variable to true.
* fc/merge-default-to-upstream:
merge: enable defaulttoupstream by default
Junio C Hamano [Tue, 3 Jun 2014 19:06:42 +0000 (12:06 -0700)]
Merge branch 'jk/external-diff-use-argv-array'
Code clean-up (and a bugfix which has been merged for 2.0).
* jk/external-diff-use-argv-array:
run_external_diff: refactor cmdline setup logic
run_external_diff: hoist common bits out of conditional
run_external_diff: drop fflush(NULL)
run_external_diff: clean up error handling
run_external_diff: use an argv_array for the environment
Junio C Hamano [Tue, 3 Jun 2014 19:06:42 +0000 (12:06 -0700)]
Merge branch 'sk/svn-parse-datestamp'
* sk/svn-parse-datestamp:
SVN.pm::parse_svn_date: allow timestamps with a single-digit hour
Junio C Hamano [Tue, 3 Jun 2014 19:06:42 +0000 (12:06 -0700)]
Merge branch 'rs/ref-update-check-errors-early'
* rs/ref-update-check-errors-early:
commit.c: check for lock error and return early
sequencer.c: check for lock failure and bail early in fast_forward_to
Junio C Hamano [Tue, 3 Jun 2014 19:06:42 +0000 (12:06 -0700)]
Merge branch 'nd/index-pack-one-fd-per-thread'
Enable threaded index-pack on platforms without thread-unsafe
pread() emulation.
* nd/index-pack-one-fd-per-thread:
index-pack: work around thread-unsafe pread()
Junio C Hamano [Tue, 3 Jun 2014 19:06:41 +0000 (12:06 -0700)]
Merge branch 'ym/fix-opportunistic-index-update-race'
Read-only operations such as "git status" that internally refreshes
the index write out the refreshed index to the disk to optimize
future accesses to the working tree, but this could race with a
"read-write" operation that modify the index while it is running.
Detect such a race and avoid overwriting the index.
Duy raised a good point that we may need to do the same for the
normal writeout codepath, not just the "opportunistic" update
codepath. While that is true, nobody sane would be running two
simultaneous operations that are clearly write-oriented competing
with each other against the same index file. So in that sense that
can be done as a less urgent follow-up for this topic.
* ym/fix-opportunistic-index-update-race:
read-cache.c: verify index file before we opportunistically update it
wrapper.c: add xpread() similar to xread()
Junio C Hamano [Tue, 3 Jun 2014 19:06:40 +0000 (12:06 -0700)]
Merge branch 'mh/ref-transaction'
Update "update-ref --stdin [-z]" and then introduce a transactional
support for (multi-)reference updates.
* mh/ref-transaction: (27 commits)
ref_transaction_commit(): work with transaction->updates in place
struct ref_update: add a type field
struct ref_update: add a lock field
ref_transaction_commit(): simplify code using temporary variables
struct ref_update: store refname as a FLEX_ARRAY
struct ref_update: rename field "ref_name" to "refname"
refs: remove API function update_refs()
update-ref --stdin: reimplement using reference transactions
refs: add a concept of a reference transaction
update-ref --stdin: harmonize error messages
update-ref --stdin: improve the error message for unexpected EOF
t1400: test one mistake at a time
update-ref --stdin -z: deprecate interpreting the empty string as zeros
update-ref.c: extract a new function, parse_next_sha1()
t1400: test that stdin -z update treats empty <newvalue> as zeros
update-ref --stdin: simplify error messages for missing oldvalues
update-ref --stdin: make error messages more consistent
update-ref --stdin: improve error messages for invalid values
update-ref.c: extract a new function, parse_refname()
parse_cmd_verify(): copy old_sha1 instead of evaluating <oldvalue> twice
...
Junio C Hamano [Tue, 3 Jun 2014 19:06:40 +0000 (12:06 -0700)]
Merge branch 'ks/tree-diff-nway'
Instead of running N pair-wise diff-trees when inspecting a
N-parent merge, find the set of paths that were touched by walking
N+1 trees in parallel. These set of paths can then be turned into
N pair-wise diff-tree results to be processed through rename
detections and such. And N=2 case nicely degenerates to the usual
2-way diff-tree, which is very nice.
* ks/tree-diff-nway:
mingw: activate alloca
combine-diff: speed it up, by using multiparent diff tree-walker directly
tree-diff: rework diff_tree() to generate diffs for multiparent cases as well
Portable alloca for Git
tree-diff: reuse base str(buf) memory on sub-tree recursion
tree-diff: no need to call "full" diff_tree_sha1 from show_path()
tree-diff: rework diff_tree interface to be sha1 based
tree-diff: diff_tree() should now be static
tree-diff: remove special-case diff-emitting code for empty-tree cases
tree-diff: simplify tree_entry_pathcmp
tree-diff: show_path prototype is not needed anymore
tree-diff: rename compare_tree_entry -> tree_entry_pathcmp
tree-diff: move all action-taking code out of compare_tree_entry()
tree-diff: don't assume compare_tree_entry() returns -1,0,1
tree-diff: consolidate code for emitting diffs and recursion in one place
tree-diff: show_tree() is not needed
tree-diff: no need to pass match to skip_uninteresting()
tree-diff: no need to manually verify that there is no mode change for a path
combine-diff: move changed-paths scanning logic into its own function
combine-diff: move show_log_first logic/action out of paths scanning
Junio C Hamano [Tue, 3 Jun 2014 19:06:40 +0000 (12:06 -0700)]
Merge branch 'jc/apply-ignore-whitespace'
"--ignore-space-change" option of "git apply" ignored the
spaces at the beginning of line too aggressively, which is
inconsistent with the option of the same name "diff" and "git diff"
have.
* jc/apply-ignore-whitespace:
apply --ignore-space-change: lines with and without leading whitespaces do not match
Junio C Hamano [Tue, 3 Jun 2014 19:06:39 +0000 (12:06 -0700)]
Merge branch 'as/grep-fullname-config'
Add a configuration variable to force --full-name to be default for
"git grep".
This may cause regressions on scripted users that do not expect
this new behaviour.
* as/grep-fullname-config:
grep: add grep.fullName config variable
Junio C Hamano [Fri, 30 May 2014 17:57:52 +0000 (10:57 -0700)]
Sync with 1.9.4
Junio C Hamano [Wed, 28 May 2014 22:50:22 +0000 (15:50 -0700)]
Git 1.9.4
This is expected to be the final maintenance release for 1.9 series,
merging the remaining fixes that are relevant and are already in 2.0.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Fri, 30 May 2014 01:34:19 +0000 (21:34 -0400)]
t5537: re-drop http tests
These were originally removed by
0232852 (t5537: move
http tests out to t5539, 2014-02-13). However, they were
accidentally re-added in
1ddb4d7 (Merge branch
'nd/upload-pack-shallow', 2014-03-21).
This looks like an error in manual conflict resolution.
Here's what happened:
1. v1.9.0 shipped with the http tests in t5537.
2. We realized that this caused problems, and built
0232852 on top to move the tests to their own file.
This fix made it into v1.9.1.
3. We later had another fix in nd/upload-pack-shallow that
also touched t5537. It was built directly on v1.9.0.
When we merged nd/upload-pack-shallow to master, we got a
conflict; it was built on a version with the http tests, but
we had since removed them. The correct resolution was to
drop the http tests and keep the new ones, but instead we
kept everything.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 28 May 2014 22:46:36 +0000 (15:46 -0700)]
Merge branch 'rh/prompt-pcmode-avoid-eval-on-refname' into maint
* rh/prompt-pcmode-avoid-eval-on-refname:
git-prompt.sh: don't assume the shell expands the value of PS1
Junio C Hamano [Wed, 28 May 2014 22:45:57 +0000 (15:45 -0700)]
Merge branch 'mw/symlinks' into maint
* mw/symlinks:
setup: fix windows path buffer over-stepping
setup: don't dereference in-tree symlinks for absolute paths
setup: add abspath_part_inside_repo() function
t0060: add tests for prefix_path when path begins with work tree
t0060: add test for prefix_path when path == work tree
t0060: add test for prefix_path on symlinks via absolute paths
t3004: add test for ls-files on symlinks via absolute paths
Junio C Hamano [Wed, 28 May 2014 18:04:19 +0000 (11:04 -0700)]
Git 2.0
Junio C Hamano [Wed, 21 May 2014 18:50:35 +0000 (11:50 -0700)]
Update draft release notes to 2.0
Hopefully for the last time ;-)
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 20 May 2014 19:07:35 +0000 (12:07 -0700)]
Git 2.0-rc4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jason St. John [Sat, 17 May 2014 03:30:34 +0000 (23:30 -0400)]
RelNotes/2.0.0.txt: Fix several grammar issues, notably a lack of hyphens, double quotes, or articles
Signed-off-by: Jason St. John <jstjohn@purdue.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 20 May 2014 21:18:11 +0000 (14:18 -0700)]
Revert "Merge branch 'jc/graduate-remote-hg-bzr' (early part)"
Instead of showing a warning and working as before, fail and show
the message and force immediate upgrade from their upstream
repositories when these tools are run, per request from their
primary author.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 20 May 2014 00:12:36 +0000 (17:12 -0700)]
Merge branch 'jc/graduate-remote-hg-bzr' (early part)
* 'jc/graduate-remote-hg-bzr' (early part):
remote-helpers: point at their upstream repositories
contrib: remote-helpers: add move warnings (v2.0)
Revert "Merge branch 'fc/transport-helper-sync-error-fix'"
Junio C Hamano [Thu, 15 May 2014 21:58:16 +0000 (14:58 -0700)]
remote-helpers: point at their upstream repositories
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Felipe Contreras [Tue, 13 May 2014 21:29:56 +0000 (16:29 -0500)]
contrib: remote-helpers: add move warnings (v2.0)
The tools are now maintained out-of-tree, and they have a regression
in v2.0. It's better to start warning the users as soon as possible.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 14 May 2014 19:06:35 +0000 (12:06 -0700)]
Revert "Merge branch 'fc/transport-helper-sync-error-fix'"
This reverts commit
d508e4a8e2391ae2596403b6478d01cf3d5f928f,
reversing changes made to
e42552135a2a396f37053a89f44952ea907870b2.
The author of the original topic says he broke the upcoming 2.0
release with something that relates to "synchronization crash
regression" while refusing to give further specifics, so this would
unfortunately be the safest option for the upcoming release.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 19 May 2014 23:10:10 +0000 (16:10 -0700)]
Merge branch 'rh/prompt-pcmode-avoid-eval-on-refname'
* rh/prompt-pcmode-avoid-eval-on-refname:
git-prompt.sh: don't assume the shell expands the value of PS1
Richard Hansen [Mon, 19 May 2014 22:55:37 +0000 (18:55 -0400)]
git-prompt.sh: don't assume the shell expands the value of PS1
Not all shells subject the prompt string to parameter expansion. Test
whether the shell will expand the value of PS1, and use the result to
control whether raw ref names are included directly in PS1.
This fixes a regression introduced in commit
8976500 ("git-prompt.sh:
don't put unsanitized branch names in $PS1"): zsh does not expand PS1
by default, but that commit assumed it did. The bug resulted in
prompts containing the literal string '${__git_ps1_branch_name}'
instead of the actual branch name.
Reported-by: Caleb Thompson <caleb@calebthompson.io>
Signed-off-by: Richard Hansen <rhansen@bbn.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 19 May 2014 17:35:36 +0000 (10:35 -0700)]
Merge branch 'lt/request-pull'
* lt/request-pull:
request-pull: resurrect for-linus -> tags/for-linus DWIM
Junio C Hamano [Mon, 19 May 2014 17:35:24 +0000 (10:35 -0700)]
Merge branch 'jl/use-vsatisfy-correctly-for-2.0'
* jl/use-vsatisfy-correctly-for-2.0:
git-gui: tolerate major version changes when comparing the git version
Junio C Hamano [Mon, 19 May 2014 17:32:56 +0000 (10:32 -0700)]
Merge git://github.com/git-l10n/git-po
* git://github.com/git-l10n/git-po:
fr: a lot of good fixups
Junio C Hamano [Mon, 19 May 2014 17:32:25 +0000 (10:32 -0700)]
Merge branch 'kb/fast-hashmap'
* kb/fast-hashmap:
Documentation/technical/api-hashmap: remove source highlighting
Anders Kaseorg [Sat, 17 May 2014 11:08:55 +0000 (07:08 -0400)]
Documentation/technical/api-hashmap: remove source highlighting
The highlighting was pretty, but unfortunately, the failure mode
when source-highlight is not installed was that the entire code
block disappears.
See https://bugs.debian.org/745591,
https://bugs.launchpad.net/bugs/
1316810.
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jens Lehmann [Sat, 17 May 2014 19:49:05 +0000 (21:49 +0200)]
git-gui: tolerate major version changes when comparing the git version
Since git 2.0.0 starting git gui in a submodule using a gitfile fails with
the following error:
No working directory ../../../<path>
couldn't change working directory
to "../../../<path>": no such file or
directory
This is because "git rev-parse --show-toplevel" is only run when git gui
sees a git version of at least 1.7.0 (which is the version in which the
--show-toplevel option was introduced). But "package vsatisfies" returns
false when the major version changes, which is not what we want here.
Fix that for both places where the git version is checked using vsatisfies
by appending a '-' to the version number. This tells vsatisfies that a
change of the major version is not considered to be a problem, as long as
the new major version is larger. This is done for both the place that
caused the reported bug and another spot where the git version is tested
for another feature.
Reported-by: Chris Packham <judge.packham@gmail.com>
Reported-by: Yann Dirson <ydirson@free.fr>
Helped-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Tested-by: Chris Packham <judge.packham@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Grégoire Paris [Tue, 6 May 2014 21:29:57 +0000 (23:29 +0200)]
fr: a lot of good fixups
Signed-off-by: Grégoire Paris <postmaster@greg0ire.fr>
Acked-by: Jean-Noel Avila <jn.avila@free.fr>
Junio C Hamano [Fri, 16 May 2014 17:18:25 +0000 (10:18 -0700)]
request-pull: resurrect for-linus -> tags/for-linus DWIM
Older versions of Git before v1.7.10 did not DWIM
$ git pull $URL for-linus
to the tag "tags/for-linus" and the users were required to say
$ git pull $URL tags/for-linus
instead. Because newer versions of Git works either way,
request-pull used to show tags/for-linus when asked
$ git request-pull origin/master $URL for-linus
The recent updates broke this and in the output we see "for-linus"
without the "tags/" prefix.
As v1.7.10 is more than 2 years old, this should matter very little
in practice, but resurrecting it is very simple.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 13 May 2014 18:53:14 +0000 (11:53 -0700)]
Merge branch 'fc/prompt-zsh-read-from-file'
* fc/prompt-zsh-read-from-file:
contrib: completion: fix 'eread()' namespace
Felipe Contreras [Tue, 13 May 2014 13:21:19 +0000 (08:21 -0500)]
contrib: completion: fix 'eread()' namespace
Otherwise it might collide with a function of the same name in the
user's environment.
Suggested-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 12 May 2014 17:12:05 +0000 (10:12 -0700)]
Merge git://github.com/git-l10n/git-po
* git://github.com/git-l10n/git-po:
l10n: Updated Bulgarian translation of git (1307t0f921u)
Alexander Shopov [Wed, 29 Jan 2014 13:08:40 +0000 (15:08 +0200)]
l10n: Updated Bulgarian translation of git (1307t0f921u)
Signed-off-by: Alexander Shopov <ash@kambanaria.org>
Junio C Hamano [Fri, 9 May 2014 18:23:25 +0000 (11:23 -0700)]
Git 2.0-rc3
Junio C Hamano [Fri, 9 May 2014 18:00:48 +0000 (11:00 -0700)]
Sync with 1.9.3
Junio C Hamano [Fri, 9 May 2014 17:59:07 +0000 (10:59 -0700)]
Git 1.9.3
The third maintenance release for Git 1.9; contains all the fixes
that are scheduled to appear in Git 2.0 since 1.9.2.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 8 May 2014 18:59:51 +0000 (11:59 -0700)]
Sync with maint
* maint:
shell doc: remove stray "+" in example
Start preparing for 1.9.3
Jonathan Nieder [Wed, 7 May 2014 23:44:01 +0000 (16:44 -0700)]
shell doc: remove stray "+" in example
The git-shell(1) manpage says
EXAMPLE
To disable interactive logins, displaying a greeting
instead:
+
$ chsh -s /usr/bin/git-shell
$ mkdir $HOME/git-shell-commands
[...]
The stray "+" has been there ever since the example was added in
v1.8.3-rc0~210^2 (shell: new no-interactive-login command to print a
custom message, 2013-03-09). The "+" sign between paragraphs is
needed in asciidoc to attach extra paragraphs to a list item but here
it is not needed and ends up rendered as a literal "+". Remove it.
A quick search with "grep -e '<p>+' /usr/share/doc/git/html/*.html"
doesn't find any other instances of this problem.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 8 May 2014 17:25:37 +0000 (10:25 -0700)]
Merge git://github.com/git-l10n/git-po
* 'master' of git://github.com/git-l10n/git-po:
l10n: Fix a couple of typos in the Swedish translation
Junio C Hamano [Thu, 8 May 2014 17:05:22 +0000 (10:05 -0700)]
Start preparing for 1.9.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 8 May 2014 17:01:32 +0000 (10:01 -0700)]
Merge branch 'cl/p4-use-diff-tree' into maint
"git p4" dealing with changes in binary files were broken by a
change in 1.9 release.
* cl/p4-use-diff-tree:
git-p4: format-patch to diff-tree change breaks binary patches
Junio C Hamano [Thu, 8 May 2014 17:01:18 +0000 (10:01 -0700)]
Merge branch 'rh/prompt-pcmode-avoid-eval-on-refname' into maint
The shell prompt script (in contrib/), when using the PROMPT_COMMAND
interface, used an unsafe construct when showing the branch name in
$PS1.
* rh/prompt-pcmode-avoid-eval-on-refname:
git-prompt.sh: don't put unsanitized branch names in $PS1
Junio C Hamano [Thu, 8 May 2014 17:01:06 +0000 (10:01 -0700)]
Merge branch 'km/avoid-non-function-return-in-rebase' into maint
"git rebase" used a POSIX shell construct FreeBSD /bin/sh does not
work well with.
* km/avoid-non-function-return-in-rebase:
Revert "rebase: fix run_specific_rebase's use of "return" on FreeBSD"
rebase: avoid non-function use of "return" on FreeBSD
Junio C Hamano [Thu, 8 May 2014 17:00:45 +0000 (10:00 -0700)]
Merge branch 'tb/unicode-6.3-zero-width' into maint
Some more Unicode codepoints defined in Unicode 6.3 as having zero
width have been taught to our display column counting logic.
* tb/unicode-6.3-zero-width:
utf8.c: partially update to version 6.3
Junio C Hamano [Thu, 8 May 2014 17:00:36 +0000 (10:00 -0700)]
Merge branch 'km/avoid-bs-in-shell-glob' into maint
Some tests used shell constructs that did not work well on FreeBSD
* km/avoid-bs-in-shell-glob:
test: fix t5560 on FreeBSD
Junio C Hamano [Thu, 8 May 2014 16:59:41 +0000 (09:59 -0700)]
Merge branch 'km/avoid-cp-a' into maint
Some tests used shell constructs that did not work well on FreeBSD
* km/avoid-cp-a:
test: fix t7001 cp to use POSIX options
Junio C Hamano [Wed, 7 May 2014 22:50:15 +0000 (15:50 -0700)]
Update draft release notes for 2.0
Describe one last minute one-liner fix for regression introduced in
1.9, and fix a grave mischaracterization on a recent remote-hg/bzr
change, pointed out by Felipe.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 7 May 2014 21:39:29 +0000 (14:39 -0700)]
Merge branch 'cl/p4-use-diff-tree'
Fixes a regression in 1.9.0 with an obviously correct single-liner.
* cl/p4-use-diff-tree:
git-p4: format-patch to diff-tree change breaks binary patches
Thorsten Glaser [Thu, 29 Aug 2013 22:03:10 +0000 (00:03 +0200)]
builtin/tag.c: show tag name to hint in the message editor
Display the tag name about to be added to the user during interactive
editing.
Signed-off-by: Thorsten Glaser <tg@debian.org>
Signed-off-by: Richard Hartmann <richih@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Matthieu Moy [Wed, 30 Apr 2014 07:35:25 +0000 (09:35 +0200)]
pager: remove 'S' from $LESS by default
By default, Git used to set $LESS to -FRSX if $LESS was not set by
the user. The FRX flags actually make sense for Git (F and X because
sometimes the output Git pipes to less is short, and R because Git
pipes colored output). The S flag (chop long lines), on the other
hand, is not related to Git and is a matter of user preference. Git
should not decide for the user to change LESS's default.
More specifically, the S flag harms users who review untrusted code
within a pager, since a patch looking like:
-old code;
+new good code; [... lots of tabs ...] malicious code;
would appear identical to:
-old code;
+new good code;
Users who prefer the old behavior can still set the $LESS environment
variable to -FRSX explicitly, or set core.pager to 'less -S'.
The documentation in config.txt is made a bit longer to keep both an
example setting the 'S' flag (needed to recover the old behavior)
and an example showing how to unset a flag set by Git.
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Felipe Contreras [Sun, 4 May 2014 06:12:55 +0000 (01:12 -0500)]
silence a bunch of format-zero-length warnings
This can be observed in many versions of gcc and still exists with 4.9.0:
wt-status.c: In function ‘wt_status_print_unmerged_header’:
wt-status.c:191:2: warning: zero-length gnu_printf format string [-Wformat-zero-length]
status_printf_ln(s, c, "");
^
The user have long been told to pass -Wno-format-zero-length, but a
patch that avoids warning altogether is not too noisy, so let's do
so.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Wed, 7 May 2014 03:00:37 +0000 (23:00 -0400)]
grep: use run-command's "dir" option for --open-files-in-pager
Git generally changes directory to the repository root on
startup. When running "grep --open-files-in-pager" from a
subdirectory, we chdir back to the original directory before
running the pager, so that we can feed the relative
pathnames to the pager.
We currently do this chdir manually, but we can ask
run_command to do it for us. This is fewer lines of code,
and as a bonus, the chdir is limited to the child process,
which avoids any unexpected surprises for code running after
the pager (there isn't any currently, but this is
future-proofing).
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Tolga Ceylan [Wed, 7 May 2014 05:48:54 +0000 (22:48 -0700)]
git-p4: format-patch to diff-tree change breaks binary patches
When applying binary patches a full index is required. format-patch
already handles this, but diff-tree needs '--full-index' argument
to always output full index. When git-p4 runs git-apply to test
the patch, git-apply rejects the patch due to abbreviated blob
object names. This is the error message git-apply emits in this
case:
error: cannot apply binary patch to '<filename>' without full index line
error: <filename>: patch does not apply
Signed-off-by: Tolga Ceylan <tolga.ceylan@gmail.com>
Acked-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Peter Krefting [Wed, 7 May 2014 06:06:37 +0000 (07:06 +0100)]
l10n: Fix a couple of typos in the Swedish translation
Thanks-to: Anders Jonsson <anders.jonsson@norsjovallen.se>
Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Øyvind A. Holm [Sat, 3 May 2014 19:08:50 +0000 (21:08 +0200)]
RelNotes/2.0.0: Grammar and typo fixes
Signed-off-by: Øyvind A. Holm <sunny@sunbase.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brian Gesiak [Wed, 30 Apr 2014 08:58:07 +0000 (17:58 +0900)]
api-strbuf.txt: add docs for _trim and _ltrim
API documentation for strbuf does not document strbuf_trim() or
strbuf_ltrim(). Add documentation for these two functions.
Signed-off-by: Brian Gesiak <modocache@gmail.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brian Gesiak [Wed, 30 Apr 2014 08:58:06 +0000 (17:58 +0900)]
strbuf: use _rtrim and _ltrim in strbuf_trim
strbuf_trim() strips whitespace from the end, then the beginning of
a strbuf. Those operations are duplicated in strbuf_rtrim() and
strbuf_ltrim().
Replace strbuf_trim() implementation with calls to strbuf_rtrim(),
then strbuf_ltrim().
Signed-off-by: Brian Gesiak <modocache@gmail.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
David Kastrup [Sun, 4 May 2014 17:13:57 +0000 (19:13 +0200)]
Bump core.deltaBaseCacheLimit to 96m
The default of 16m causes serious thrashing for large delta chains
combined with large files.
Here are some benchmarks (pu variant of git blame):
time git blame -C src/xdisp.c >/dev/null
for a repository of Emacs repacked with git gc --aggressive (v1.9,
resulting in a window size of 250) located on an SSD drive. The file in
question has about 30000 lines, 1Mb of size, and a history with about
2500 commits.
16m (previous default):
real 3m33.936s
user 2m15.396s
sys 1m17.352s
32m:
real 3m1.319s
user 2m8.660s
sys 0m51.904s
64m:
real 2m20.636s
user 1m55.780s
sys 0m23.964s
96m:
real 2m5.668s
user 1m50.784s
sys 0m14.288s
128m:
real 2m4.337s
user 1m50.764s
sys 0m12.832s
192m:
real 2m3.567s
user 1m49.508s
sys 0m13.312s
Signed-off-by: David Kastrup <dak@gnu.org>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Tue, 6 May 2014 15:17:50 +0000 (11:17 -0400)]
let clang use the constant-return error() macro
Commit
e208f9c converted error() into a macro to make its
constant return value more apparent to calling code. Commit
5ded807 prevents us using this macro with clang, since
clang's -Wunused-value is smart enough to realize that the
constant "-1" is useless in some contexts.
However, since the last commit puts the constant behind an
inline function call, this is enough to prevent the
-Wunused-value warning on both modern gcc and clang. So we
can now re-enable the macro when compiling with clang.
Tested with clang 3.3, 3.4, and 3.5.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Tue, 6 May 2014 15:14:42 +0000 (11:14 -0400)]
inline constant return from error() function
Commit
e208f9c introduced a macro to turn error() calls
into:
(error(), -1)
to make the constant return value more visible to the
calling code (and thus let the compiler make better
decisions about the code).
This works well for code like:
return error(...);
but the "-1" is superfluous in code that just calls error()
without caring about the return value. In older versions of
gcc, that was fine, but gcc 4.9 complains with -Wunused-value.
We can work around this by encapsulating the constant return
value in a static inline function, as gcc specifically
avoids complaining about unused function returns unless the
function has been specifically marked with the
warn_unused_result attribute.
We also use the same trick for config_error_nonbool and
opterror, which learned the same error technique in
a469a10.
Reported-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Eric Wong [Tue, 6 May 2014 00:17:14 +0000 (00:17 +0000)]
config: preserve config file permissions on edits
Users may already store sensitive data such as imap.pass in
.git/config; making the file world-readable when "git config"
is called to edit means their password would be compromised
on a shared system.
[v2: updated for section renames, as noted by Junio]
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Karsten Blees [Fri, 7 Jan 2011 16:20:21 +0000 (17:20 +0100)]
MSVC: link dynamically to the CRT
Dynamic linking is generally preferred over static linking, and MSVCRT.dll
has been integral part of Windows for a long time.
This also fixes linker warnings for _malloc and _free in zlib.lib, which
seems to be compiled for MSVCRT.dll already.
The DLL version also exports some of the CRT initialization functions,
which are hidden in the static libcmt.lib (e.g. __wgetmainargs, required by
subsequent Unicode patches).
Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Stepan Kasal <kasal@ucw.cz>
Acked-by: Sebastian Schuberth <sschuberth@gmail.com>
Acked-by: Marat Radchenko <marat@slonopotamus.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Fri, 2 May 2014 01:12:42 +0000 (21:12 -0400)]
commit: accept more date formats for "--date"
Right now we pass off the string found by "--date" straight
to the fmt_ident function, which will use our strict
parse_date to normalize it. However, this means obvious
things like "--date=now" or "--date=2.days.ago" will not
work.
Instead, let's fallback to the approxidate function to
handle this for us. Note that we must try parse_date
ourselves first, even though approxidate will try strict
parsing itself. The reason is that approxidate throws away
any timezone information it sees from the strict parsing,
and we want to preserve it. So asking for:
git commit --date="@
1234567890 -0700"
continues to set the date in -0700, regardless of what the
local timezone is.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Fri, 2 May 2014 01:10:01 +0000 (21:10 -0400)]
commit: print "Date" line when the user has set date
When we make a commit and the author is not the same as the
committer (e.g., because you used "-c $commit" or
"--author=$somebody"), we print the author's name and email
in both the commit-message template and as part of the
commit summary. This is a safety check to give the user a
chance to confirm that we are doing what they expect.
This patch brings the same safety for the "date" field,
which may be set by "-c" or by using "--date". Note that we
explicitly do not set it for $GIT_AUTHOR_DATE, as it is
probably not of interest when "git commit" is being fed its
parameters by a script.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Fri, 2 May 2014 01:07:22 +0000 (21:07 -0400)]
pretty: make show_ident_date public
We use this function internally to format "Date" lines in
commit logs, but other parts of the code will want it, too.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Fri, 2 May 2014 01:06:57 +0000 (21:06 -0400)]
commit: use split_ident_line to compare author/committer
Instead of string-wise comparing the author/committer lines
with their timestamps truncated, we can use split_ident_line
and ident_cmp. These functions are more robust than our
ad-hoc parsing, though in practice it should not matter, as
we just generated these ident lines ourselves.
However, this will also allow us easy access to the
timestamp and tz fields in future patches.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 2 May 2014 20:15:52 +0000 (13:15 -0700)]
Git 2.0-rc2
Junio C Hamano [Fri, 2 May 2014 20:11:02 +0000 (13:11 -0700)]
Merge branch 'mw/symlinks'
A finishing touch fix to a new change already in 'master'.
* mw/symlinks:
setup: fix windows path buffer over-stepping
Junio C Hamano [Fri, 2 May 2014 20:10:58 +0000 (13:10 -0700)]
Merge branch 'km/git-svn-workaround-older-getopt-long'
* km/git-svn-workaround-older-getopt-long:
t9117: use --prefix "" instead of --prefix=""