git
10 years agoMerge branch 'jc/coding-guidelines'
Junio C Hamano [Fri, 6 Jun 2014 18:38:44 +0000 (11:38 -0700)] 
Merge branch 'jc/coding-guidelines'

* jc/coding-guidelines:
  CodingGuidelines: avoid "test <cond> -a/-o <cond>"
  CodingGuidelines: on splitting a long line
  CodingGuidelines: on comparison
  CodingGuidelines: do not call the conditional statement "if()"
  CodingGuidelines: give an example for shell function preamble
  CodingGuidelines: give an example for control statements
  CodingGuidelines: give an example for redirection
  CodingGuidelines: give an example for case/esac statement
  CodingGuidelines: once it is in, it is not worth the code churn

10 years agoMerge branch 'nd/status-auto-comment-char'
Junio C Hamano [Fri, 6 Jun 2014 18:36:10 +0000 (11:36 -0700)] 
Merge branch 'nd/status-auto-comment-char'

* nd/status-auto-comment-char:
  commit: allow core.commentChar=auto for character auto selection
  config: be strict on core.commentChar

10 years agoMerge branch 'mt/rebase-i-keep-empty-test'
Junio C Hamano [Fri, 6 Jun 2014 18:36:06 +0000 (11:36 -0700)] 
Merge branch 'mt/rebase-i-keep-empty-test'

* mt/rebase-i-keep-empty-test:
  rebase --keep-empty -i: add test

10 years agoMerge branch 'mk/show-s-no-extra-blank-line-for-merges'
Junio C Hamano [Fri, 6 Jun 2014 18:35:01 +0000 (11:35 -0700)] 
Merge branch 'mk/show-s-no-extra-blank-line-for-merges'

* mk/show-s-no-extra-blank-line-for-merges:
  git-show: fix 'git show -s' to not add extra terminator after merge commit

10 years agoMerge branch 'sk/spawn-less-case-insensitively-from-grep-O-i'
Junio C Hamano [Fri, 6 Jun 2014 18:32:49 +0000 (11:32 -0700)] 
Merge branch 'sk/spawn-less-case-insensitively-from-grep-O-i'

* sk/spawn-less-case-insensitively-from-grep-O-i:
  git grep -O -i: if the pager is 'less', pass the '-I' option

10 years agoMerge branch 'jd/subtree'
Junio C Hamano [Fri, 6 Jun 2014 18:32:21 +0000 (11:32 -0700)] 
Merge branch 'jd/subtree'

* jd/subtree:
  contrib/subtree: allow adding an annotated tag
  contrib/subtree/Makefile: clean up rule for "clean"
  contrib/subtree/Makefile: clean up rules to generate documentation
  contrib/subtree/Makefile: s/libexecdir/gitexecdir/
  contrib/subtree/Makefile: use GIT-VERSION-FILE
  contrib/subtree/Makefile: scrap unused $(gitdir)

10 years agoMerge branch 'wk/doc-clarify-upstream'
Junio C Hamano [Fri, 6 Jun 2014 18:32:13 +0000 (11:32 -0700)] 
Merge branch 'wk/doc-clarify-upstream'

* wk/doc-clarify-upstream:
  Documentation: mention config sources for @{upstream}

10 years agoMerge branch 'tb/unicode-6.3-zero-width'
Junio C Hamano [Fri, 6 Jun 2014 18:29:38 +0000 (11:29 -0700)] 
Merge branch 'tb/unicode-6.3-zero-width'

Update the logic to compute the display width needed for utf8
strings and allow us to more easily maintain the tables used in
that logic.

We may want to let the users choose if codepoints with ambiguous
widths are treated as a double or single width in a follow-up patch.

* tb/unicode-6.3-zero-width:
  utf8: make it easier to auto-update git_wcwidth()
  utf8.c: use a table for double_width

10 years agoMerge branch 'jk/index-pack-report-missing'
Junio C Hamano [Fri, 6 Jun 2014 18:28:13 +0000 (11:28 -0700)] 
Merge branch 'jk/index-pack-report-missing'

