git/git.git
5 years agoMerge branch 'jk/still-interesting'
Junio C Hamano [Fri, 17 Jul 2015 17:44:56 +0000 (10:44 -0700)]
Merge branch 'jk/still-interesting'

Code clean-up.

* jk/still-interesting:
  revision.c: remove unneeded check for NULL

5 years agoMerge branch 'es/worktree-add'
Junio C Hamano [Fri, 17 Jul 2015 17:44:54 +0000 (10:44 -0700)]
Merge branch 'es/worktree-add'

Update to the "linked checkout" in 2.5.0-rc1.

Instead of "checkout --to" that does not do what "checkout"
normally does, move the functionality to "git worktree add".

As this makes the end-user experience of the "worktree add" more or
less complete, I am tempted to say we should cook the other topic
that removes the internal "new-worktree-mode" hack from "checkout"
a bit longer in 'next', and release 2.5 final without that one.

* es/worktree-add:
  Documentation/git: fix stale "MULTIPLE CHECKOUT MODE" reference
  worktree: caution that this is still experimental
  Documentation/git-worktree: fix stale "git checkout --to" references

5 years agoDocumentation/git: fix stale "MULTIPLE CHECKOUT MODE" reference
Eric Sunshine [Fri, 17 Jul 2015 00:17:02 +0000 (20:17 -0400)]
Documentation/git: fix stale "MULTIPLE CHECKOUT MODE" reference

This should have been changed by 93a3649 (Documentation: move linked
worktree description from checkout to worktree, 2015-07-06).

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoworktree: caution that this is still experimental
Junio C Hamano [Thu, 16 Jul 2015 22:59:48 +0000 (15:59 -0700)]
worktree: caution that this is still experimental

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoDocumentation/git-worktree: fix stale "git checkout --to" references
Eric Sunshine [Thu, 16 Jul 2015 22:09:43 +0000 (18:09 -0400)]
Documentation/git-worktree: fix stale "git checkout --to" references

