summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'bw/grep-recurse-submodules'Junio C Hamano2017-01-1820-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
| * grep: search history of moved submodulesBrandon Williams2016-12-222-2/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a submodule was renamed at any point since it's inception then if you were to try and grep on a commit prior to the submodule being moved, you wouldn't be able to find a working directory for the submodule since the path in the past is different from the current path. This patch teaches grep to find the .git directory for a submodule in the parents .git/modules/ directory in the event the path to the submodule in the commit that is being searched differs from the state of the currently checked out commit. If found, the child process that is spawned to grep the submodule will chdir into its gitdir instead of a working directory. In order to override the explicit setting of submodule child process's gitdir environment variable (which was introduced in '10f5c526') `GIT_DIR_ENVIORMENT` needs to be pushed onto child process's env_array. This allows the searching of history from a submodule's gitdir, rather than from a working directory. Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * grep: enable recurse-submodules to work on <tree> objectsBrandon Williams2016-12-224-9/+211
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Teach grep to recursively search in submodules when provided with a <tree> object. This allows grep to search a submodule based on the state of the submodule that is present in a commit of the super project. When grep is provided with a <tree> object, the name of the object is prefixed to all output. In order to provide uniformity of output between the parent and child processes the option `--parent-basename` has been added so that the child can preface all of it's output with the name of the parent's object instead of the name of the commit SHA1 of the submodule. This changes output from the command `git grep -e. -l --recurse-submodules HEAD` from: HEAD:file <commit sha1 of submodule>:sub/file to: HEAD:file HEAD:sub/file Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * grep: optionally recurse into submodulesBrandon Williams2016-12-224-20/+386
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow grep to recognize submodules and recursively search for patterns in each submodule. This is done by forking off a process to recursively call grep on each submodule. The top level --super-prefix option is used to pass a path to the submodule which can in turn be used to prepend to output or in pathspec matching logic. Recursion only occurs for submodules which have been initialized and checked out by the parent project. If a submodule hasn't been initialized and checked out it is simply skipped. In order to support the existing multi-threading infrastructure in grep, output from each child process is captured in a strbuf so that it can be later printed to the console in an ordered fashion. To limit the number of theads that are created, each child process has half the number of threads as its parents (minimum of 1), otherwise we potentailly have a fork-bomb. Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * grep: add submodules as a grep source typeBrandon Williams2016-12-222-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add `GREP_SOURCE_SUBMODULE` as a grep_source type and cases for this new type in the various switch statements in grep.c. When initializing a grep_source with type `GREP_SOURCE_SUBMODULE` the identifier can either be NULL (to indicate that the working tree will be used) or a SHA1 (the REV of the submodule to be grep'd). If the identifier is a SHA1 then we want to fall through to the `GREP_SOURCE_SHA1` case to handle the copying of the SHA1. Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * submodules: load gitmodules file from commit sha1Brandon Williams2016-12-226-7/+25
| | | | | | | | | | | | | | | | | | teach submodules to load a '.gitmodules' file from a commit sha1. This enables the population of the submodule_cache to be based on the state of the '.gitmodules' file from a particular commit. Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * submodules: add helper to determine if a submodule is initializedBrandon Williams2016-12-222-0/+24
| | | | | | | | | | | | | | | | | | Add the `is_submodule_initialized()` helper function to submodules.c. `is_submodule_initialized()` performs a check to determine if the submodule at the given path has been initialized. Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * submodules: add helper to determine if a submodule is populatedBrandon Williams2016-12-222-0/+16
| | | | | | | | | | | | | | | | | | Add the `is_submodule_populated()` helper function to submodules.c. `is_submodule_populated()` performes a check to see if a submodule has been checkout out (and has a valid .git directory/file) at the given path. Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * real_path: canonicalize directory separators in root partsJohannes Sixt2016-12-221-12/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When an absolute path is resolved, resolution begins at the first path component after the root part. The root part is just copied verbatim, because it must not be inspected for symbolic links. For POSIX paths, this is just the initial slash, but on Windows, the root part has the forms c:\ or \\server\share. We do want to canonicalize the back-slashes in the root part because these parts are compared to the result of getcwd(), which does return a fully canonicalized path. Factor out a helper that splits off the root part, and have it canonicalize the copied part. This change was prompted because t1504-ceiling-dirs.sh caught a breakage in GIT_CEILING_DIRECTORIES handling on Windows. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Acked-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * real_path: have callers use real_pathdup and strbuf_realpathBrandon Williams2016-12-127-13/+16
| | | | | | | | | | | | | | | | Migrate callers of real_path() who duplicate the retern value to use real_pathdup or strbuf_realpath. Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * real_path: create real_pathdupBrandon Williams2016-12-122-0/+14
| | | | | | | | | | | | | | | | Create real_pathdup which returns a caller owned string of the resolved realpath based on the provide path. Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * real_path: convert real_path_internal to strbuf_realpathBrandon Williams2016-12-122-28/+27
| | | | | | | | | | | | | | | | | | | | | | Change the name of real_path_internal to strbuf_realpath. In addition push the static strbuf up to its callers and instead take as a parameter a pointer to a strbuf to use for the final result. This change makes strbuf_realpath reentrant. Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * real_path: resolve symlinks by handBrandon Williams2016-12-121-61/+129
| | | | | | | | | | | | | | | | | | | | | | The current implementation of real_path uses chdir() in order to resolve symlinks. Unfortunately this isn't thread-safe as chdir() affects a process as a whole and not just an individual thread. Instead perform the symlink resolution by hand so that the calls to chdir() can be removed, making real_path one step closer to being reentrant. Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge git://ozlabs.org/~paulus/gitkJunio C Hamano2017-01-1815-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
| * | gitk: Remove translated message from commentsDavid Aguilar2017-01-181-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>
| * | gitk: ru.po: Update Russian translationDimitriy Ryazantcev2016-12-311-314/+356
| | | | | | | | | | | | | | | Signed-off-by: Dimitriy Ryazantcev <dimitriy.ryazantcev@gmail.com> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
| * | gitk: Update copyright notice to 2016Paul Mackerras2016-12-1214-31/+31
| | | | | | | | | | | | Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
| * | gitk: Clear array 'commitinfo' on reloadMarkus Hitter2016-12-121-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After a reload we might have an entirely different set of commits, so keeping all of them leaks memory. Remove them all because re-creating them is not more expensive than testing wether they're still valid. Lazy (re-)creation is already well established, so a missing entry can't cause harm. Signed-off-by: Markus Hitter <mah@jump-ing.de> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
| * | gitk: Remove closed file descriptors from $blobdifffdMarkus Hitter2016-12-121-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One shouldn't have descriptors of already closed files around. The first idea to deal with this (previously) ever growing array was to remove it entirely, but it's needed to detect start of a new diff with ths old diff not yet done. This happens when a user clicks on the same commit in the commit list repeatedly without delay. Signed-off-by: Markus Hitter <mah@jump-ing.de> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
| * | gitk: Turn off undo manager in the text widgetMarkus Hitter2016-12-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The diff text widget is read-only, so there's zero point in building an undo stack. This change reduces memory consumption of this widget by about 95%. Memory usage of the whole program for viewing a reference commit before; 579'692'744 bytes, after: 32'724'446 bytes. Test procedure: - Choose a largish commit and check it out. In this case one with 90'802 lines, 5'006'902 bytes. - Have a Tcl version with memory debugging enabled. This is, build one with --enable-symbols=mem passed to configure. - Instrument Gitk to regularly show a memory dump. E.g. by adding these code lines at the very bottom: proc memDump {} { catch { set output [memory info] puts $output } after 3000 memDump } memDump - Start Gitk, it'll load this largish commit into the diff text field automatically (because it's the current commit). - Wait until memory consumption levels out and note the numbers. Note that the numbers reported by [memory info] are much smaller than the ones reported in 'top' (1.75 GB vs. 105 MB in this case), likely due to all the instrumentation coming with the debug version of Tcl. Signed-off-by: Markus Hitter <mah@jump-ing.de> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
| * | gitk: Fix Japanese translation for "marked commit"Satoshi Yasushima2016-12-121-4/+5
| | | | | | | | | | | | | | | Signed-off-by: Satoshi Yasushima <s.yasushima@gmail.com> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
| * | gitk: Fix missing commits when using -S or -GStefan Dotterweich2016-12-121-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When -S or -G is used as a filter option, the resulting commit list rarely contains all matching commits. Only a certain number of commits are displayed and the rest are missing. "git log --boundary -S" does not return as many boundary commits as you might expect. gitk makes up for this in closevarcs() by adding missing parent (boundary) commits. However, it does not change $numcommits, which limits how many commits are shown. In the end, some commits at the end of the commit list are simply not shown. Change $numcommits whenever a missing parent is added to the current view. Signed-off-by: Stefan Dotterweich <stefandotterweich@gmx.de> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
| * | gitk: Use explicit RGB green instead of "lime"Paul Mackerras2016-12-121-6/+6
| | | | | | | | | | | | | | | | | | | | | Some systems don't recognize "lime" as a color, leading to errors when gitk is run. What we want is a bright green, so use "#00ff00" instead. Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
| * | gitk: Add Portuguese translationVasco Almeida2016-12-121-0/+1376
| | | | | | | | | | | | | | | Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
| * | gitk: Makefile: create install bin directoryVasco Almeida2016-12-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Force creation of destination bin directory. Without this, gitk would fail to install if this directory didn't already exist. Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
| * | gitk: Include commit title in branch dialogRogier Goossens2016-12-121-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hi, I made another branch dialog related change, included in this message. It applies on top of my other two patches. Rogier. ------- 8< ------------------- 8< -------------- Only the SHA1 was included. It's convenient to have the title mentioned as well. Signed-off-by: Rogier Goossens <goossens.rogier@gmail.com> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
| * | gitk: Allow checking out a remote branchRogier Goossens2016-12-121-5/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | Git allows checking out remote branches, creating a local tracking branch in the process. Allow gitk to do this as well, provided a local branch of the same name does not yet exist. Signed-off-by: Rogier Goossens <goossens.rogier@gmail.com> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
| * | gitk: Add a 'rename' option to the branch context menuRogier Goossens2016-12-121-11/+85
| | | | | | | | | | | | | | | Signed-off-by: Rogier Goossens <goossens.rogier@gmail.com> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
* | | RelNotes: drop merge-later comments for maintJunio C Hamano2017-01-171-44/+0
| | | | | | | | | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | Merge branch 'maint'Junio C Hamano2017-01-172-1/+122
|\ \ \
| * | | Almost ready for 2.11.1Junio C Hamano2017-01-174-3/+124
| | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | | Merge branch 'mm/gc-safety-doc' into maintJunio C Hamano2017-01-172-9/+29
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Doc update. * mm/gc-safety-doc: git-gc.txt: expand discussion of races with other processes
| * \ \ \ Merge branch 'mm/push-social-engineering-attack-doc' into maintJunio C Hamano2017-01-176-22/+51
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Doc update on fetching and pushing. * mm/push-social-engineering-attack-doc: doc: mention transfer data leaks in more places
| * \ \ \ \ Merge branch 'jt/fetch-no-redundant-tag-fetch-map' into maintJunio C Hamano2017-01-171-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
| * \ \ \ \ \ Merge branch 'ls/filter-process' into maintJunio C Hamano2017-01-174-29/+24
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Doc update. * ls/filter-process: t0021: fix flaky test docs: warn about possible '=' in clean/smudge filter process values
| * \ \ \ \ \ \ Merge branch 'kh/tutorial-grammofix' into maintJunio C Hamano2017-01-171-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)
| * \ \ \ \ \ \ \ Merge branch 'lr/doc-fix-cet' into maintJunio C Hamano2017-01-171-1/+1
| |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lr/doc-fix-cet: date-formats.txt: Typo fix
| * \ \ \ \ \ \ \ \ Merge branch 'sb/t3600-cleanup' into maintJunio C Hamano2017-01-171-73/+51
| |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Code cleanup. * sb/t3600-cleanup: t3600: slightly modernize style t3600: remove useless redirect
| * \ \ \ \ \ \ \ \ \ Merge branch 'jk/readme-gmane-is-no-more' into maintJunio C Hamano2017-01-171-1/+1
| |\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * jk/readme-gmane-is-no-more: README: replace gmane link with public-inbox
| * \ \ \ \ \ \ \ \ \ \ Merge branch 'sb/unpack-trees-grammofix' into maintJunio C Hamano2017-01-172-2/+2
| |\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * sb/unpack-trees-grammofix: unpack-trees: fix grammar for untracked files in directories
| * \ \ \ \ \ \ \ \ \ \ \ Merge branch 'ls/t0021-fixup' into maintJunio C Hamano2017-01-171-3/+2
| |\ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ls/t0021-fixup: t0021: minor filter process test cleanup
| * \ \ \ \ \ \ \ \ \ \ \ \ Merge branch 'ak/lazy-prereq-mktemp' into maintJunio C Hamano2017-01-171-1/+2
| |\ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Test code clean-up. * ak/lazy-prereq-mktemp: t7610: clean up foo.XXXXXX tmpdir
| * \ \ \ \ \ \ \ \ \ \ \ \ \ Merge branch 'nd/qsort-in-merge-recursive' into maintJunio C Hamano2017-01-171-9/+7
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Code simplification. * nd/qsort-in-merge-recursive: merge-recursive.c: use string_list_sort instead of qsort
| * \ \ \ \ \ \ \ \ \ \ \ \ \ \ Merge branch 'dt/smart-http-detect-server-going-away' into maintJunio C Hamano2017-01-175-4/+77
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the http server gives an incomplete response to a smart-http rpc call, it could lead to client waiting for a full response that will never come. Teach the client side to notice this condition and abort the transfer. An improvement counterproposal has failed. cf. <20161114194049.mktpsvgdhex2f4zv@sigill.intra.peff.net> * dt/smart-http-detect-server-going-away: upload-pack: optionally allow fetching any sha1 remote-curl: don't hang when a server dies before any output
| * \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Merge branch 'mk/mingw-winansi-ttyname-termination-fix' into maintJunio C Hamano2017-01-171-1/+1
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A potential but unlikely buffer overflow in Windows port has been fixed. * mk/mingw-winansi-ttyname-termination-fix: mingw: consider that UNICODE_STRING::Length counts bytes
| * \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Merge branch 'gv/p4-multi-path-commit-fix' into maintJunio C Hamano2017-01-172-3/+23
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "git p4" that tracks multile p4 paths imported a single changelist that touches files in these multiple paths as one commit, followed by many empty commits. This has been fixed. * gv/p4-multi-path-commit-fix: git-p4: fix multi-path changelist empty commits
| * \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Merge branch 'jk/difftool-in-subdir' into maintJunio C Hamano2017-01-171-24/+29
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Even though an fix was attempted in Git 2.9.3 days, but running "git difftool --dir-diff" from a subdirectory never worked. This has been fixed. * jk/difftool-in-subdir: difftool: rename variables for consistency difftool: chdir as early as possible difftool: sanitize $workdir as early as possible difftool: fix dir-diff index creation when in a subdirectory
| * \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Merge branch 'ld/p4-compare-dir-vs-symlink' into maintJunio C Hamano2017-01-172-6/+63
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "git p4" misbehaved when swapping a directory and a symbolic link. * ld/p4-compare-dir-vs-symlink: git-p4: avoid crash adding symlinked directory
| * \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Merge branch 'jc/push-default-explicit' into maintJunio C Hamano2017-01-172-2/+15
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A lazy "git push" without refspec did not internally use a fully specified refspec to perform 'current', 'simple', or 'upstream' push, causing unnecessary "ambiguous ref" errors. * jc/push-default-explicit: push: test pushing ambiguously named branches push: do not use potentially ambiguous default refspec
| * \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Merge branch 'jt/mailinfo-fold-in-body-headers' into maintJunio C Hamano2017-01-171-1/+2
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix for NDEBUG builds. * jt/mailinfo-fold-in-body-headers: mailinfo.c: move side-effects outside of assert