* jk/index-pack-report-missing:
  index-pack: distinguish missing objects from type errors

10 years agoMerge branch 'bc/blame-crlf-test'
Junio C Hamano [Fri, 6 Jun 2014 18:26:50 +0000 (11:26 -0700)] 
Merge branch 'bc/blame-crlf-test'

If a file contained CRLF line endings in a repository with
core.autocrlf=input, then blame always marked lines as "Not
Committed Yet", even if they were unmodified.

* bc/blame-crlf-test:
  blame: correctly handle files regardless of autocrlf

10 years agoMerge branch 'sk/submodules-absolute-path-on-windows'
Junio C Hamano [Fri, 6 Jun 2014 18:26:38 +0000 (11:26 -0700)] 
Merge branch 'sk/submodules-absolute-path-on-windows'

* sk/submodules-absolute-path-on-windows:
  Revert "submodules: fix ambiguous absolute paths under Windows"

10 years agoMerge branch 'dk/blame-reorg'
Junio C Hamano [Fri, 6 Jun 2014 18:24:44 +0000 (11:24 -0700)] 
Merge branch 'dk/blame-reorg'

"git blame" has been optimized greatly by reorganising the data
structure that is used to keep track of the work to be done, thanks
to David Karstrup <dak@gnu.org>.

* dk/blame-reorg:
  blame: large-scale performance rewrite

10 years agoMerge branch 'wg/svn-fe-style-fixes'
Junio C Hamano [Fri, 6 Jun 2014 18:24:32 +0000 (11:24 -0700)] 
Merge branch 'wg/svn-fe-style-fixes'

* wg/svn-fe-style-fixes:
  svn-fe: conform to pep8

10 years agoMerge branch 'jn/contrib-remove-vim'
Junio C Hamano [Fri, 6 Jun 2014 18:24:30 +0000 (11:24 -0700)] 
Merge branch 'jn/contrib-remove-vim'

Spring cleaning of contrib/.

* jn/contrib-remove-vim:
  contrib: remove vim support instructions

10 years agoMerge branch 'jn/contrib-remove-diffall'
Junio C Hamano [Fri, 6 Jun 2014 18:23:46 +0000 (11:23 -0700)] 
Merge branch 'jn/contrib-remove-diffall'

Spring cleaning of contrib/.

* jn/contrib-remove-diffall:
  contrib: remove git-diffall

10 years agoMerge branch 'dt/merge-recursive-case-insensitive'
Junio C Hamano [Fri, 6 Jun 2014 18:23:13 +0000 (11:23 -0700)] 
Merge branch 'dt/merge-recursive-case-insensitive'

On a case insensitive filesystem, merge-recursive incorrectly
deleted the file that is to be renamed to a name that is the same
except for case differences.

* dt/merge-recursive-case-insensitive:
  mv: allow renaming to fix case on case insensitive filesystems
  merge-recursive.c: fix case-changing merge bug

10 years agoMerge branch 'rs/reflog-exists'
Junio C Hamano [Fri, 6 Jun 2014 18:23:04 +0000 (11:23 -0700)] 
Merge branch 'rs/reflog-exists'

* rs/reflog-exists:
  checkout.c: use ref_exists instead of file_exist
  refs.c: add new functions reflog_exists and delete_reflog

10 years agoMerge branch 'tg/tag-state-tag-name-in-editor-hints'
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

10 years agoMerge branch 'jk/grep-tell-run-command-to-cd-when-running-pager'
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

10 years agoMerge branch 'fc/status-printf-squelch-format-zero-length-warnings'
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

10 years agoMerge branch 'jk/squelch-compiler-warning-from-funny-error-macro'
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

10 years agoMerge branch 'dk/raise-core-deltabasecachelimit'
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

10 years agoMerge branch 'tl/relax-in-poll-emulation'
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

10 years agoMerge branch 'jk/utf8-switch-between-nfd-and-nfc'
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