These should have been changed to "git worktree add" by fc56361
(worktree: introduce "add" command, 2015-07-06.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoSync with 2.4.6
Junio C Hamano [Wed, 15 Jul 2015 19:32:37 +0000 (12:32 -0700)]
Sync with 2.4.6

5 years agoGit 2.4.6 v2.4.6
Junio C Hamano [Wed, 15 Jul 2015 18:45:42 +0000 (11:45 -0700)]
Git 2.4.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge branch 'jc/diff-ws-error-highlight'
Junio C Hamano [Wed, 15 Jul 2015 19:30:14 +0000 (12:30 -0700)]
Merge branch 'jc/diff-ws-error-highlight'

A hotfix to a new feature in 2.5.0-rc.

* jc/diff-ws-error-highlight:
  diff: parse ws-error-highlight option more strictly

5 years agoMerge branch 'mm/describe-doc' into maint
Junio C Hamano [Wed, 15 Jul 2015 18:41:26 +0000 (11:41 -0700)]
Merge branch 'mm/describe-doc' into maint

Docfix.

* mm/describe-doc:
  Documentation/describe: improve one-line summary

5 years agoMerge branch 'jc/prompt-document-ps1-state-separator' into maint
Junio C Hamano [Wed, 15 Jul 2015 18:41:26 +0000 (11:41 -0700)]
Merge branch 'jc/prompt-document-ps1-state-separator' into maint

Docfix.

* jc/prompt-document-ps1-state-separator:
  git-prompt.sh: document GIT_PS1_STATESEPARATOR

5 years agoMerge branch 'es/osx-header-pollutes-mask-macro' into maint
Junio C Hamano [Wed, 15 Jul 2015 18:41:24 +0000 (11:41 -0700)]
Merge branch 'es/osx-header-pollutes-mask-macro' into maint

* es/osx-header-pollutes-mask-macro:
  ewah: use less generic macro name
  ewah/bitmap: silence warning about MASK macro redefinition

5 years agoMerge branch 'es/utf8-stupid-compiler-workaround' into maint
Junio C Hamano [Wed, 15 Jul 2015 18:41:23 +0000 (11:41 -0700)]
Merge branch 'es/utf8-stupid-compiler-workaround' into maint

A compilation workaround.

* es/utf8-stupid-compiler-workaround:
  utf8: NO_ICONV: silence uninitialized variable warning

5 years agoMerge branch 'fk/doc-format-patch-vn' into maint
Junio C Hamano [Wed, 15 Jul 2015 18:41:22 +0000 (11:41 -0700)]
Merge branch 'fk/doc-format-patch-vn' into maint

Docfix.

* fk/doc-format-patch-vn:
  doc: format-patch: fix typo

5 years agoMerge branch 'pt/t0302-needs-sanity' into maint
Junio C Hamano [Wed, 15 Jul 2015 18:41:21 +0000 (11:41 -0700)]
Merge branch 'pt/t0302-needs-sanity' into maint

* pt/t0302-needs-sanity:
  t0302: "unreadable" test needs SANITY prereq

5 years agoMerge branch 'me/fetch-into-shallow-safety' into maint
Junio C Hamano [Wed, 15 Jul 2015 18:41:20 +0000 (11:41 -0700)]
Merge branch 'me/fetch-into-shallow-safety' into maint

"git fetch --depth=<depth>" and "git clone --depth=<depth>" issued
a shallow transfer request even to an upload-pack that does not
support the capability.

* me/fetch-into-shallow-safety:
  fetch-pack: check for shallow if depth given

5 years agoMerge branch 'mh/fsck-reflog-entries' into maint
Junio C Hamano [Wed, 15 Jul 2015 18:41:19 +0000 (11:41 -0700)]
Merge branch 'mh/fsck-reflog-entries' into maint

"git fsck" used to ignore missing or invalid objects recorded in reflog.

* mh/fsck-reflog-entries:
  fsck: report errors if reflog entries point at invalid objects
  fsck_handle_reflog_sha1(): new function

5 years agoMerge branch 'af/tcsh-completion-noclobber' into maint
Junio C Hamano [Wed, 15 Jul 2015 18:41:18 +0000 (11:41 -0700)]
Merge branch 'af/tcsh-completion-noclobber' into maint

The tcsh completion writes a bash scriptlet but that would have
failed for users with noclobber set.

* af/tcsh-completion-noclobber:
  git-completion.tcsh: fix redirect with noclobber

5 years agoMerge branch 'pa/auto-gc-mac-osx' into maint
Junio C Hamano [Wed, 15 Jul 2015 18:41:17 +0000 (11:41 -0700)]
Merge branch 'pa/auto-gc-mac-osx' into maint

Recent Mac OS X updates breaks the logic to detect that the machine
is on the AC power in the sample pre-auto-gc script.

* pa/auto-gc-mac-osx:
  hooks/pre-auto-gc: adjust power checking for newer OS X

5 years agoMerge branch 'jc/do-not-feed-tags-to-clear-commit-marks' into maint
Junio C Hamano [Wed, 15 Jul 2015 18:41:16 +0000 (11:41 -0700)]
Merge branch 'jc/do-not-feed-tags-to-clear-commit-marks' into maint

"git format-patch --ignore-if-upstream A..B" did not like to be fed
tags as boundary commits.

* jc/do-not-feed-tags-to-clear-commit-marks:
  format-patch: do not feed tags to clear_commit_marks()

5 years agoMerge tag 'l10n-2.5.0-rnd1' of git://github.com/git-l10n/git-po
Junio C Hamano [Mon, 13 Jul 2015 22:37:24 +0000 (15:37 -0700)]
Merge tag 'l10n-2.5.0-rnd1' of git://github.com/git-l10n/git-po

l10n-2.5.0-rnd1

* tag 'l10n-2.5.0-rnd1' of git://github.com/git-l10n/git-po:
  l10n: de.po: translate 65 new messages
  l10n: de.po: translate "index" as "Index"
  l10n: de.po: fix translation of "head nodes"
  l10n: zh_CN: for git v2.5.0 l10n round 1
  l10n: ca.po: update translation
  l10n: fr.po v2.5.0-rc0 (2355t)
  l10n: Updated Bulgarian translation of git (2355t,0f,0u)
  l10n: sv.po: Update Swedish translation (2355t0f0u)
  l10n: Updated Vietnamese translation (2355t)
  l10n: git.pot: v2.5.0 round 1 (65 new, 15 removed)

5 years agoGit 2.5.0-rc2 v2.5.0-rc2
Junio C Hamano [Mon, 13 Jul 2015 21:03:44 +0000 (14:03 -0700)]
Git 2.5.0-rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge branch 'es/worktree-add'
Junio C Hamano [Mon, 13 Jul 2015 21:02:18 +0000 (14:02 -0700)]
Merge branch 'es/worktree-add'

Update to the "linked checkout" in 2.5.0-rc1.

Instead of "checkout --to" that does not do what "checkout"
normally does, move the functionality to "git worktree add".

* es/worktree-add: (24 commits)
  Revert "checkout: retire --ignore-other-worktrees in favor of --force"
  checkout: retire --ignore-other-worktrees in favor of --force
  worktree: add: auto-vivify new branch when <branch> is omitted
  worktree: add: make -b/-B default to HEAD when <branch> is omitted
  worktree: extract basename computation to new function
  checkout: require worktree unconditionally
  checkout: retire --to option
  tests: worktree: retrofit "checkout --to" tests for "worktree add"
  worktree: add -b/-B options
  worktree: add --detach option
  worktree: add --force option
  worktree: introduce "add" command
  checkout: drop 'checkout_opts' dependency from prepare_linked_checkout
  checkout: make --to unconditionally verbose
  checkout: prepare_linked_checkout: drop now-unused 'new' argument
  checkout: relocate --to's "no branch specified" check
  checkout: fix bug with --to and relative HEAD
  Documentation/git-worktree: add EXAMPLES section
  Documentation/git-worktree: add high-level 'lock' overview
  Documentation/git-worktree: split technical info from general description
  ...

5 years agoMerge branch 'nd/multiple-work-trees'
Junio C Hamano [Mon, 13 Jul 2015 21:02:02 +0000 (14:02 -0700)]
Merge branch 'nd/multiple-work-trees'

"git checkout [<tree-ish>] <paths>" spent unnecessary cycles
checking if the current branch was checked out elsewhere, when we
know we are not switching the branches ourselves.

* nd/multiple-work-trees:
  worktree: new place for "git prune --worktrees"
  checkout: don't check worktrees when not necessary

5 years agoMerge branch 'ss/clone-guess-dir-name-simplify'
Junio C Hamano [Mon, 13 Jul 2015 21:00:28 +0000 (14:00 -0700)]
Merge branch 'ss/clone-guess-dir-name-simplify'

Code simplification.

* ss/clone-guess-dir-name-simplify:
  clone: simplify string handling in guess_dir_name()

5 years agoMerge branch 'kb/config-unmap-before-renaming'
Junio C Hamano [Mon, 13 Jul 2015 21:00:27 +0000 (14:00 -0700)]
Merge branch 'kb/config-unmap-before-renaming'

"git config" failed to update the configuration file when the
underlying filesystem is incapable of renaming a file that is still
open.

* kb/config-unmap-before-renaming:
  config.c: fix writing config files on Windows network shares

5 years agoMerge branch 'mh/strbuf-read-file-returns-ssize-t'
Junio C Hamano [Mon, 13 Jul 2015 21:00:27 +0000 (14:00 -0700)]
Merge branch 'mh/strbuf-read-file-returns-ssize-t'

Avoid possible ssize_t to int truncation.

* mh/strbuf-read-file-returns-ssize-t:
  strbuf: strbuf_read_file() should return ssize_t

5 years agoMerge branch 'jc/unexport-git-pager-in-use-in-pager'
Junio C Hamano [Mon, 13 Jul 2015 21:00:26 +0000 (14:00 -0700)]
Merge branch 'jc/unexport-git-pager-in-use-in-pager'

When you say "!<ENTER>" while running say "git log", you'd confuse
yourself in the resulting shell, that may look as if you took
control back to the original shell you spawned "git log" from but
that isn't what is happening.  To that new shell, we leaked
GIT_PAGER_IN_USE environment variable that was meant as a local
communication between the original "Git" and subprocesses that was
spawned by it after we launched the pager, which caused many
"interesting" things to happen, e.g. "git diff | cat" still paints
its output in color by default.

Stop leaking that environment variable to the pager's half of the
fork; we only need it on "Git" side when we spawn the pager.

* jc/unexport-git-pager-in-use-in-pager:
  pager: do not leak "GIT_PAGER_IN_USE" to the pager

5 years agoMerge branch 'kb/use-nsec-doc'
Junio C Hamano [Mon, 13 Jul 2015 21:00:26 +0000 (14:00 -0700)]
Merge branch 'kb/use-nsec-doc'

Clarify in the Makefile a guideline to decide use of USE_NSEC.

* kb/use-nsec-doc:
  Makefile / racy-git.txt: clarify USE_NSEC prerequisites

5 years agoMerge branch 'js/rebase-i-clean-up-upon-continue-to-skip'
Junio C Hamano [Mon, 13 Jul 2015 21:00:25 +0000 (14:00 -0700)]
Merge branch 'js/rebase-i-clean-up-upon-continue-to-skip'

Abandoning an already applied change in "git rebase -i" with
"--continue" left CHERRY_PICK_HEAD and confused later steps.

* js/rebase-i-clean-up-upon-continue-to-skip:
  rebase -i: do not leave a CHERRY_PICK_HEAD file behind
  t3404: demonstrate CHERRY_PICK_HEAD bug

5 years agoMerge branch 'et/http-proxyauth'
Junio C Hamano [Mon, 13 Jul 2015 21:00:24 +0000 (14:00 -0700)]
Merge branch 'et/http-proxyauth'

We used to ask libCURL to use the most secure authentication method
available when talking to an HTTP proxy only when we were told to
talk to one via configuration variables.  We now ask libCURL to
always use the most secure authentication method, because the user
can tell libCURL to use an HTTP proxy via an environment variable
without using configuration variables.

* et/http-proxyauth:
  http: always use any proxy auth method available

5 years agoMerge branch 'jc/fsck-retire-require-eoh'
Junio C Hamano [Mon, 13 Jul 2015 21:00:23 +0000 (14:00 -0700)]
Merge branch 'jc/fsck-retire-require-eoh'

A fix to a minor regression to "git fsck" in v2.2 era that started
complaining about a body-less tag object when it lacks a separator
empty line after its header to separate it with a non-existent body.

* jc/fsck-retire-require-eoh:
  fsck: it is OK for a tag and a commit to lack the body

5 years agodiff: parse ws-error-highlight option more strictly
René Scharfe [Sat, 11 Jul 2015 12:58:21 +0000 (14:58 +0200)]
diff: parse ws-error-highlight option more strictly

Check if a matched token is followed by a delimiter before advancing the
pointer arg.  This avoids accepting composite words like "allnew" or
"defaultcontext" and misparsing them as "new" or "context".

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoRevert "checkout: retire --ignore-other-worktrees in favor of --force"
Junio C Hamano [Sun, 12 Jul 2015 16:38:21 +0000 (09:38 -0700)]
Revert "checkout: retire --ignore-other-worktrees in favor of --force"

This reverts commit 0d1a1517835a10818f2d40d8780a268dbb5e20ce.

When trying to switch to a different branch, that happens to be
checked out in another working tree, the user shouldn't have to
give up the other safety measures (like protecting the local changes
that overlap the difference between the branches) while defeating
the "no two checkouts of the same branch" safety.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoThe last minute bits of fixes
Junio C Hamano [Fri, 10 Jul 2015 21:29:00 +0000 (14:29 -0700)]
The last minute bits of fixes

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge branch 'cb/rebase-am-exit-code'
Junio C Hamano [Fri, 10 Jul 2015 21:26:16 +0000 (14:26 -0700)]
Merge branch 'cb/rebase-am-exit-code'

"git rebase" did not exit with failure when format-patch it invoked
failed for whatever reason.

* cb/rebase-am-exit-code:
  rebase: return non-zero error code if format-patch fails

5 years agoMerge branch 'jk/fix-refresh-utime'
Junio C Hamano [Fri, 10 Jul 2015 21:26:14 +0000 (14:26 -0700)]
Merge branch 'jk/fix-refresh-utime'

Fix a small bug in our use of umask() return value.

* jk/fix-refresh-utime:
  check_and_freshen_file: fix reversed success-check

5 years agoMerge branch 'mm/branch-doc-updates'
Junio C Hamano [Fri, 10 Jul 2015 21:26:13 +0000 (14:26 -0700)]
Merge branch 'mm/branch-doc-updates'

* mm/branch-doc-updates:
  Documentation/branch: document -M and -D in terms of --force
  Documentation/branch: document -d --force and -m --force

5 years agoMerge branch 'ls/hint-rev-list-count'
Junio C Hamano [Fri, 10 Jul 2015 21:26:12 +0000 (14:26 -0700)]
Merge branch 'ls/hint-rev-list-count'

* ls/hint-rev-list-count:
  rev-list: add --count to usage guide

5 years agoMerge branch 'jk/rev-list-no-bitmap-while-pruning'
Junio C Hamano [Fri, 10 Jul 2015 21:26:12 +0000 (14:26 -0700)]
Merge branch 'jk/rev-list-no-bitmap-while-pruning'

A minor bugfix when pack bitmap is used with "rev-list --count".

* jk/rev-list-no-bitmap-while-pruning:
  rev-list: disable --use-bitmap-index when pruning commits

5 years agoMerge branch 'cb/subtree-tests-update'
Junio C Hamano [Fri, 10 Jul 2015 21:17:56 +0000 (14:17 -0700)]
Merge branch 'cb/subtree-tests-update'

Tests update in contrib/subtree.

* cb/subtree-tests-update:
  contrib/subtree: small tidy-up to test
  contrib/subtree: fix broken &&-chains and revealed test error
  contrib/subtree: use tabs consitently for indentation in tests

5 years agoMerge branch 'rh/test-color-avoid-terminfo-in-original-home'
Junio C Hamano [Fri, 10 Jul 2015 21:17:55 +0000 (14:17 -0700)]
Merge branch 'rh/test-color-avoid-terminfo-in-original-home'

An ancient test framework enhancement to allow color was not
entirely correct; this makes it work even when tput needs to read
from the ~/.terminfo under the user's real HOME directory.

* rh/test-color-avoid-terminfo-in-original-home:
  test-lib.sh: fix color support when tput needs ~/.terminfo
  Revert "test-lib.sh: do tests for color support after changing HOME"

5 years agoMerge branch 'sb/p5310-and-chain'
Junio C Hamano [Fri, 10 Jul 2015 21:17:54 +0000 (14:17 -0700)]
Merge branch 'sb/p5310-and-chain'

Code clean-up.

* sb/p5310-and-chain:
  p5310: Fix broken && chain in performance test

5 years agoMerge branch 'tb/checkout-doc'
Junio C Hamano [Fri, 10 Jul 2015 21:17:54 +0000 (14:17 -0700)]
Merge branch 'tb/checkout-doc'

Doc update.

* tb/checkout-doc:
  git-checkout.txt: document "git checkout <pathspec>" better

5 years agoMerge branch 'jk/pretty-encoding-doc'
Junio C Hamano [Fri, 10 Jul 2015 21:17:53 +0000 (14:17 -0700)]
Merge branch 'jk/pretty-encoding-doc'

Doc update.

* jk/pretty-encoding-doc:
  docs: clarify that --encoding can produce invalid sequences

5 years agoMerge branch 'nd/dwim-wildcards-as-pathspecs'
Junio C Hamano [Fri, 10 Jul 2015 21:17:52 +0000 (14:17 -0700)]
Merge branch 'nd/dwim-wildcards-as-pathspecs'

Test updates to a topic already in 2.5-rc.

* nd/dwim-wildcards-as-pathspecs:
  Add tests for wildcard "path vs ref" disambiguation

5 years agoMerge branch 'jk/maint-for-each-packed-object'
Junio C Hamano [Thu, 9 Jul 2015 21:31:43 +0000 (14:31 -0700)]
Merge branch 'jk/maint-for-each-packed-object'

The for_each_packed_object() API function did not iterate over
objects in a packfile that hasn't been used yet.

* jk/maint-for-each-packed-object:
  for_each_packed_object: automatically open pack index

5 years agoMerge branch 'jc/fix-alloc-sortbuf-in-index-pack'
Junio C Hamano [Thu, 9 Jul 2015 21:31:42 +0000 (14:31 -0700)]
Merge branch 'jc/fix-alloc-sortbuf-in-index-pack'

A hotfix for what is in 2.5-rc but not in 2.4.

* jc/fix-alloc-sortbuf-in-index-pack:
  index-pack: fix allocation of sorted_by_pos array

5 years agoclone: simplify string handling in guess_dir_name()
Sebastian Schuberth [Thu, 9 Jul 2015 18:24:08 +0000 (18:24 +0000)]
clone: simplify string handling in guess_dir_name()

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agocheck_and_freshen_file: fix reversed success-check
Jeff King [Wed, 8 Jul 2015 20:33:52 +0000 (16:33 -0400)]
check_and_freshen_file: fix reversed success-check

When we want to write out a loose object file, we have
always first made sure we don't already have the object
somewhere. Since 33d4221 (write_sha1_file: freshen existing
objects, 2014-10-15), we also update the timestamp on the
file, so that a simultaneous prune knows somebody is
likely to reference it soon.

If our utime() call fails, we treat this the same as not
having the object in the first place; the safe thing to do
is write out another copy. However, the loose-object check
accidentally inverts the utime() check; it returns failure
_only_ when the utime() call actually succeeded. Thus it was
failing to protect us there, and in the normal case where
utime() succeeds, it caused us to pointlessly write out and
link the object.

This passed our freshening tests, because writing out the
new object is certainly _one_ way of updating its utime. So
the normal case was inefficient, but not wrong.

While we're here, let's also drop a comment in front of the
check_and_freshen functions, making a note of their return
type (since it is not our usual "0 for success, -1 for
error").

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agorebase: return non-zero error code if format-patch fails
Clemens Buchacher [Thu, 2 Jul 2015 09:11:33 +0000 (11:11 +0200)]
rebase: return non-zero error code if format-patch fails

Since e481af06 (rebase: Handle cases where format-patch fails) we
notice if format-patch fails and return immediately from
git-rebase--am. We save the return value with ret=$?, but then we
return $?, which is usually zero in this case.

Fix this by returning $ret instead.

Cc: Andrew Wong <andrew.kw.w@gmail.com>
Signed-off-by: Clemens Buchacher <clemens.buchacher@intel.com>
Helped-by: Jorge Nunes <jorge.nunes@intel.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agol10n: de.po: translate 65 new messages
Ralf Thielow [Wed, 1 Jul 2015 18:07:08 +0000 (20:07 +0200)]
l10n: de.po: translate 65 new messages

Translate 65 new messages came from git.pot update in
64f23b0 (l10n: git.pot: v2.5.0 round 1 (65 new, 15 removed)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
5 years agol10n: de.po: translate "index" as "Index"
Ralf Thielow [Fri, 19 Jun 2015 17:50:06 +0000 (19:50 +0200)]
l10n: de.po: translate "index" as "Index"

The term "index" is translated as "Staging-Area" to
match a majority of German books and to not confuse
Git beginners who don't know about Git's index.

"Staging Area" is used in German books as a thing where
content can be staged for commit.  While the translation
is good for those kind of messages, it's bad for messages
that mean the Git index as the tree state or the index
file, in which case we should translate as "Index".

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
5 years agol10n: de.po: fix translation of "head nodes"
Ralf Thielow [Fri, 5 Jun 2015 17:30:35 +0000 (19:30 +0200)]
l10n: de.po: fix translation of "head nodes"

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Phillip Sz <phillip.szelat@gmail.com>
5 years agocheckout: retire --ignore-other-worktrees in favor of --force
Eric Sunshine [Mon, 6 Jul 2015 17:31:00 +0000 (13:31 -0400)]
checkout: retire --ignore-other-worktrees in favor of --force

As a safeguard, checking out a branch already checked out by a different
worktree is disallowed. This behavior can be overridden with
--ignore-other-worktrees, however, this option is neither obvious nor
particularly discoverable. As a common safeguard override, --force is
more likely to come to mind. Therefore, overload it to also suppress the
check for a branch already checked out elsewhere.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoworktree: add: auto-vivify new branch when <branch> is omitted
Eric Sunshine [Mon, 6 Jul 2015 17:30:59 +0000 (13:30 -0400)]
worktree: add: auto-vivify new branch when <branch> is omitted

As a convenience, when <branch> is omitted from "git worktree <path>
<branch>" and neither -b nor -B is used, automatically create a new
branch named after <path>, as if "-b $(basename <path>)" was specified.
Thus, "git worktree add ../hotfix" creates a new branch named "hotfix"
and associates it with new worktree "../hotfix".

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoworktree: add: make -b/-B default to HEAD when <branch> is omitted
Eric Sunshine [Mon, 6 Jul 2015 17:30:58 +0000 (13:30 -0400)]
worktree: add: make -b/-B default to HEAD when <branch> is omitted

As a convenience, like "git branch" and "git checkout -b", make
"git worktree add -b <newbranch> <path> <branch>" default to HEAD when
<branch> is omitted.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoworktree: extract basename computation to new function
Eric Sunshine [Mon, 6 Jul 2015 17:30:57 +0000 (13:30 -0400)]
worktree: extract basename computation to new function

A subsequent patch will also need to compute the basename of the new
worktree, so factor out this logic into a new function.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agocheckout: require worktree unconditionally
Eric Sunshine [Mon, 6 Jul 2015 17:30:56 +0000 (13:30 -0400)]
checkout: require worktree unconditionally

In order to allow linked worktree creation via "git checkout --to" from
a bare repository, 3473ad0 (checkout: don't require a work tree when
checking out into a new one, 2014-11-30) dropped git-checkout's
unconditional NEED_WORK_TREE requirement and instead performed worktree
setup conditionally based upon presence or absence of the --to option.
Now that --to has been retired and git-checkout is no longer responsible
for linked worktree creation, the NEED_WORK_TREE requirement can be
re-instated.

This effectively reverts 3473ad0, except for the tests it added which
now check bare repository behavior of "git worktree add" instead.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agocheckout: retire --to option
Eric Sunshine [Mon, 6 Jul 2015 17:30:55 +0000 (13:30 -0400)]
checkout: retire --to option

Now that "git worktree add" has achieved user-facing feature-parity with
"git checkout --to", retire the latter.

Move the actual linked worktree creation functionality,
prepare_linked_checkout() and its helpers, verbatim from checkout.c to
worktree.c.

This effectively reverts changes to checkout.c by 529fef2 (checkout:
support checking out into a new working directory, 2014-11-30) with the
exception of merge_working_tree() and switch_branches() which still
require specialized knowledge that a the checkout is occurring in a
newly-created linked worktree (signaled to them by the private
GIT_CHECKOUT_NEW_WORKTREE environment variable).

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotests: worktree: retrofit "checkout --to" tests for "worktree add"
Eric Sunshine [Mon, 6 Jul 2015 17:30:54 +0000 (13:30 -0400)]
tests: worktree: retrofit "checkout --to" tests for "worktree add"

With the introduction of "git worktree add", "git checkout --to" is
slated for removal. Therefore, retrofit linked worktree creation tests
to use "git worktree add" instead.

(The test to check exclusivity of "checkout --to" and "checkout <paths>"
is dropped altogether since it becomes meaningless with retirement of
"checkout --to".)

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoworktree: add -b/-B options
Eric Sunshine [Mon, 6 Jul 2015 17:30:53 +0000 (13:30 -0400)]
worktree: add -b/-B options

One of git-worktree's roles is to populate the new worktree, much like
git-checkout, and thus, for convenience, ought to support several of the
same shortcuts. Toward this goal, add -b/-B options to create a new
branch and check it out in the new worktree.

(For brevity, only -b is mentioned in the synopsis; -B is omitted.)

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoworktree: add --detach option
Eric Sunshine [Mon, 6 Jul 2015 17:30:52 +0000 (13:30 -0400)]
worktree: add --detach option

One of git-worktree's roles is to populate the new worktree, much like
git-checkout, and thus, for convenience, ought to support several of the
same shortcuts. Toward this goal, add a --detach option to detach HEAD
in the new worktree.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoworktree: add --force option
Eric Sunshine [Mon, 6 Jul 2015 17:30:51 +0000 (13:30 -0400)]
worktree: add --force option

By default, "git worktree add" refuses to create a new worktree when
the requested branch is already checked out elsewhere. Add a --force
option to override this safeguard.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoworktree: introduce "add" command
Eric Sunshine [Mon, 6 Jul 2015 17:30:50 +0000 (13:30 -0400)]
worktree: introduce "add" command

The plan is to relocate "git checkout --to" functionality to "git
worktree add". As a first step, introduce a bare-bones git-worktree
"add" command along with documentation. At this stage, "git worktree
add" merely invokes "git checkout --to" behind the scenes, but an
upcoming patch will move the actual functionality
(checkout.c:prepare_linked_checkout() and its helpers) to worktree.c.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agocheckout: drop 'checkout_opts' dependency from prepare_linked_checkout
Eric Sunshine [Mon, 6 Jul 2015 17:30:49 +0000 (13:30 -0400)]
checkout: drop 'checkout_opts' dependency from prepare_linked_checkout

The plan is to relocate "git checkout --to" functionality to "git
worktree add", however, worktree.c won't have access to the 'struct
checkout_opts' passed to prepare_linked_worktree(), which it consults
for the pathname of the new worktree and the argv[] of the command it
should run to populate the new worktree. Facilitate relocation of
prepare_linked_worktree() by instead having it accept the pathname and
argv[] directly, thus eliminating the final references to 'struct
checkout_opts'.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agocheckout: make --to unconditionally verbose
Eric Sunshine [Mon, 6 Jul 2015 17:30:48 +0000 (13:30 -0400)]
checkout: make --to unconditionally verbose

prepare_linked_checkout() respects git-checkout's --quiet flag, however,
the plan is to relocate "git checkout --to" functionality to "git
worktree add", and git-worktree does not (yet) have a --quiet flag.
Consequently, make prepare_linked_checkout() unconditionally verbose to
ease eventual code movement to worktree.c.

(A --quiet flag can be added to git-worktree later if there is demand
for it.)

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agocheckout: prepare_linked_checkout: drop now-unused 'new' argument
Eric Sunshine [Mon, 6 Jul 2015 17:30:47 +0000 (13:30 -0400)]
checkout: prepare_linked_checkout: drop now-unused 'new' argument

The only references to 'new' were folded out by the last two patches.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agocheckout: relocate --to's "no branch specified" check
Eric Sunshine [Mon, 6 Jul 2015 17:30:46 +0000 (13:30 -0400)]
checkout: relocate --to's "no branch specified" check

The plan is to relocate "git checkout --to" functionality to "git
worktree add", however, this check expects a 'struct branch_info' which
git-worktree won't have at hand. It will, however, have access to its
own command-line from which it can pick up the branch name. Therefore,
as a preparatory step, rather than having prepare_linked_checkout()
perform this check, make it the caller's responsibility.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agocheckout: fix bug with --to and relative HEAD
Eric Sunshine [Mon, 6 Jul 2015 17:30:45 +0000 (13:30 -0400)]
checkout: fix bug with --to and relative HEAD

Given "git checkout --to <path> HEAD~1", the new worktree's HEAD should
begin life at the current branch's HEAD~1, however, it actually ends up
at HEAD~2. This happens because:

    1. git-checkout resolves HEAD~1

    2. to satisfy is_git_directory(), prepare_linked_worktree() creates
       a HEAD for the new worktree with the value of the resolved HEAD~1

    3. git-checkout re-invokes itself with the same arguments within the
       new worktree to populate the worktree

    4. the sub git-checkout resolves HEAD~1 relative to its own HEAD,
       which is the resolved HEAD~1 from the original invocation,
       resulting unexpectedly and incorrectly in HEAD~2 (relative to the
       original)

Fix this by unconditionally assigning the current worktree's HEAD as the
value of the new worktree's HEAD.

As a side-effect, this change also eliminates a dependence within
prepare_linked_checkout() upon 'struct branch_info'. The plan is to
eventually relocate "git checkout --to" functionality to "git worktree
add", and worktree.c won't have knowledge of 'struct branch_info', so
removal of this dependency is a step toward that goal.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoDocumentation/git-worktree: add EXAMPLES section
Eric Sunshine [Mon, 6 Jul 2015 17:30:44 +0000 (13:30 -0400)]
Documentation/git-worktree: add EXAMPLES section

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoDocumentation/git-worktree: add high-level 'lock' overview
Eric Sunshine [Mon, 6 Jul 2015 17:30:43 +0000 (13:30 -0400)]
Documentation/git-worktree: add high-level 'lock' overview

Due to the (current) absence of a "git worktree lock" command, locking
a worktree's administrative files to prevent automatic pruning is a
manual task, necessarily requiring low-level understanding of linked
worktree functionality. However, this level of detail does not belong
in the high-level DESCRIPTION section, so add a generalized discussion
of locking to DESCRIPTION and move the technical information to DETAILS.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoDocumentation/git-worktree: split technical info from general description
Eric Sunshine [Mon, 6 Jul 2015 17:30:42 +0000 (13:30 -0400)]
Documentation/git-worktree: split technical info from general description

The DESCRIPTION section should provide a high-level overview of linked
worktree functionality to bring users up to speed quickly, without
overloading them with low-level details, so relocate the technical
information to a new DETAILS section.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoDocumentation/git-worktree: add BUGS section
Eric Sunshine [Mon, 6 Jul 2015 17:30:41 +0000 (13:30 -0400)]
Documentation/git-worktree: add BUGS section

Relocate submodule warning to BUGS and enumerate missing commands.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoDocumentation: move linked worktree description from checkout to worktree
Eric Sunshine [Mon, 6 Jul 2015 17:30:40 +0000 (13:30 -0400)]
Documentation: move linked worktree description from checkout to worktree

Now that the git-worktree command exists, its documentation page is the
natural place for the linked worktree description to reside. Relocate
the "MULTIPLE WORKING TREES" description verbatim from git-checkout.txt
to git-worktree.txt.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoDocumentation/git-worktree: associate options with commands
Eric Sunshine [Mon, 6 Jul 2015 17:30:39 +0000 (13:30 -0400)]
Documentation/git-worktree: associate options with commands

git-worktree options affect some worktree commands but not others, but
this is not necessarily obvious from the option descriptions. Make this
clear by indicating explicitly which commands are affected by which
options.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoDocumentation/git-checkout: fix incorrect worktree prune command
Eric Sunshine [Mon, 6 Jul 2015 17:30:38 +0000 (13:30 -0400)]
Documentation/git-checkout: fix incorrect worktree prune command

This was missed when "git prune --worktrees" became "git worktree prune".

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoDocumentation/branch: document -M and -D in terms of --force
Matthieu Moy [Thu, 2 Jul 2015 14:07:21 +0000 (16:07 +0200)]
Documentation/branch: document -M and -D in terms of --force

Now that we have proper documentation for --force's interaction with -d
and -m, we can avoid duplication and consider -M and -D as convenience
aliases for -m --force and -d --force.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoDocumentation/branch: document -d --force and -m --force
Matthieu Moy [Thu, 2 Jul 2015 14:07:20 +0000 (16:07 +0200)]
Documentation/branch: document -d --force and -m --force

The --force option was modified in 356e91f (branch: allow -f with -m and
-d, 2014-12-08), but the documentation was not updated.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agogit-multimail: update to release 1.1.1
Matthieu Moy [Sun, 5 Jul 2015 11:10:17 +0000 (13:10 +0200)]
git-multimail: update to release 1.1.1

The only change is a bugfix: the SMTP mailer was not working with
Python 2.4.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agol10n: zh_CN: for git v2.5.0 l10n round 1
Jiang Xin [Sun, 31 May 2015 00:42:31 +0000 (08:42 +0800)]
l10n: zh_CN: for git v2.5.0 l10n round 1

Update 65 translations (2355t0f0u) for git v2.5.0-rc0.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
5 years agoindex-pack: fix allocation of sorted_by_pos array
Junio C Hamano [Fri, 3 Jul 2015 16:51:57 +0000 (09:51 -0700)]
index-pack: fix allocation of sorted_by_pos array

When c6458e60 (index-pack: kill union delta_base to save memory,
2015-04-18) attempted to reduce the memory footprint of index-pack,
one of the key thing it did was to keep track of ref-deltas and
ofs-deltas separately.

In fix_unresolved_deltas(), however it forgot that it now wants to
look only at ref deltas in one place.  The code allocated an array
for nr_unresolved, which is sum of number of ref- and ofs-deltas
minus nr_resolved, which may be larger or smaller than the number
ref-deltas.  Depending on nr_resolved, this was either under or over
allocating.

Also, the old code before this change had to use 'i' and 'n' because
some of the things we see in the (old) deltas[] array we scanned
with 'i' would not make it into the sorted_by_pos[] array in the old
world order, but now because you have only ref delta in a separate
ref_deltas[] array, they increment lock&step.  We no longer need
separate variables.  And most importantly, we shouldn't pass the
nr_unresolved parameter, as this number does not play a role in the
working of this helper function.

Helped-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agostrbuf: strbuf_read_file() should return ssize_t
Michael Haggerty [Fri, 3 Jul 2015 13:59:32 +0000 (15:59 +0200)]
strbuf: strbuf_read_file() should return ssize_t

It is currently declared to return int, which could overflow for
large files.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agopager: do not leak "GIT_PAGER_IN_USE" to the pager
Junio C Hamano [Fri, 3 Jul 2015 17:18:45 +0000 (10:18 -0700)]
pager: do not leak "GIT_PAGER_IN_USE" to the pager

Since 2e6c012e (setup_pager: set GIT_PAGER_IN_USE, 2011-08-17), we
export GIT_PAGER_IN_USE so that a process that becomes the upstream
of the spawned pager can still tell that we have spawned the pager
and decide to do colored output even when its output no longer goes
to a terminal (i.e. isatty(1)).

But we forgot to clear it from the enviornment of the spawned pager.

This is not a problem in a sane world, but if you have a handful of
thousands Git users in your organization, somebody is bound to do
strange things, e.g. typing "!<ENTER>" instead of 'q' to get control
back from $LESS.  GIT_PAGER_IN_USE is still set in that subshell
spawned by "less", and all sorts of interesting things starts
happening, e.g. "git diff | cat" starts coloring its output.

We can clear the environment variable in the half of the fork that
runs the pager to avoid the confusion.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agol10n: ca.po: update translation
Alex Henrie [Thu, 2 Jul 2015 04:22:02 +0000 (22:22 -0600)]
l10n: ca.po: update translation

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
5 years agoMerge branch 'fr_2.5.0_round1' of git://github.com/jnavila/git
Jiang Xin [Wed, 1 Jul 2015 23:01:51 +0000 (07:01 +0800)]
Merge branch 'fr_2.5.0_round1' of git://github.com/jnavila/git

* 'fr_2.5.0_round1' of git://github.com/jnavila/git:
  l10n: fr.po v2.5.0-rc0 (2355t)

5 years agoMakefile / racy-git.txt: clarify USE_NSEC prerequisites
Karsten Blees [Wed, 1 Jul 2015 19:10:52 +0000 (21:10 +0200)]
Makefile / racy-git.txt: clarify USE_NSEC prerequisites

Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoGit 2.5.0-rc1 v2.5.0-rc1
Junio C Hamano [Wed, 1 Jul 2015 21:05:33 +0000 (14:05 -0700)]
Git 2.5.0-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge branch 'me/fetch-into-shallow-safety'
Junio C Hamano [Wed, 1 Jul 2015 21:02:33 +0000 (14:02 -0700)]
Merge branch 'me/fetch-into-shallow-safety'

"git fetch --depth=<depth>" and "git clone --depth=<depth>" issued
a shallow transfer request even to an upload-pack that does not
support the capability.

* me/fetch-into-shallow-safety:
  fetch-pack: check for shallow if depth given

5 years agoMerge branch 'jc/prompt-document-ps1-state-separator'
Junio C Hamano [Wed, 1 Jul 2015 21:02:32 +0000 (14:02 -0700)]
Merge branch 'jc/prompt-document-ps1-state-separator'

Docfix.

* jc/prompt-document-ps1-state-separator:
  git-prompt.sh: document GIT_PS1_STATESEPARATOR

5 years agoMerge branch 'mm/describe-doc'
Junio C Hamano [Wed, 1 Jul 2015 21:02:30 +0000 (14:02 -0700)]
Merge branch 'mm/describe-doc'

Docfix.

* mm/describe-doc:
  Documentation/describe: improve one-line summary

5 years agoMerge branch 'da/mergetool-winmerge'
Junio C Hamano [Wed, 1 Jul 2015 21:02:30 +0000 (14:02 -0700)]
Merge branch 'da/mergetool-winmerge'

Hotfix for an earlier change already in 'master' that broke the
default tool selection for mergetool.

* da/mergetool-winmerge:
  mergetool-lib: fix default tool selection

5 years agorev-list: disable --use-bitmap-index when pruning commits
Jeff King [Wed, 1 Jul 2015 18:42:17 +0000 (14:42 -0400)]
rev-list: disable --use-bitmap-index when pruning commits

The reachability bitmaps do not have enough information to
tell us which commits might have changed path "foo", so the
current code produces wrong answers for:

  git rev-list --use-bitmap-index --count HEAD -- foo

(it silently ignores the "foo" limiter). Instead, we should
fall back to doing a normal traversal (it is OK to fall
back rather than complain, because --use-bitmap-index is a
pure optimization, and might not kick in for other reasons,
such as there being no bitmaps in the repository).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoAdd tests for wildcard "path vs ref" disambiguation
Nguyễn Thái Ngọc Duy [Wed, 1 Jul 2015 11:08:14 +0000 (18:08 +0700)]
Add tests for wildcard "path vs ref" disambiguation

Commit 28fcc0b (pathspec: avoid the need of "--" when wildcard is used -
2015-05-02) changes how the disambiguation rules work. This patch adds
some tests to demonstrate, basically, if wildcard characters are in an
argument:

 - if the argument is valid extended sha-1 syntax, "--" must be used
 - otherwise the argument is considered a path, even without "--"

And wildcard can appear in extended sha-1 syntax, either as part of
regex in ":/<regex>" or as the literal path in ":<path>". The latter
case is less likely to happen in real world. But if you do ":/" a lot,
you may need to type "--" more.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agorev-list: add --count to usage guide
Lawrence Siebert [Wed, 1 Jul 2015 09:24:11 +0000 (02:24 -0700)]
rev-list: add --count to usage guide

--count should be mentioned in the usage guide, this updates code and
documentation.

Signed-off-by: Lawrence Siebert <lawrencesiebert@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agol10n: fr.po v2.5.0-rc0 (2355t)
Jean-Noel Avila [Mon, 29 Jun 2015 19:05:18 +0000 (21:05 +0200)]
l10n: fr.po v2.5.0-rc0 (2355t)

Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
Signed-off-by: Claude Dioudonnat <cdioudonnat@itnetwork.fr>
5 years agoconfig.c: fix writing config files on Windows network shares
Karsten Blees [Tue, 30 Jun 2015 14:34:13 +0000 (16:34 +0200)]
config.c: fix writing config files on Windows network shares

Renaming to an existing file doesn't work on Windows network shares if the
target file is open.

munmap() the old config file before commit_lock_file.

Signed-off-by: Karsten Blees <blees@dcon.de>
Acked-by: Jeff King <peff@peff.net>
Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agorebase -i: do not leave a CHERRY_PICK_HEAD file behind
Johannes Schindelin [Thu, 18 Jun 2015 16:38:53 +0000 (18:38 +0200)]
rebase -i: do not leave a CHERRY_PICK_HEAD file behind

When skipping commits whose changes were already applied via `git rebase
--continue`, we need to clean up said file explicitly.

The same is not true for `git rebase --skip` because that will execute
`git reset --hard` as part of the "skip" handling in git-rebase.sh, even
before git-rebase--interactive.sh is called.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agot3404: demonstrate CHERRY_PICK_HEAD bug
Johannes Schindelin [Thu, 18 Jun 2015 16:38:44 +0000 (18:38 +0200)]
t3404: demonstrate CHERRY_PICK_HEAD bug

When rev-list's --cherry option does not detect that a patch has already
been applied upstream, an interactive rebase would offer to reapply it and
consequently stop at that patch with a failure, mentioning that the diff
is empty.

Traditionally, a `git rebase --continue` simply skips the commit in such a
situation.

However, as pointed out by Gábor Szeder, this leaves a CHERRY_PICK_HEAD
behind, making the Git prompt believe that a cherry pick is still going
on. This commit adds a test case demonstrating this bug.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agohttp: always use any proxy auth method available
Enrique Tobis [Fri, 26 Jun 2015 18:19:04 +0000 (18:19 +0000)]
http: always use any proxy auth method available

We set CURLOPT_PROXYAUTH to use the most secure authentication
method available only when the user has set configuration variables
to specify a proxy.  However, libcurl also supports specifying a
proxy through environment variables.  In that case libcurl defaults
to only using the Basic proxy authentication method, because we do
not use CURLOPT_PROXYAUTH.

Set CURLOPT_PROXYAUTH to always use the most secure authentication
method available, even when there is no git configuration telling us
to use a proxy. This allows the user to use environment variables to
configure a proxy that requires an authentication method different
from Basic.

Signed-off-by: Enrique A. Tobis <etobis@twosigma.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agorevision.c: remove unneeded check for NULL
Stefan Beller [Fri, 26 Jun 2015 19:40:19 +0000 (12:40 -0700)]
revision.c: remove unneeded check for NULL

The function is called only from one place, which makes sure to have
`interesting_cache` not NULL.  Additionally the variable is a
dereferenced a few lines before unconditionally, which would have
resulted in a segmentation fault before hitting this check.

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