summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-02-01urlmatch: allow globbing for the URL host partLibravatar Patrick Steinhardt3-5/+121
The URL matching function computes for two URLs whether they match not. The match is performed by splitting up the URL into different parts and then doing an exact comparison with the to-be-matched URL. The main user of `urlmatch` is the configuration subsystem. It allows to set certain configurations based on the URL which is being connected to via keys like `http.<url>.*`. A common use case for this is to set proxies for only some remotes which match the given URL. Unfortunately, having exact matches for all parts of the URL can become quite tedious in some setups. Imagine for example a corporate network where there are dozens or even hundreds of subdomains, which would have to be configured individually. Allow users to write an asterisk '*' in place of any 'host' or 'subdomain' label as part of the host name. For example, "http.https://*.example.com.proxy" sets "http.proxy" for all direct subdomains of "https://example.com", e.g. "https://foo.example.com", but not "https://foo.bar.example.com". Signed-off-by: Patrick Steinhardt <patrick.steinhardt@elego.de> Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-02-01urlmatch: include host in urlmatch rankingLibravatar Patrick Steinhardt3-25/+69
In order to be able to rank positive matches by `urlmatch`, we inspect the path length and user part to decide whether a match is better than another match. As all other parts are matched exactly between both URLs, this is the correct thing to do right now. In the future, though, we want to introduce wild cards for the domain part. When doing this, it does not make sense anymore to only compare the path lengths. Instead, we also want to compare the domain lengths to determine which of both URLs matches the host part more closely. Signed-off-by: Patrick Steinhardt <patrick.steinhardt@elego.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-01-31urlmatch: split host and port fields in `struct url_info`Libravatar Patrick Steinhardt2-8/+17
The `url_info` structure contains information about a normalized URL with the URL's components being represented by different fields. The host and port part though are to be accessed by the same `host` field, so that getting the host and/or port separately becomes more involved than really necessary. To make the port more readily accessible, split up the host and port fields. Namely, the `host_len` will not include the port length anymore and a new `port_off` field has been added which includes the offset to the port, if available. The only user of these fields is `url_normalize_1`. This change makes it easier later on to treat host and port differently when introducing globs for domains. Signed-off-by: Patrick Steinhardt <patrick.steinhardt@elego.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-01-31urlmatch: enable normalization of URLs with globsLibravatar Patrick Steinhardt1-2/+12
The `url_normalize` function is used to validate and normalize URLs. As such, it does not allow for some special characters to be part of the URLs that are to be normalized. As we want to allow using globs in some configuration keys making use of URLs, namely `http.<url>.<key>`, but still normalize them, we need to somehow enable some additional allowed characters. To do this without having to change all callers of `url_normalize`, where most do not actually want globbing at all, we split off another function `url_normalize_1`. This function accepts an additional parameter `allow_globs`, which is subsequently called by `url_normalize` with `allow_globs=0`. As of now, this function is not used with globbing enabled. A caller will be added in the following commit. Signed-off-by: Patrick Steinhardt <patrick.steinhardt@elego.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-01-31mailmap: add Patrick Steinhardt's work addressLibravatar Patrick Steinhardt1-0/+1
Signed-off-by: Patrick Steinhardt <patrick.steinhardt@elego.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-01-23Seventh batch for 2.12Libravatar Junio C Hamano1-0/+15
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-01-23Merge branch 'ws/request-pull-code-cleanup'Libravatar Junio C Hamano1-3/+0
Code clean-up. * ws/request-pull-code-cleanup: request-pull: drop old USAGE stuff
2017-01-23Merge branch 'rh/diff-orderfile-doc'Libravatar Junio C Hamano2-5/+36
Documentation fix. * rh/diff-orderfile-doc: diff: document the format of the -O (diff.orderFile) file diff: document behavior of relative diff.orderFile
2017-01-23Merge branch 'sb/cd-then-git-can-be-written-as-git-c'Libravatar Junio C Hamano1-4/+1
Test clean-up. * sb/cd-then-git-can-be-written-as-git-c: lib-submodule-update.sh: reduce use of subshell by using "git -C"
2017-01-23Merge branch 'ad/bisect-terms'Libravatar Junio C Hamano1-2/+2
Documentation fix. * ad/bisect-terms: Documentation/bisect: improve on (bad|new) and (good|bad)
2017-01-23Merge branch 'sg/fix-versioncmp-with-common-suffix'Libravatar Junio C Hamano4-58/+221
The prereleaseSuffix feature of version comparison that is used in "git tag -l" did not correctly when two or more prereleases for the same release were present (e.g. when 2.0, 2.0-beta1, and 2.0-beta2 are there and the code needs to compare 2.0-beta1 and 2.0-beta2). * sg/fix-versioncmp-with-common-suffix: versioncmp: generalize version sort suffix reordering versioncmp: factor out helper for suffix matching versioncmp: use earliest-longest contained suffix to determine sorting order versioncmp: cope with common part overlapping with prerelease suffix versioncmp: pass full tagnames to swap_prereleases() t7004-tag: add version sort tests to show prerelease reordering issues t7004-tag: use test_config helper t7004-tag: delete unnecessary tags with test_when_finished
2017-01-23Merge branch 'vn/diff-ihc-config'Libravatar Junio C Hamano4-1/+42
"git diff" learned diff.interHunkContext configuration variable that gives the default value for its --inter-hunk-context option. * vn/diff-ihc-config: diff: add interhunk context config option
2017-01-23Merge branch 'sb/submodule-init'Libravatar Junio C Hamano3-7/+25
Error message fix. * sb/submodule-init: submodule update --init: display correct path from submodule
2017-01-23Merge branch 'sb/submodule-embed-gitdir'Libravatar Junio C Hamano1-1/+2
Help-text fix. * sb/submodule-embed-gitdir: submodule absorbgitdirs: mention in docstring help
2017-01-23Merge branch 'sb/submodule-config-tests'Libravatar Junio C Hamano1-2/+23
Test updates. * sb/submodule-config-tests: t7411: test lookup of uninitialized submodules t7411: quote URLs
2017-01-23Merge branch 'jk/grep-e-could-be-extended-beyond-posix'Libravatar Junio C Hamano1-11/+15
Tighten a test to avoid mistaking an extended ERE regexp engine as a PRE regexp engine. * jk/grep-e-could-be-extended-beyond-posix: t7810: avoid assumption about invalid regex syntax
2017-01-23Merge branch 'bw/read-blob-data-does-not-modify-index-state'Libravatar Junio C Hamano2-2/+3
Code clean-up. * bw/read-blob-data-does-not-modify-index-state: index: improve constness for reading blob data
2017-01-18Sixth batch for 2.12Libravatar Junio C Hamano1-0/+64
2017-01-18Merge branch 'sb/remove-gitview'Libravatar Junio C Hamano4-1369/+9
Retire long unused/unmaintained gitview from the contrib/ area. * sb/remove-gitview: doc: git-gui browser does not default to HEAD doc: gitk: add the upstream repo location doc: gitk: remove gitview reference contrib: remove gitview
2017-01-18Merge branch 'js/asciidoctor-tweaks'Libravatar Junio C Hamano3-9/+18
Adjust documentation to help AsciiDoctor render better while not breaking the rendering done by AsciiDoc. * js/asciidoctor-tweaks: asciidoctor: fix user-manual to be built by `asciidoctor` giteveryday: unbreak rendering with AsciiDoctor
2017-01-18Merge branch 'sb/unpack-trees-cleanup'Libravatar Junio C Hamano1-23/+30
Code cleanup. * sb/unpack-trees-cleanup: unpack-trees: factor progress setup out of check_updates unpack-trees: remove unneeded continue unpack-trees: move checkout state into check_updates
2017-01-18Merge branch 'rh/mergetool-regression-fix'Libravatar Junio C Hamano4-119/+186
"git mergetool" without any pathspec on the command line that is run from a subdirectory became no-op in Git v2.11 by mistake, which has been fixed. * rh/mergetool-regression-fix: mergetool: fix running in subdir when rerere enabled mergetool: take the "-O" out of $orderfile t7610: add test case for rerere+mergetool+subdir bug t7610: spell 'git reset --hard' consistently t7610: don't assume the checked-out commit t7610: always work on a test-specific branch t7610: delete some now-unnecessary 'git reset --hard' lines t7610: run 'git reset --hard' after each test to clean up t7610: don't rely on state from previous test t7610: use test_when_finished for cleanup tasks t7610: move setup code to the 'setup' test case t7610: update branch names to match test number rev-parse doc: pass "--" to rev-parse in the --prefix example .mailmap: record canonical email for Richard Hansen
2017-01-18Merge branch 'bw/realpath-wo-chdir'Libravatar Junio C Hamano2-3/+7
The implementation of "real_path()" was to go there with chdir(2) and call getcwd(3), but this obviously wouldn't be usable in a threaded environment. Rewrite it to manually resolve relative paths including symbolic links in path components. * bw/realpath-wo-chdir: real_path: set errno when max number of symlinks is exceeded real_path: prevent redefinition of MAXSYMLINKS
2017-01-18Merge branch 'jk/execv-dashed-external'Libravatar Junio C Hamano3-21/+35
Typing ^C to pager, which usually does not kill it, killed Git and took the pager down as a collateral damage in certain process-tree structure. This has been fixed. * jk/execv-dashed-external: execv_dashed_external: wait for child on signal death execv_dashed_external: stop exiting with negative code execv_dashed_external: use child_process struct
2017-01-18Merge branch 'sp/cygwin-build-fixes'Libravatar Junio C Hamano1-2/+2
Build updates for Cygwin. * sp/cygwin-build-fixes: Makefile: put LIBS after LDFLAGS for imap-send Makefile: POSIX windres
2017-01-18Merge branch 'sb/pathspec-errors'Libravatar Junio C Hamano2-2/+69
Running "git add a/b" when "a" is a submodule correctly errored out, but without a meaningful error message. * sb/pathspec-errors: pathspec: give better message for submodule related pathspec error
2017-01-18Merge branch 'pb/test-must-fail-is-for-git'Libravatar Junio C Hamano10-26/+26
Test cleanup. * pb/test-must-fail-is-for-git: t9813: avoid using pipes don't use test_must_fail with grep
2017-01-18Merge branch 'bw/pathspec-cleanup'Libravatar Junio C Hamano7-357/+388
Code clean-up in the pathspec API. * bw/pathspec-cleanup: pathspec: rename prefix_pathspec to init_pathspec_item pathspec: small readability changes pathspec: create strip submodule slash helpers pathspec: create parse_element_magic helper pathspec: create parse_long_magic function pathspec: create parse_short_magic function pathspec: factor global magic into its own function pathspec: simpler logic to prefix original pathspec elements pathspec: always show mnemonic and name in unsupported_magic pathspec: remove unused variable from unsupported_magic pathspec: copy and free owned memory pathspec: remove the deprecated get_pathspec function ls-tree: convert show_recursive to use the pathspec struct interface dir: convert fill_directory to use the pathspec struct interface dir: remove struct path_simplify mv: remove use of deprecated 'get_pathspec()'
2017-01-18Merge branch 'js/mingw-test-push-unc-path'Libravatar Junio C Hamano1-0/+48
"git push \\server\share\dir" has recently regressed and then fixed. A test has retroactively been added for this breakage. * js/mingw-test-push-unc-path: mingw: add a regression test for pushing to UNC paths
2017-01-18Merge branch 'sb/submodule-cleanup-export-git-dir-env'Libravatar Junio C Hamano1-1/+2
Code cleanup. * sb/submodule-cleanup-export-git-dir-env: submodule.c: use GIT_DIR_ENVIRONMENT consistently
2017-01-18Merge branch 'km/branch-get-push-while-detached'Libravatar Junio C Hamano2-3/+9
"git <cmd> @{push}" on a detached HEAD used to segfault; it has been corrected to error out with a message. * km/branch-get-push-while-detached: branch_get_push: do not segfault when HEAD is detached
2017-01-18Merge branch 'jk/rebase-i-squash-count-fix'Libravatar Junio C Hamano1-1/+1
"git rebase -i" with a recent update started showing an incorrect count when squashing more than 10 commits. * jk/rebase-i-squash-count-fix: rebase--interactive: count squash commits above 10 correctly
2017-01-18Merge branch 'jk/blame-fixes'Libravatar Junio C Hamano3-10/+166
"git blame --porcelain" misidentified the "previous" <commit, path> pair (aka "source") when contents came from two or more files. * jk/blame-fixes: blame: output porcelain "previous" header for each file blame: handle --no-abbrev blame: fix alignment with --abbrev=40
2017-01-18Merge branch 'jk/archive-zip-userdiff-config'Libravatar Junio C Hamano2-4/+25
"git archive" did not read the standard configuration files, and failed to notice a file that is marked as binary via the userdiff driver configuration. * jk/archive-zip-userdiff-config: archive-zip: load userdiff config
2017-01-18Merge branch 'dt/disable-bitmap-in-auto-gc'Libravatar Junio C Hamano4-6/+45
It is natural that "git gc --auto" may not attempt to pack everything into a single pack, and there is no point in warning when the user has configured the system to use the pack bitmap, leading to disabling further "gc". * dt/disable-bitmap-in-auto-gc: repack: die on incremental + write-bitmap-index auto gc: don't write bitmaps for incremental repacks
2017-01-18Merge branch 'ls/p4-retry-thrice'Libravatar Junio C Hamano2-1/+5
A recent updates to "git p4" was not usable for older p4 but it could be made to work with minimum changes. Do so. * ls/p4-retry-thrice: git-p4: do not pass '-r 0' to p4 commands
2017-01-18Merge branch 'sb/submodule-rm-absorb'Libravatar Junio C Hamano4-129/+107
"git rm" used to refuse to remove a submodule when it has its own git repository embedded in its working tree. It learned to move the repository away to $GIT_DIR/modules/ of the superproject instead, and allow the submodule to be deleted (as long as there will be no loss of local modifications, that is). * sb/submodule-rm-absorb: rm: absorb a submodules git dir before deletion submodule: rename and add flags to ok_to_remove_submodule submodule: modernize ok_to_remove_submodule to use argv_array submodule.h: add extern keyword to functions
2017-01-18Merge branch 'bw/grep-recurse-submodules'Libravatar Junio C Hamano20-117/+904
"git grep" has been taught to optionally recurse into submodules. * bw/grep-recurse-submodules: grep: search history of moved submodules grep: enable recurse-submodules to work on <tree> objects grep: optionally recurse into submodules grep: add submodules as a grep source type submodules: load gitmodules file from commit sha1 submodules: add helper to determine if a submodule is initialized submodules: add helper to determine if a submodule is populated real_path: canonicalize directory separators in root parts real_path: have callers use real_pathdup and strbuf_realpath real_path: create real_pathdup real_path: convert real_path_internal to strbuf_realpath real_path: resolve symlinks by hand
2017-01-18Merge git://ozlabs.org/~paulus/gitkLibravatar Junio C Hamano15-382/+1901
* 'master' of git://ozlabs.org/~paulus/gitk: gitk: Remove translated message from comments gitk: ru.po: Update Russian translation gitk: Update copyright notice to 2016 gitk: Clear array 'commitinfo' on reload gitk: Remove closed file descriptors from $blobdifffd gitk: Turn off undo manager in the text widget gitk: Fix Japanese translation for "marked commit" gitk: Fix missing commits when using -S or -G gitk: Use explicit RGB green instead of "lime" gitk: Add Portuguese translation gitk: Makefile: create install bin directory gitk: Include commit title in branch dialog gitk: Allow checking out a remote branch gitk: Add a 'rename' option to the branch context menu
2017-01-18gitk: Remove translated message from commentsLibravatar David Aguilar1-15/+0
"make update-po" fails because a previously untranslated string has now been translated: Updating po/sv.po po/sv.po:1388: duplicate message definition... po/sv.po:380: ...this is the location of the first definition Remove the duplicate message definition. Reported-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
2017-01-17RelNotes: drop merge-later comments for maintLibravatar Junio C Hamano1-44/+0
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-01-17Merge branch 'maint'Libravatar Junio C Hamano2-1/+122
2017-01-17Almost ready for 2.11.1Libravatar Junio C Hamano4-3/+124
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-01-17Merge branch 'mm/gc-safety-doc' into maintLibravatar Junio C Hamano2-9/+29
Doc update. * mm/gc-safety-doc: git-gc.txt: expand discussion of races with other processes
2017-01-17Merge branch 'mm/push-social-engineering-attack-doc' into maintLibravatar Junio C Hamano6-22/+51
Doc update on fetching and pushing. * mm/push-social-engineering-attack-doc: doc: mention transfer data leaks in more places
2017-01-17Merge branch 'jt/fetch-no-redundant-tag-fetch-map' into maintLibravatar Junio C Hamano1-3/+0
Code cleanup to avoid using redundant refspecs while fetching with the --tags option. * jt/fetch-no-redundant-tag-fetch-map: fetch: do not redundantly calculate tag refmap
2017-01-17Merge branch 'ls/filter-process' into maintLibravatar Junio C Hamano4-29/+24
Doc update. * ls/filter-process: t0021: fix flaky test docs: warn about possible '=' in clean/smudge filter process values
2017-01-17Merge branch 'kh/tutorial-grammofix' into maintLibravatar Junio C Hamano1-6/+6
* kh/tutorial-grammofix: doc: omit needless "for" doc: make the intent of sentence clearer doc: add verb in front of command to run doc: add articles (grammar)
2017-01-17Merge branch 'lr/doc-fix-cet' into maintLibravatar Junio C Hamano1-1/+1
* lr/doc-fix-cet: date-formats.txt: Typo fix
2017-01-17Merge branch 'sb/t3600-cleanup' into maintLibravatar Junio C Hamano1-73/+51
Code cleanup. * sb/t3600-cleanup: t3600: slightly modernize style t3600: remove useless redirect