OSDN Git Service
Junio C Hamano [Fri, 5 Jan 2018 21:28:10 +0000 (13:28 -0800)]
Merge branch 'rs/use-argv-array-in-child-process'
Code cleanup.
* rs/use-argv-array-in-child-process:
send-pack: use internal argv_array of struct child_process
http: use internal argv_array of struct child_process
Junio C Hamano [Fri, 5 Jan 2018 21:28:10 +0000 (13:28 -0800)]
Merge branch 'ld/p4-multiple-shelves'
"git p4" update.
* ld/p4-multiple-shelves:
git-p4: update multiple shelved change lists
Junio C Hamano [Fri, 5 Jan 2018 21:28:10 +0000 (13:28 -0800)]
Merge branch 'jd/fix-strbuf-add-urlencode-bytes'
Bytes with high-bit set were encoded incorrectly and made
credential helper fail.
* jd/fix-strbuf-add-urlencode-bytes:
strbuf: fix urlencode format string on signed char
Junio C Hamano [Fri, 5 Jan 2018 21:28:09 +0000 (13:28 -0800)]
Merge branch 'ew/empty-merge-with-dirty-index'
"git merge -s recursive" did not correctly abort when the index is
dirty, if the merged tree happened to be the same as the current
HEAD, which has been fixed.
* ew/empty-merge-with-dirty-index:
merge-recursive: avoid incorporating uncommitted changes in a merge
move index_has_changes() from builtin/am.c to merge.c for reuse
t6044: recursive can silently incorporate dirty changes in a merge
Junio C Hamano [Fri, 5 Jan 2018 21:28:09 +0000 (13:28 -0800)]
Merge branch 'db/doc-config-section-names-with-bs'
Doc update.
* db/doc-config-section-names-with-bs:
config.txt: document behavior of backslashes in subsections
Junio C Hamano [Fri, 5 Jan 2018 21:28:09 +0000 (13:28 -0800)]
Merge branch 'jk/test-suite-tracing'
Assorted fixes around running tests with "-x" tracing option.
* jk/test-suite-tracing:
t/Makefile: introduce TEST_SHELL_PATH
test-lib: make "-x" work with "--verbose-log"
t5615: avoid re-using descriptor 4
test-lib: silence "-x" cleanup under bash
Junio C Hamano [Thu, 28 Dec 2017 22:12:06 +0000 (14:12 -0800)]
Git 2.16-rc0
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 28 Dec 2017 22:08:50 +0000 (14:08 -0800)]
Merge branch 'sb/describe-blob'
"git describe" was taught to dig trees deeper to find a
<commit-ish>:<path> that refers to a given blob object.
* sb/describe-blob:
builtin/describe.c: describe a blob
builtin/describe.c: factor out describe_commit
builtin/describe.c: print debug statements earlier
builtin/describe.c: rename `oid` to avoid variable shadowing
revision.h: introduce blob/tree walking in order of the commits
list-objects.c: factor out traverse_trees_and_blobs
t6120: fix typo in test name
Junio C Hamano [Thu, 28 Dec 2017 22:08:50 +0000 (14:08 -0800)]
Merge branch 'hi/merge-verify-sig-config'
"git merge" learned to pay attention to merge.verifySignatures
configuration variable and pretend as if '--verify-signatures'
option was given from the command line.
* hi/merge-verify-sig-config:
t5573, t7612: clean up after unexpected success of 'pull' and 'merge'
t: add tests for pull --verify-signatures
merge: add config option for verifySignatures
Junio C Hamano [Thu, 28 Dec 2017 22:08:50 +0000 (14:08 -0800)]
Merge branch 'ws/curl-http-proxy-over-https'
Git has been taught to support an https:// URL used for http.proxy
when using recent versions of libcurl.
* ws/curl-http-proxy-over-https:
http: support CURLPROXY_HTTPS
Junio C Hamano [Thu, 28 Dec 2017 22:08:49 +0000 (14:08 -0800)]
Merge branch 'ks/doc-previous-checkout'
Doc update.
* ks/doc-previous-checkout:
Doc/check-ref-format: clarify information about @{-N} syntax
Junio C Hamano [Thu, 28 Dec 2017 22:08:49 +0000 (14:08 -0800)]
Merge branch 'ks/rebase-error-messages'
Error messages from "git rebase" have been somewhat cleaned up.
* ks/rebase-error-messages:
rebase: rebasing can also be done when HEAD is detached
rebase: distinguish user input by quoting it
rebase: consistently use branch_name variable
Junio C Hamano [Thu, 28 Dec 2017 22:08:49 +0000 (14:08 -0800)]
Merge branch 'sr/http-sslverify-config-doc'
Docfix.
* sr/http-sslverify-config-doc:
config: document default value of http.sslVerify
Junio C Hamano [Thu, 28 Dec 2017 22:08:48 +0000 (14:08 -0800)]
Merge branch 'nm/imap-send-quote-server-folder-name'
"git imap-send" did not correctly quote the folder name when
making a request to the server, which has been corrected.
* nm/imap-send-quote-server-folder-name:
imap-send: URI encode server folder
Junio C Hamano [Thu, 28 Dec 2017 22:08:48 +0000 (14:08 -0800)]
Merge branch 'bp/fsmonitor'
Test fix.
* bp/fsmonitor:
p7519: improve check for prerequisite WATCHMAN
Junio C Hamano [Thu, 28 Dec 2017 22:08:47 +0000 (14:08 -0800)]
Merge branch 'jh/partial-clone-doc'
* jh/partial-clone-doc:
partial-clone: design doc
Junio C Hamano [Thu, 28 Dec 2017 22:08:47 +0000 (14:08 -0800)]
Merge branch 'jt/transport-hide-vtable'
Code clean-up.
* jt/transport-hide-vtable:
transport: make transport vtable more private
clone, fetch: remove redundant transport check
Junio C Hamano [Thu, 28 Dec 2017 22:08:47 +0000 (14:08 -0800)]
Merge branch 'js/enhanced-version-info'
"git version --build-options" learned to report the host CPU and
the exact commit object name the binary was built from.
* js/enhanced-version-info:
version --build-options: report commit, too, if possible
version --build-options: also report host CPU
Junio C Hamano [Thu, 28 Dec 2017 22:08:46 +0000 (14:08 -0800)]
Merge branch 'tz/lib-git-svn-svnserve-tests'
* tz/lib-git-svn-svnserve-tests:
t/lib-git-svn.sh: improve svnserve tests with parallel make test
t/lib-git-svn: cleanup inconsistent tab/space usage
Junio C Hamano [Thu, 28 Dec 2017 22:08:46 +0000 (14:08 -0800)]
Merge branch 'ew/svn-crlf'
"git svn" has been updated to strip CRs in the commit messages, as
recent versions of Subversion rejects them.
* ew/svn-crlf:
git-svn: convert CRLF to LF in commit message to SVN
Junio C Hamano [Thu, 28 Dec 2017 22:08:46 +0000 (14:08 -0800)]
Merge branch 'cc/skip-to-optional-val'
Introduce a helper to simplify code to parse a common pattern that
expects either "--key" or "--key=<something>".
* cc/skip-to-optional-val:
t4045: reindent to make helpers readable
diff: add tests for --relative without optional prefix value
diff: use skip_to_optional_arg_default() in parsing --relative
diff: use skip_to_optional_arg_default()
diff: use skip_to_optional_arg()
index-pack: use skip_to_optional_arg()
git-compat-util: introduce skip_to_optional_arg()
Junio C Hamano [Thu, 28 Dec 2017 22:08:45 +0000 (14:08 -0800)]
Merge branch 'ra/prompt-eread-fix'
Update the shell prompt script (in contrib/) to strip trailing CR
from strings read from various "state" files.
* ra/prompt-eread-fix:
git-prompt: fix reading files with windows line endings
git-prompt: make __git_eread intended use explicit
Junio C Hamano [Thu, 28 Dec 2017 22:08:45 +0000 (14:08 -0800)]
Merge branch 'bw/path-doc'
Doc updates.
* bw/path-doc:
path: document path functions
Junio C Hamano [Wed, 27 Dec 2017 19:20:27 +0000 (11:20 -0800)]
RelNotes: the eleventh batch
Hopefully the last one before -rc0
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 27 Dec 2017 19:16:30 +0000 (11:16 -0800)]
Merge branch 'rb/quick-install-doc'
The build procedure now allows not just the repositories but also
the refs to be used to take pre-formatted manpages and html
documents to install.
* rb/quick-install-doc:
install-doc-quick: allow specifying what ref to install
Junio C Hamano [Wed, 27 Dec 2017 19:16:30 +0000 (11:16 -0800)]
Merge branch 'jt/transport-no-more-rsync'
Code clean-up.
* jt/transport-no-more-rsync:
transport: remove unused "push" in vtable
Junio C Hamano [Wed, 27 Dec 2017 19:16:30 +0000 (11:16 -0800)]
Merge branch 'sg/travis-fixes'
Assorted updates for TravisCI integration.
* sg/travis-fixes:
travis-ci: use 'set -x' in 'ci/*' scripts for extra tracing output
travis-ci: set GIT_TEST_HTTPD in 'ci/lib-travisci.sh'
travis-ci: move setting environment variables to 'ci/lib-travisci.sh'
travis-ci: introduce a $jobname variable for 'ci/*' scripts
Junio C Hamano [Wed, 27 Dec 2017 19:16:29 +0000 (11:16 -0800)]
Merge branch 'sb/test-helper-excludes'
Simplify the ignore rules for t/helper directory.
* sb/test-helper-excludes:
t/helper: ignore everything but sources
Junio C Hamano [Wed, 27 Dec 2017 19:16:29 +0000 (11:16 -0800)]
Merge branch 'ot/pretty'
Code clean-up.
* ot/pretty:
format: create docs for pretty.h
format: create pretty.h file
Junio C Hamano [Wed, 27 Dec 2017 19:16:28 +0000 (11:16 -0800)]
Merge branch 'bw/submodule-sans-cache-compat'
Code clean-up.
* bw/submodule-sans-cache-compat:
submodule: convert get_next_submodule to not rely on the_index
submodule: used correct index in is_staging_gitmodules_ok
submodule: convert stage_updated_gitmodules to take a struct index_state
Junio C Hamano [Wed, 27 Dec 2017 19:16:28 +0000 (11:16 -0800)]
Merge branch 'es/clone-shared-worktree'
"git clone --shared" to borrow from a (secondary) worktree did not
work, even though "git clone --local" did. Both are now accepted.
* es/clone-shared-worktree:
clone: support 'clone --shared' from a worktree
Junio C Hamano [Wed, 27 Dec 2017 19:16:27 +0000 (11:16 -0800)]
Merge branch 'tb/delimit-pretty-trailers-args-with-comma'
Doc updates.
* tb/delimit-pretty-trailers-args-with-comma:
docs/pretty-formats: mention commas in %(trailers) syntax
Junio C Hamano [Wed, 27 Dec 2017 19:16:26 +0000 (11:16 -0800)]
Merge branch 'rs/fmt-merge-msg-leakfix'
Leakfix.
* rs/fmt-merge-msg-leakfix:
transport-helper: plug strbuf and string_list leaks
Junio C Hamano [Wed, 27 Dec 2017 19:16:26 +0000 (11:16 -0800)]
Merge branch 'jt/decorate-api'
A few structures and variables that are implementation details of
the decorate API have been renamed and then the API got documented
better.
* jt/decorate-api:
decorate: clean up and document API
Junio C Hamano [Wed, 27 Dec 2017 19:16:26 +0000 (11:16 -0800)]
Merge branch 'jk/cvsimport-quoting'
Typo/Logico fix.
* jk/cvsimport-quoting:
cvsimport: apply shell-quoting regex globally
Junio C Hamano [Wed, 27 Dec 2017 19:16:25 +0000 (11:16 -0800)]
Merge branch 'db/doc-workflows-neuter-the-maintainer'
Docfix.
* db/doc-workflows-neuter-the-maintainer:
doc: reword gitworkflows.txt for neutrality
Junio C Hamano [Wed, 27 Dec 2017 19:16:25 +0000 (11:16 -0800)]
Merge branch 'ks/branch-cleanup'
Code clean-up.
* ks/branch-cleanup:
builtin/branch: strip refs/heads/ using skip_prefix
branch: update warning message shown when copying a misnamed branch
branch: group related arguments of create_branch()
branch: improve documentation and naming of create_branch() parameters
Junio C Hamano [Wed, 27 Dec 2017 19:16:24 +0000 (11:16 -0800)]
Merge branch 'rs/strbuf-read-once-reset-length'
Leakfix.
* rs/strbuf-read-once-reset-length:
strbuf: release memory on read error in strbuf_read_once()
Junio C Hamano [Wed, 27 Dec 2017 19:16:23 +0000 (11:16 -0800)]
Merge branch 'rs/fmt-merge-msg-string-leak-fix'
Leakfix.
* rs/fmt-merge-msg-string-leak-fix:
fmt-merge-msg: avoid leaking strbuf in shortlog()
Junio C Hamano [Wed, 27 Dec 2017 19:16:22 +0000 (11:16 -0800)]
Merge branch 'rs/am-builtin-leakfix'
Leakfix.
* rs/am-builtin-leakfix:
am: release strbuf after use in split_mail_mbox()
Junio C Hamano [Wed, 27 Dec 2017 19:16:21 +0000 (11:16 -0800)]
Merge branch 'es/worktree-checkout-hook'
"git worktree add" learned to run the post-checkout hook, just like
"git checkout" does, after the initial checkout.
* es/worktree-checkout-hook:
worktree: invoke post-checkout hook (unless --no-checkout)
Junio C Hamano [Wed, 27 Dec 2017 19:16:21 +0000 (11:16 -0800)]
Merge branch 'lb/rebase-i-short-command-names'
With a configuration variable rebase.abbreviateCommands set,
"git rebase -i" produces the todo list with a single-letter
command names.
* lb/rebase-i-short-command-names:
sequencer.c: drop 'const' from function return type
t3404: add test case for abbreviated commands
rebase -i: learn to abbreviate command names
rebase -i -x: add exec commands via the rebase--helper
rebase -i: update functions to use a flags parameter
rebase -i: replace reference to sha1 with oid
rebase -i: refactor transform_todo_ids
rebase -i: set commit to null in exec commands
Documentation: use preferred name for the 'todo list' script
Documentation: move rebase.* configs to new file
Junio C Hamano [Wed, 27 Dec 2017 19:16:21 +0000 (11:16 -0800)]
Merge branch 'tb/check-crlf-for-safe-crlf'
The "safe crlf" check incorrectly triggered for contents that does
not use CRLF as line endings, which has been corrected.
* tb/check-crlf-for-safe-crlf:
t0027: Adapt the new MIX tests to Windows
convert: tighten the safe autocrlf handling
Junio C Hamano [Wed, 27 Dec 2017 19:16:20 +0000 (11:16 -0800)]
Merge branch 'jh/object-filtering'
In preparation for implementing narrow/partial clone, the object
walking machinery has been taught a way to tell it to "filter" some
objects from enumeration.
* jh/object-filtering:
rev-list: support --no-filter argument
list-objects-filter-options: support --no-filter
list-objects-filter-options: fix 'keword' typo in comment
pack-objects: add list-objects filtering
rev-list: add list-objects filtering support
list-objects: filter objects in traverse_commit_list
oidset: add iterator methods to oidset
oidmap: add oidmap iterator methods
dir: allow exclusions from blob in addition to file
Junio C Hamano [Wed, 27 Dec 2017 19:12:45 +0000 (11:12 -0800)]
sequencer.c: drop 'const' from function return type
With -Werror=ignored-qualifiers, a function that claims to return
"const char" gets this error:
CC sequencer.o
sequencer.c:798:19: error: type qualifiers ignored on function return
type [-Werror=ignored-qualifiers]
static const char command_to_char(const enum todo_command command)
^
Reported-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Julien Dusser [Fri, 22 Dec 2017 17:24:37 +0000 (18:24 +0100)]
strbuf: fix urlencode format string on signed char
Git credential fails with special char in password with
remote: Invalid username or password.
fatal: Authentication failed for
File ~/.git-credential contains badly urlencoded characters
%ffffffXX%ffffffYY instead of %XX%YY.
Add a cast to an unsigned char to fix urlencode use of %02x on a
char.
Signed-off-by: Julien Dusser <julien.dusser@free.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe [Fri, 22 Dec 2017 08:14:10 +0000 (09:14 +0100)]
send-pack: use internal argv_array of struct child_process
Avoid a magic number of NULL placeholder values and a magic index by
constructing the command line for pack-objects using the embedded
argv_array of the child_process. The resulting code is shorter and
easier to extend.
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe [Fri, 22 Dec 2017 11:56:59 +0000 (12:56 +0100)]
http: use internal argv_array of struct child_process
Avoid a strangely magic array size (it's slightly too big) and explicit
index numbers by building the command line for index-pack using the
embedded argv_array of the child_process. Add the flag -o and its
argument with argv_array_pushl() to make it obvious that they belong
together. The resulting code is shorter and easier to extend.
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Luke Diamand [Thu, 21 Dec 2017 11:06:14 +0000 (11:06 +0000)]
git-p4: update multiple shelved change lists
--update-shelve can now be specified multiple times on the
command-line, to update multiple shelved changelists in a single
submit.
This then means that a git patch series can be mirrored to a
sequence of shelved changelists, and (relatively easily) kept in
sync as changes are made in git.
Note that Perforce does not really support overlapping shelved
changelists where one change touches the files modified by
another. Trying to do this will result in merge conflicts.
Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Dave Borowitz [Thu, 21 Dec 2017 13:10:42 +0000 (08:10 -0500)]
config.txt: document behavior of backslashes in subsections
Unrecognized escape sequences are invalid in values:
$ git config -f - --list <<EOF
[foo]
bar = "\t\\\y\"\u"
EOF
fatal: bad config line 2 in standard input
But in subsection names, the backslash is simply dropped if the
following character does not produce a recognized escape sequence:
$ git config -f - --list <<EOF
[foo "\t\\\y\"\u"]
bar = baz
EOF
foo.t\y"u.bar=baz
Although it would be nice for subsection names and values to have
consistent behavior, changing the behavior for subsection names is a
nonstarter since it would cause existing, valid config files to
suddenly be interpreted differently.
Signed-off-by: Dave Borowitz <dborowitz@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 22 Dec 2017 20:48:38 +0000 (12:48 -0800)]
Merge branch 'ew/empty-merge-with-dirty-index-maint' into ew/empty-merge-with-dirty-index
* ew/empty-merge-with-dirty-index-maint:
merge-recursive: avoid incorporating uncommitted changes in a merge
move index_has_changes() from builtin/am.c to merge.c for reuse
t6044: recursive can silently incorporate dirty changes in a merge
Elijah Newren [Thu, 21 Dec 2017 19:19:07 +0000 (11:19 -0800)]
merge-recursive: avoid incorporating uncommitted changes in a merge
builtin/merge.c contains this important requirement for merge strategies:
/*
* At this point, we need a real merge. No matter what strategy
* we use, it would operate on the index, possibly affecting the
* working tree, and when resolved cleanly, have the desired
* tree in the index -- this means that the index must be in
* sync with the head commit. The strategies are responsible
* to ensure this.
*/
merge-recursive does not do this check directly, instead it relies on
unpack_trees() to do it. However, merge_trees() has a special check for
the merge branch exactly matching the merge base; when it detects that
situation, it returns early without calling unpack_trees(), because it
knows that the HEAD commit already has the correct result. Unfortunately,
it didn't check that the index matched HEAD, so after it returned, the
outer logic ended up creating a merge commit that included something
other than HEAD.
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Elijah Newren [Thu, 21 Dec 2017 19:19:06 +0000 (11:19 -0800)]
move index_has_changes() from builtin/am.c to merge.c for reuse
index_has_changes() is a function we want to reuse outside of just am,
making it also available for merge-recursive and merge-ort.
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Elijah Newren [Thu, 21 Dec 2017 19:19:05 +0000 (11:19 -0800)]
t6044: recursive can silently incorporate dirty changes in a merge
The recursive merge strategy has some special handling when the tree for
the merge branch exactly matches the merge base, but that code path is
missing checks for the index having changes relative to HEAD. Add a
testcase covering this scenario.
Reported-by: Andreas Krey <a.krey@gmx.de>
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 15 Dec 2017 19:42:36 +0000 (11:42 -0800)]
t5573, t7612: clean up after unexpected success of 'pull' and 'merge'
The previous steps added test_when_finished to tests that run 'git
pull' or 'git merge' with expectation of success, so that the test
after them can start from a known state even when their 'git pull'
invocation unexpectedly fails. However, tests that run 'git pull'
or 'git merge' expecting it not to succeed forgot to protect later
tests the same way---if they unexpectedly succeed, the test after
them would start from an unexpected state.
Reset and checkout the initial commit after all these tests, whether
they expect their invocations to succeed or fail.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 19 Dec 2017 19:34:35 +0000 (11:34 -0800)]
RelNotes: the tenth batch
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 19 Dec 2017 19:33:59 +0000 (11:33 -0800)]
Merge branch 'ls/editor-waiting-message'
Git shows a message to tell the user that it is waiting for the
user to finish editing when spawning an editor, in case the editor
opens to a hidden window or somewhere obscure and the user gets
lost.
* ls/editor-waiting-message:
launch_editor(): indicate that Git waits for user input
refactor "dumb" terminal determination
Junio C Hamano [Tue, 19 Dec 2017 19:33:58 +0000 (11:33 -0800)]
Merge branch 'sg/setup-doc-update'
Comment update.
* sg/setup-doc-update:
setup.c: fix comment about order of .git directory discovery
Junio C Hamano [Tue, 19 Dec 2017 19:33:58 +0000 (11:33 -0800)]
Merge branch 'ar/unconfuse-three-dots'
Ancient part of codebase still shows dots after an abbreviated
object name just to show that it is not a full object name, but
these ellipses are confusing to people who newly discovered Git
who are used to seeing abbreviated object names and find them
confusing with the range syntax.
* ar/unconfuse-three-dots:
t2020: test variations that matter
t4013: test new output from diff --abbrev --raw
diff: diff_aligned_abbrev: remove ellipsis after abbreviated SHA-1 value
t4013: prepare for upcoming "diff --raw --abbrev" output format change
checkout: describe_detached_head: remove ellipsis after committish
print_sha1_ellipsis: introduce helper
Documentation: user-manual: limit usage of ellipsis
Documentation: revisions: fix typo: "three dot" ---> "three-dot" (in line with "two-dot").
Junio C Hamano [Tue, 19 Dec 2017 19:33:57 +0000 (11:33 -0800)]
Merge branch 'tg/worktree-create-tracking'
The way "git worktree add" determines what branch to create from
where and checkout in the new worktree has been updated a bit.
* tg/worktree-create-tracking:
add worktree.guessRemote config option
worktree: add --guess-remote flag to add subcommand
worktree: make add <path> <branch> dwim
worktree: add --[no-]track option to the add subcommand
worktree: add can be created from any commit-ish
checkout: factor out functions to new lib file
Junio C Hamano [Tue, 19 Dec 2017 19:33:57 +0000 (11:33 -0800)]
Merge branch 'gk/tracing-optimization'
The tracing infrastructure has been optimized for cases where no
tracing is requested.
* gk/tracing-optimization:
trace: improve performance while category is disabled
trace: remove trace key normalization
Junio C Hamano [Tue, 19 Dec 2017 19:33:57 +0000 (11:33 -0800)]
Merge branch 'bw/submodule-config-cleanup'
Recent update to the submodule configuration code broke "diff-tree"
by accidentally stopping to read from the index upfront.
* bw/submodule-config-cleanup:
diff-tree: read the index so attribute checks work in bare repositories
Junio C Hamano [Tue, 19 Dec 2017 19:33:56 +0000 (11:33 -0800)]
Merge branch 'sb/clone-recursive-submodule-doc'
Doc update.
* sb/clone-recursive-submodule-doc:
Documentation/git-clone: improve description for submodule recursing
Junio C Hamano [Tue, 19 Dec 2017 19:33:56 +0000 (11:33 -0800)]
Merge branch 'ls/git-gui-no-double-utf8-author-name'
Amending commits in git-gui broke the author name that is non-ascii
due to incorrect enconding conversion.
* ls/git-gui-no-double-utf8-author-name:
git-gui: prevent double UTF-8 conversion
Junio C Hamano [Tue, 19 Dec 2017 19:33:56 +0000 (11:33 -0800)]
Merge branch 'bw/pathspec-match-submodule-boundary'
An v2.12-era regression in pathspec match logic, which made it look
into submodule tree even when it is not desired, has been fixed.
* bw/pathspec-match-submodule-boundary:
pathspec: only match across submodule boundaries when requested
Junio C Hamano [Tue, 19 Dec 2017 19:33:56 +0000 (11:33 -0800)]
Merge branch 'jt/diff-anchored-patience'
"git diff" learned a variant of the "--patience" algorithm, to
which the user can specify which 'unique' line to be used as
anchoring points.
* jt/diff-anchored-patience:
diff: support anchoring line(s)
Junio C Hamano [Tue, 19 Dec 2017 19:33:55 +0000 (11:33 -0800)]
Merge branch 'en/merge-recursive-icase-removal'
The code internal to the recursive merge strategy was not fully
prepared to see a path that is renamed to try overwriting another
path that is only different in case on case insensitive systems.
This does not matter in the current code, but will start to matter
once the rename detection logic starts taking hints from nearby
paths moving to some directory and moves a new path along with them.
* en/merge-recursive-icase-removal:
merge-recursive: ignore_case shouldn't reject intentional removals
Junio C Hamano [Tue, 19 Dec 2017 19:33:55 +0000 (11:33 -0800)]
Merge branch 'en/rename-progress'
Historically, the diff machinery for rename detection had a
hardcoded limit of 32k paths; this is being lifted to allow users
trade cycles with a (possibly) easier to read result.
* en/rename-progress:
diffcore-rename: make diff-tree -l0 mean -l<large>
sequencer: show rename progress during cherry picks
diff: remove silent clamp of renameLimit
progress: fix progress meters when dealing with lots of work
sequencer: warn when internal merge may be suboptimal due to renameLimit
Stefan Beller [Thu, 16 Nov 2017 02:00:39 +0000 (18:00 -0800)]
builtin/describe.c: describe a blob
Sometimes users are given a hash of an object and they want to
identify it further (ex.: Use verify-pack to find the largest blobs,
but what are these? or [1])
When describing commits, we try to anchor them to tags or refs, as these
are conceptually on a higher level than the commit. And if there is no ref
or tag that matches exactly, we're out of luck. So we employ a heuristic
to make up a name for the commit. These names are ambiguous, there might
be different tags or refs to anchor to, and there might be different
path in the DAG to travel to arrive at the commit precisely.
When describing a blob, we want to describe the blob from a higher layer
as well, which is a tuple of (commit, deep/path) as the tree objects
involved are rather uninteresting. The same blob can be referenced by
multiple commits, so how we decide which commit to use? This patch
implements a rather naive approach on this: As there are no back pointers
from blobs to commits in which the blob occurs, we'll start walking from
any tips available, listing the blobs in-order of the commit and once we
found the blob, we'll take the first commit that listed the blob. For
example
git describe --tags v0.99:Makefile
conversion-901-g7672db20c2:Makefile
tells us the Makefile as it was in v0.99 was introduced in commit
7672db20.
The walking is performed in reverse order to show the introduction of a
blob rather than its last occurrence.
[1] https://stackoverflow.com/questions/223678/which-commit-has-this-blob
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Wei Shuyu [Tue, 19 Dec 2017 17:24:01 +0000 (01:24 +0800)]
http: support CURLPROXY_HTTPS
HTTP proxy over SSL is supported by curl since 7.52.0.
This is very useful for networks with protocol whitelist.
Signed-off-by: Wei Shuyu <wsy@dogben.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Kaartic Sivaraam [Sat, 16 Dec 2017 09:03:19 +0000 (14:33 +0530)]
rebase: rebasing can also be done when HEAD is detached
Attempting to rebase when the HEAD is detached and is already
up to date with upstream (so there's nothing to do), the
following message is shown
Current branch HEAD is up to date.
which is clearly wrong as HEAD is not a branch.
Handle the special case of HEAD correctly to give a more precise
error message.
Signed-off-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Kaartic Sivaraam [Sat, 16 Dec 2017 09:03:18 +0000 (14:33 +0530)]
rebase: distinguish user input by quoting it
Signed-off-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Kaartic Sivaraam [Sat, 16 Dec 2017 09:03:17 +0000 (14:33 +0530)]
rebase: consistently use branch_name variable
The variable "branch_name" holds the <branch> parameter in "git
rebase <upstream> <branch>", but one codepath did not use it after
assigning $1 to it (instead it kept using $1). Make it use the
variable consistently.
Also, update an error message to say there is no such branch or
commit, as we are expecting either of them, and not limiting
ourselves to a branch name.
Signed-off-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Kaartic Sivaraam [Sat, 16 Dec 2017 08:13:49 +0000 (13:43 +0530)]
Doc/check-ref-format: clarify information about @{-N} syntax
When the N-th previous thing checked out syntax (@{-N}) is used
with '--branch' option of check-ref-format the result may not be
the name of a branch that currently exists or ever existed. This
is because @{-N} is used to refer to the N-th last checked out
"thing", which might be a commit object name if the previous check
out was a detached HEAD state; or a branch name, otherwise. The
documentation thus does a wrong thing by promoting it as the
"previous branch syntax".
State that @{-N} is the syntax for specifying "N-th last thing
checked out" and also state that the result of using @{-N} might
also result in an commit object name.
Signed-off-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Simon Ruderich [Sat, 16 Dec 2017 12:32:02 +0000 (13:32 +0100)]
config: document default value of http.sslVerify
Remove any doubt that certificates might not be verified by
default.
Signed-off-by: Simon Ruderich <simon@ruderich.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe [Sat, 16 Dec 2017 12:12:23 +0000 (13:12 +0100)]
p7519: improve check for prerequisite WATCHMAN
The return code of command -v with a non-existing command is 1 in bash
and 127 in dash. Use that return code directly to allow the script to
work with dash and without watchman (e.g. on Debian).
While at it stop redirecting the output. stderr is redirected to
/dev/null by test_lazy_prereq already, and stdout can actually be
useful -- the path of the found watchman executable is sent there, but
it's shown only if the script was run with --verbose.
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Acked-by: Ben Peart <benpeart@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nicolas Morey-Chaisemartin [Mon, 18 Dec 2017 19:11:13 +0000 (00:41 +0530)]
imap-send: URI encode server folder
When trying to send a patch using 'imap-send' with 'curl' and the
following configuration:
[imap]
folder = "[Gmail]/Drafts"
host = imaps://imap.gmail.com
port = 993
sslverify = false
results in the following error,
curl_easy_perform() failed: URL using bad/illegal format or missing URL
This is a consequence of not URI-encoding the folder portion of
the URL which contains characters such as '[' which are not
allowed in a URI. According to RFC3986, these characters should be
URI-encoded.
So, URI-encode the folder before adding it to the URI to ensure it doesn't
contain characters that aren't allowed in a URI.
Reported-by: Doron Behar <doron.behar@gmail.com>
Signed-off-by: Nicolas Morey-Chaisemartin <NMoreyChaisemartin@suse.com>
Signed-off-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Thu, 14 Dec 2017 23:34:38 +0000 (00:34 +0100)]
version --build-options: report commit, too, if possible
In particular when local tags are used (or tags that are pushed to some
fork) to build Git, it is very hard to figure out from which particular
revision a particular Git executable was built. It gets worse when those
tags are deleted, or even updated.
Let's just report an exact, unabbreviated commit name in our build
options.
We need to be careful, though, to report when the current commit cannot
be determined, e.g. when building from a tarball without any associated
Git repository. This could be the case also when extracting Git's source
code into an unrelated Git worktree.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Eric Sunshine [Thu, 14 Dec 2017 23:34:34 +0000 (00:34 +0100)]
version --build-options: also report host CPU
It can be helpful for bug reports to include information about the
environment in which the bug occurs. "git version --build-options" can
help to supplement this information. In addition to the size of 'long'
already reported by --build-options, also report the host's CPU type.
Example output:
$ git version --build-options
git version 2.9.3.windows.2.826.g06c0f2f
cpu: x86_64
sizeof-long: 4
New Makefile variable HOST_CPU supports cross-compiling.
Suggested-by: Adric Norris <landstander668@gmail.com>
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Tan [Thu, 14 Dec 2017 21:44:45 +0000 (13:44 -0800)]
transport: make transport vtable more private
Move the definition of the transport-specific functions provided by
transports, whether declared in transport.c or transport-helper.c, into
an internal header. This means that transport-using code (as opposed to
transport-declaring code) can no longer access these functions (without
importing the internal header themselves), making it clear that they
should use the transport_*() functions instead, and also allowing the
interface between the transport mechanism and an individual transport to
independently evolve.
This is superficially a reversal of commit
824d5776c3f2 ("Refactor
struct transport_ops inlined into struct transport", 2007-09-19).
However, the scope of the involved variables was neither affected nor
discussed in that commit, and I think that the advantages in making
those functions more private outweigh the advantages described in that
commit's commit message. A minor additional point is that the code has
gotten more complicated since then, in that the function-pointer
variables are potentially mutated twice (once initially and once if
transport_take_over() is invoked), increasing the value of corralling
them into their own struct.
Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Tan [Thu, 14 Dec 2017 21:44:44 +0000 (13:44 -0800)]
clone, fetch: remove redundant transport check
Prior to commit
a2d725b7bdf7 ("Use an external program to implement
fetching with curl", 2009-08-05), if Git was compiled with NO_CURL, the
get_refs_list and fetch methods in struct transport might not be
populated, hence the checks in clone and fetch. After that commit, all
transports populate get_refs_list and fetch, making the checks in clone
and fetch redundant. Remove those checks.
Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff Hostetler [Thu, 14 Dec 2017 21:09:23 +0000 (21:09 +0000)]
partial-clone: design doc
Design document for partial clone feature.
Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Todd Zullinger [Thu, 14 Dec 2017 02:42:44 +0000 (21:42 -0500)]
RelNotes: minor typo fixes in 2.16.0 draft
Signed-off-by: Todd Zullinger <tmz@pobox.com>
Todd Zullinger [Fri, 1 Dec 2017 15:56:53 +0000 (10:56 -0500)]
t/lib-git-svn.sh: improve svnserve tests with parallel make test
Setting SVNSERVE_PORT enables several tests which require a local
svnserve daemon to be run (in t9113 & t9126). The tests share setup of
the local svnserve via `start_svnserve()`. The function uses svnserve's
`--listen-once` option, which causes svnserve to accept one connection
on the port, serve it, and exit. When running the tests in parallel
this fails if one test tries to start svnserve while the other is still
running.
Use the test number as the svnserve port (similar to httpd tests) to
avoid port conflicts. Developers can set GIT_TEST_SVNSERVE to any value
other than 'false' or 'auto' to enable these tests.
Acked-by: Eric Wong <e@80x24.org>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Todd Zullinger <tmz@pobox.com>
Todd Zullinger [Fri, 1 Dec 2017 15:56:52 +0000 (10:56 -0500)]
t/lib-git-svn: cleanup inconsistent tab/space usage
Acked-by: Eric Wong <e@80x24.org>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Todd Zullinger <tmz@pobox.com>
Junio C Hamano [Thu, 14 Dec 2017 17:26:32 +0000 (09:26 -0800)]
Merge branch 'svn-crlf' of git://bogomips.org/git-svn into ew/svn-crlf
* 'svn-crlf' of git://bogomips.org/git-svn:
git-svn: convert CRLF to LF in commit message to SVN
Eric Wong [Thu, 14 Dec 2017 00:05:08 +0000 (00:05 +0000)]
git-svn: convert CRLF to LF in commit message to SVN
Subversion since 1.6 does not accept CR characters in the commit
message, so filter it out on our end before 'git svn dcommit' sets
the svn:log property.
Reported-by: Brian Bennett <Brian.Bennett@Transamerica.com>
Signed-off-by: Eric Wong <e@80x24.org>
Junio C Hamano [Wed, 13 Dec 2017 21:32:34 +0000 (13:32 -0800)]
RelNotes: the ninth batch
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 13 Dec 2017 21:28:58 +0000 (13:28 -0800)]
Merge branch 'js/hashmap-update-sample'
Code comment update.
* js/hashmap-update-sample:
hashmap: adjust documentation to reflect reality
Junio C Hamano [Wed, 13 Dec 2017 21:28:58 +0000 (13:28 -0800)]
Merge branch 'en/remove-stripspace'
An internal function that was left for backward compatibility has
been removed, as there is no remaining callers.
* en/remove-stripspace:
strbuf: remove unused stripspace function alias
Junio C Hamano [Wed, 13 Dec 2017 21:28:58 +0000 (13:28 -0800)]
Merge branch 'jk/no-optional-locks'
Doc update for a feature available in Git v2.14 and upwards.
* jk/no-optional-locks:
git-status.txt: mention --no-optional-locks
Junio C Hamano [Wed, 13 Dec 2017 21:28:57 +0000 (13:28 -0800)]
Merge branch 'ds/for-each-file-in-obj-micro-optim'
The code to iterate over loose object files got optimized.
* ds/for-each-file-in-obj-micro-optim:
sha1_file: use strbuf_add() instead of strbuf_addf()
Junio C Hamano [Wed, 13 Dec 2017 21:28:57 +0000 (13:28 -0800)]
Merge branch 'jk/progress-delay-fix'
A regression in the progress eye-candy was fixed.
* jk/progress-delay-fix:
progress: drop delay-threshold code
progress: set default delay threshold to 100%, not 0%
Junio C Hamano [Wed, 13 Dec 2017 21:28:57 +0000 (13:28 -0800)]
Merge branch 'ks/doc-checkout-previous'
@{-N} in "git checkout @{-N}" may refer to a detached HEAD state,
but the documentation was not clear about it, which has been fixed.
* ks/doc-checkout-previous:
Doc/checkout: checking out using @{-N} can lead to detached state
Junio C Hamano [Wed, 13 Dec 2017 21:28:56 +0000 (13:28 -0800)]
Merge branch 'fk/sendmail-from-path'
"git send-email" tries to see if the sendmail program is available
in /usr/lib and /usr/sbin; extend the list of locations to be
checked to also include directories on $PATH.
* fk/sendmail-from-path:
git-send-email: honor $PATH for sendmail binary
Junio C Hamano [Wed, 13 Dec 2017 21:28:56 +0000 (13:28 -0800)]
Merge branch 'tg/t-readme-updates'
Developer doc updates.
* tg/t-readme-updates:
t/README: document test_cmp_rev
t/README: remove mention of adding copyright notices
Junio C Hamano [Wed, 13 Dec 2017 21:28:56 +0000 (13:28 -0800)]
Merge branch 'pc/submodule-helper'
A message fix.
* pc/submodule-helper:
submodule--helper.c: i18n: add a missing space in message
Junio C Hamano [Wed, 13 Dec 2017 21:28:55 +0000 (13:28 -0800)]
Merge branch 'jc/receive-pack-hook-doc'
Doc update.
* jc/receive-pack-hook-doc:
hooks doc: clarify when receive-pack invokes its hooks
Junio C Hamano [Wed, 13 Dec 2017 21:28:54 +0000 (13:28 -0800)]
Merge branch 'ab/pcre2-grep'
"git grep" compiled with libpcre2 sometimes triggered a segfault,
which is being fixed.
* ab/pcre2-grep:
grep: fix segfault under -P + PCRE2 <=10.30 + (*NO_JIT)
test-lib: add LIBPCRE1 & LIBPCRE2 prerequisites
Junio C Hamano [Wed, 13 Dec 2017 21:28:54 +0000 (13:28 -0800)]
Merge branch 'ra/decorate-limit-refs'
The tagnames "git log --decorate" uses to annotate the commits can
now be limited to subset of available refs with the two additional
options, --decorate-refs[-exclude]=<pattern>.
* ra/decorate-limit-refs:
log: add option to choose which refs to decorate