10 years agoMerge branch 'da/imap-send-use-credential-helper'
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

10 years agoMerge branch 'je/pager-do-not-recurse'
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

10 years agoMerge branch 'jk/commit-C-pick-empty'
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

10 years agoMerge branch 'mm/pager-less-sans-S'
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

10 years agoFirst batch for 2.1
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>
10 years agoMerge branch 'sk/msvc-dynlink-crt'
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

10 years agoMerge branch 'ew/config-protect-mode'
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

10 years agoMerge branch 'bg/strbuf-trim'
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

10 years agoMerge branch 'jk/commit-date-approxidate'
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

10 years agoMerge branch 'ep/shell-command-substitution'
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
  ...

10 years agoMerge branch 'fc/rerere-conflict-style'
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

10 years agoMerge branch 'dt/api-doc-setup-gently'
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

10 years agoMerge branch 'fc/mergetool-prompt'
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

10 years agoMerge branch 'mm/mediawiki-encoding-fix'
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

10 years agoMerge branch 'sk/tag-contains-wo-recursion'
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

10 years agoMerge branch 'ef/send-email-absolute-path-to-the-command'
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

10 years agoMerge branch 'jx/blame-align-relative-time'
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

10 years agoMerge branch 'lr/git-run-setup-gently'
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

10 years agoMerge branch 'fc/mergetools-vimdiff3'
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

10 years agoMerge branch 'fc/merge-default-to-upstream'
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

10 years agoMerge branch 'jk/external-diff-use-argv-array'
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

10 years agoMerge branch 'sk/svn-parse-datestamp'
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

10 years agoMerge branch 'rs/ref-update-check-errors-early'
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

10 years agoMerge branch 'nd/index-pack-one-fd-per-thread'
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()

10 years agoMerge branch 'ym/fix-opportunistic-index-update-race'
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()

10 years agoMerge branch 'mh/ref-transaction'
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
  ...

10 years agoMerge branch 'ks/tree-diff-nway'
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

10 years agoMerge branch 'jc/apply-ignore-whitespace'
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

10 years agoMerge branch 'as/grep-fullname-config'
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

10 years agoSync with 1.9.4
Junio C Hamano [Fri, 30 May 2014 17:57:52 +0000 (10:57 -0700)] 
Sync with 1.9.4

10 years agoGit 1.9.4 v1.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>
10 years agot5537: re-drop http tests
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>
10 years agoMerge branch 'rh/prompt-pcmode-avoid-eval-on-refname' into maint
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

10 years agoMerge branch 'mw/symlinks' into maint
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

10 years agoGit 2.0 v2.0.0
Junio C Hamano [Wed, 28 May 2014 18:04:19 +0000 (11:04 -0700)] 
Git 2.0

10 years agoUpdate draft release notes to 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>
10 years agoGit 2.0-rc4 v2.0.0-rc4
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>
10 years agoRelNotes/2.0.0.txt: Fix several grammar issues, notably a lack of hyphens, double...
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>
10 years agoRevert "Merge branch 'jc/graduate-remote-hg-bzr' (early part)"
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>
10 years agoCodingGuidelines: avoid "test <cond> -a/-o <cond>"
Junio C Hamano [Tue, 20 May 2014 18:12:02 +0000 (11:12 -0700)] 
CodingGuidelines: avoid "test <cond> -a/-o <cond>"

The construct is error-prone; "test" being built-in in most modern
shells, the reason to avoid "test <cond> && test <cond>" spawning
one extra process by using a single "test <cond> -a <cond>" no
longer exists.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoMerge branch 'jc/graduate-remote-hg-bzr' (early part)
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'"

10 years agoremote-helpers: point at their upstream repositories
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>
10 years agocontrib: remote-helpers: add move warnings (v2.0)
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>
10 years agoRevert "Merge branch 'fc/transport-helper-sync-error-fix'"
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>
10 years agoMerge branch 'rh/prompt-pcmode-avoid-eval-on-refname'
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

10 years agogit-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>
10 years agorebase --keep-empty -i: add test
Michael S. Tsirkin [Sun, 18 May 2014 20:28:39 +0000 (23:28 +0300)] 
rebase --keep-empty -i: add test

There's some special code in rebase -i to deal
with --keep-empty.
Add test for this combination.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agocommit: allow core.commentChar=auto for character auto selection
Nguyễn Thái Ngọc Duy [Sat, 17 May 2014 01:52:23 +0000 (08:52 +0700)] 
commit: allow core.commentChar=auto for character auto selection

When core.commentChar is "auto", the comment char starts with '#' as
in default but if it's already in the prepared message, find another
char in a small subset. This should stop surprises because git strips
some lines unexpectedly.

Note that git is not smart enough to recognize '#' as the comment char
in custom templates and convert it if the final comment char is
different. It thinks '#' lines in custom templates as part of the
commit message. So don't use this with custom templates.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoconfig: be strict on core.commentChar
Nguyễn Thái Ngọc Duy [Sat, 17 May 2014 01:52:22 +0000 (08:52 +0700)] 
config: be strict on core.commentChar

We don't support comment _strings_ (at least not yet). And multi-byte
character encoding could also be misinterpreted.

The test with two commas is updated because it violates this. It's
added with the patch that introduces core.commentChar in eff80a9
(Allow custom "comment char" - 2013-01-16). It's not clear to me _why_
that behavior is wanted.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoMerge branch 'lt/request-pull'
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

10 years agoMerge branch 'jl/use-vsatisfy-correctly-for-2.0'
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

10 years agoMerge git://github.com/git-l10n/git-po
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

10 years agoMerge branch 'kb/fast-hashmap'
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

10 years agoDocumentation/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>
10 years agogit-gui: tolerate major version changes when comparing the git version
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>
10 years agofr: a lot of good fixups
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>
10 years agorequest-pull: resurrect for-linus -> tags/for-linus DWIM
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>
10 years agogit grep -O -i: if the pager is 'less', pass the '-I' option
Johannes Schindelin [Tue, 8 Feb 2011 06:17:24 +0000 (00:17 -0600)] 
git grep -O -i: if the pager is 'less', pass the '-I' option

When <command> happens to be the magic string "less", today

git grep -O<command> -e<pattern>

helpfully passes +/<pattern> to less so you can navigate through
the results within a file using the n and shift+n keystrokes.

Alas, that doesn't do the right thing for a case-insensitive match,
i.e.

git grep -i -O<command> -e<pattern>

For that case we should pass --IGNORE-CASE to "less" so that n and
shift+n can move between results ignoring case in the pattern.

The original patch came from msysgit and used "-i", but that was not
due to lack of support for "-I" but it merely overlooked that it
ought to work even when the pattern contains capital letters.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Stepan Kasal <kasal@ucw.cz>
Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agogit-show: fix 'git show -s' to not add extra terminator after merge commit
Max Kirillov [Wed, 14 May 2014 22:12:45 +0000 (01:12 +0300)] 
git-show: fix 'git show -s' to not add extra terminator after merge commit

When git show -s is called for merge commit it prints extra newline
after any merge commit. This differs from output for commits with one
parent. Fix it by more thorough checking that diff output is disabled.

The code in question exists since commit 3969cf7db1. The additional
newline is really needed for cases when patch is requested, test
t4013-diff-various.sh contains cases which can demonstrate behavior when
the condition is restricted further.

Tests:

Added merge commit to 'set up a bit of history' case in t7007-show.sh to
cover the fix.

Existing tests are updated to demonstrate the new behaviour.  Earlier,
the tests that used "git show -s --pretty=format:%s", even though
"--pretty=format:%s" calls for item separator semantics and does not ask
for the terminating newline after the last item, expected the output to
end with such a newline.  They were relying on the buggy behaviour.  Use
of "--format=%s", which is equivalent to "--pretty=tformat:%s" that asks
for a terminating newline after each item, is a more realistic way to
use the command.

In the test 'merge log messages' the expected data is changed, because
it was explicitly listing the extra newline. Also the msg.nologff and
msg.nolognoff expected files are replaced by one msg.nolog, because they
were diffing because of the bug, and now there should be no difference.

Signed-off-by: Max Kirillov <max@max630.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoDocumentation: mention config sources for @{upstream}
W. Trevor King [Tue, 13 May 2014 18:46:57 +0000 (11:46 -0700)] 
Documentation: mention config sources for @{upstream}

The earlier documentation made vague references to "is set to build
on".  Flesh that out with references to the config settings, so folks
can use git-config(1) to get more detail on what @{upstream} means.
For example, @{upstream} does not care about remote.pushdefault or
branch.<name>.pushremote.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agocontrib/subtree: allow adding an annotated tag
James Denholm [Tue, 13 May 2014 04:08:58 +0000 (14:08 +1000)] 
contrib/subtree: allow adding an annotated tag

cmd_add_commit() is passed FETCH_HEAD by cmd_add_repository, which
is then rev-parsed into an object name.  However, if the user is
fetching a tag rather than a branch HEAD, such as by executing:

  $ git subtree add -P oldGit https://github.com/git/git.git tags/v1.8.0

the object name refers to a tag and is never peeled, and the git
commit-tree call (line 561) slaps us in the face because it doesn't
peel tags to commits.

Because peeling a committish doesn't do anything if it's already a
commit, fix by peeling the object name before assigning it to $rev
using peel_committish() from git:git-sh-setup.sh, a pre-existing
dependency of git-subtree.

Reported-by: Kevin Cagle <kcagle@micron.com>
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: James Denholm <nod.helm@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoMerge branch 'fc/prompt-zsh-read-from-file'
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

10 years agocontrib: 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>
10 years agosvn-fe: conform to pep8
William Giokas [Fri, 9 May 2014 02:36:50 +0000 (21:36 -0500)] 
svn-fe: conform to pep8

Quite a large change, most of this was whitespace changes, though there
were a few places where I removed a comma or added a few characters.
Should pass through pep8 and pass every test.

Signed-off-by: William Giokas <1007380@gmail.com>
Acked-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoindex-pack: distinguish missing objects from type errors
Jeff King [Mon, 12 May 2014 04:38:39 +0000 (00:38 -0400)] 
index-pack: distinguish missing objects from type errors

When we fetch a pack that does not contain an object we
expected to receive, we get an error like:

  $ git init --bare tmp.git && cd tmp.git
  $ git fetch ../parent.git
  [...]
  error: Could not read 964953ec7bcc0245cb1d0db4095455edd21a2f2e
  fatal: Failed to traverse parents of commit b8247b40caf6704fe52736cdece6d6aae87471aa
  error: ../parent.git did not send all necessary objects

This comes from the check_everything_connected rev-list. If
we try cloning the same repo (rather than a fetch), we end
up using index-pack's --check-self-contained-and-connected
option instead, which produces output like:

  $ git clone --no-local --bare parent.git tmp.git
  [...]
  fatal: object of unexpected type
  fatal: index-pack failed

Not only is the sha1 missing, but it's a misleading message.
There's no type problem, but rather a missing object
problem; we don't notice the difference because we simply
compare OBJ_BAD != OBJ_BLOB.  Let's provide a different
message for this case:

  $ git clone --no-local --bare parent.git tmp.git
  fatal: did not receive expected object 6b00a8c61ed379d5f925a72c1987c9c52129d364
  fatal: index-pack failed

While we're at it, let's also improve a true type mismatch
error to look like

  fatal: object 6b00a8c61ed379d5f925a72c1987c9c52129d364: expected type blob, got tree

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoutf8: make it easier to auto-update git_wcwidth()
Torsten Bögershausen [Fri, 9 May 2014 21:51:44 +0000 (23:51 +0200)] 
utf8: make it easier to auto-update git_wcwidth()

The function git_wcwidth() returns for a given unicode code point the
width on the display:

 -1 for control characters,
  0 for combining or other non-visible code points
  1 for e.g. ASCII
  2 for double-width code points.

This table had been originally been extracted for one Unicode
version, probably 3.2.

We now use two tables these days, one for zero-width and another for
double-width.  Make it easier to update these tables to a later
version of Unicode by factoring out the table from utf8.c into
unicode_width.h and add the script update_unicode.sh to update the
table based on the latest Unicode specification files.

Thanks to Peter Krefting <peter@softwolves.pp.se> and Kevin Bracey
<kevin@bracey.fi> for helping with their Unicode knowledge.

Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoutf8.c: use a table for double_width
Torsten Bögershausen [Fri, 9 May 2014 21:51:38 +0000 (23:51 +0200)] 
utf8.c: use a table for double_width

Refactor git_wcwidth() and replace the if-else-if chain.
Use the table double_width which is scanned by the bisearch() function,
which is already used to find combining code points.

Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoMerge git://github.com/git-l10n/git-po
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)

10 years agol10n: 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>
10 years agocontrib: remove git-diffall
Jonathan Nieder [Fri, 9 May 2014 20:12:46 +0000 (13:12 -0700)] 
contrib: remove git-diffall

The functionality of the "git diffall" script in contrib/ was
incorporated into "git difftool" when the --dir-diff option was added
in v1.7.11 (ca. June, 2012).  Once difftool learned those features,
the diffall script became obsolete.

The only difference in behavior is that when comparing to the working
tree, difftool copies any files modified by the user back to the
working tree when the diff tool exits.  "git diffall" required the
--copy-back option to do the same.  All other diffall options have the
same meaning in difftool.

Make life easier for people choosing a tool to use by removing the old
diffall script.  A pointer in the release notes should be enough to
help current users migrate.

Helped-by: Tim Henigan <tim.henigan@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoGit 2.0-rc3 v2.0.0-rc3
Junio C Hamano [Fri, 9 May 2014 18:23:25 +0000 (11:23 -0700)] 
Git 2.0-rc3

10 years agocontrib: remove vim support instructions
Jonathan Nieder [Fri, 9 May 2014 02:23:50 +0000 (19:23 -0700)] 
contrib: remove vim support instructions

The git support scripts started shipping in upstream vim in version
7.2 (2008-08-09).  Clean up contrib/ a little by removing the
instructions for people on older versions of vim.

RHEL 6 already has vim 7.2.something, so anyone on a reasonably modern
operating system should not be affected.  Users on RHEL 5 presumably
know that means sometimes missing out on niceties like syntax
highlighting, so this should be safe.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoSync with 1.9.3
Junio C Hamano [Fri, 9 May 2014 18:00:48 +0000 (11:00 -0700)] 
Sync with 1.9.3

10 years agoGit 1.9.3 v1.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>
10 years agoblame: correctly handle files regardless of autocrlf
brian m. carlson [Sat, 26 Apr 2014 23:10:40 +0000 (23:10 +0000)] 
blame: correctly handle files regardless of autocrlf

If a file contained CRLF line endings in a repository with
core.autocrlf=input, then blame always marked lines as "Not
Committed Yet", even if they were unmodified.  Don't attempt to
convert the line endings when creating the fake commit so that blame
works correctly regardless of the autocrlf setting.

Reported-by: Ephrim Khong <dr.khong@gmail.com>
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agomv: allow renaming to fix case on case insensitive filesystems
David Turner [Thu, 8 May 2014 17:23:34 +0000 (10:23 -0700)] 
mv: allow renaming to fix case on case insensitive filesystems

"git mv hello.txt Hello.txt" on a case insensitive filesystem
always triggers "destination already exists" error, because these
two names refer to the same path from the filesystem's point of
view, and requires the user to give "--force" when correcting the
case of the path recorded in the index and in the next commit.

Detect this case and allow it without requiring "--force".

Signed-off-by: David Turner <dturner@twitter.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>