summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-11-03Merge branch 'dt/name-hash-dir-entry-fix' into maintLibravatar Junio C Hamano4-60/+35
The name-hash subsystem that is used to cope with case insensitive filesystems keeps track of directories and their on-filesystem cases for all the paths in the index by holding a pointer to a randomly chosen cache entry that is inside the directory (for its ce->ce_name component). This pointer was not updated even when the cache entry was removed from the index, leading to use after free. This was fixed by recording the path for each directory instead of borrowing cache entries and restructuring the API somewhat. * dt/name-hash-dir-entry-fix: name-hash: don't reuse cache_entry in dir_entry
2015-11-03Merge branch 'jc/am-3-fallback-regression-fix' into maintLibravatar Junio C Hamano1-16/+33
"git am -3" had a small regression where it is aborted in its error handling codepath when underlying merge-recursive failed in certain ways, as it assumed that the internal call to merge-recursive will never die, which is not the case (yet). * jc/am-3-fallback-regression-fix: am -3: do not let failed merge from completing the error codepath
2015-11-03Merge branch 'jc/usage-stdin' into maintLibravatar Junio C Hamano25-41/+64
The synopsis text and the usage string of subcommands that read list of things from the standard input are often shown as if they only take input from a file on a filesystem, which was misleading. * jc/usage-stdin: usage: do not insist that standard input must come from a file
2015-11-03Merge branch 'rt/placeholder-in-usage' into maintLibravatar Junio C Hamano2-3/+3
A couple of commands still showed "[options]" in their usage string to note where options should come on their command line, but we spell that "[<options>]" in most places these days. * rt/placeholder-in-usage: am, credential-cache: add angle brackets to usage string
2015-11-03Merge branch 'dt/t7063-fix-flaky-test' into maintLibravatar Junio C Hamano1-1/+3
* dt/t7063-fix-flaky-test: t7063: fix flaky untracked-cache test
2015-11-03Merge branch 'mk/submodule-gitdir-path' into maintLibravatar Junio C Hamano5-17/+42
The submodule code has been taught to work better with separate work trees created via "git worktree add". * mk/submodule-gitdir-path: path: implement common_dir handling in git_pathdup_submodule() submodule refactor: use strbuf_git_path_submodule() in add_submodule_odb()
2015-11-03Merge branch 'nd/gc-auto-background-fix' into maintLibravatar Junio C Hamano1-1/+55
When "git gc --auto" is backgrounded, its diagnosis message is lost. Save it to a file in $GIT_DIR and show it next time the "gc --auto" is run. * nd/gc-auto-background-fix: gc: save log from daemonized gc --auto and print it next time
2015-11-03Merge branch 'ls/p4-translation-failure' into maintLibravatar Junio C Hamano2-11/+66
Work around "git p4" failing when the P4 depot records the contents in UTF-16 without UTF-16 BOM. * ls/p4-translation-failure: git-p4: handle "Translation of file content failed" git-p4: add test case for "Translation of file content failed" error
2015-11-03Merge branch 'gr/rebase-i-drop-warn' into maintLibravatar Junio C Hamano2-0/+24
Recent update to "rebase -i" that tries to sanity check the edited insn sheet before it uses it has become too picky on Windows where CRLF left by the editor is turned into a trailing CR on the line read via the "read" built-in command. * gr/rebase-i-drop-warn: rebase-i: work around Windows CRLF line endings t3404: "rebase -i" gets broken when insn sheet uses CR/LF line endings
2015-11-03Merge branch 'js/clone-dissociate' into maintLibravatar Junio C Hamano4-23/+62
"git clone --dissociate" runs a big "git repack" process at the end, and it helps to close file descriptors that are open on the packs and their idx files before doing so on filesystems that cannot remove a file that is still open. * js/clone-dissociate: clone --dissociate: avoid locking pack files sha1_file.c: add a function to release all packs sha1_file: consolidate code to close a pack's file descriptor t5700: demonstrate a Windows file locking issue with `git clone --dissociate`
2015-11-03Merge branch 'ld/p4-import-labels' into maintLibravatar Junio C Hamano2-8/+62
Correct "git p4 --detect-labels" so that it does not fail to create a tag that points at a commit that is also being imported. * ld/p4-import-labels: git-p4: fix P4 label import for unprocessed commits git-p4: do not terminate creating tag for unknown commit git-p4: failing test for ignoring invalid p4 labels
2015-11-03Merge branch 'tk/stripspace' into maintLibravatar Junio C Hamano9-103/+118
The internal stripspace() function has been moved to where it logically belongs to, i.e. strbuf API, and the command line parser of "git stripspace" has been updated to use the parse_options API. * tk/stripspace: stripspace: use parse-options for command-line parsing strbuf: make stripspace() part of strbuf
2015-11-03Merge branch 'jk/repository-extension' into maintLibravatar Junio C Hamano8-12/+209
Prepare for Git on-disk repository representation to undergo backward incompatible changes by introducing a new repository format version "1", with an extension mechanism. * jk/repository-extension: introduce "preciousObjects" repository extension introduce "extensions" form of core.repositoryformatversion
2015-10-28rebase-i: work around Windows CRLF line endingsLibravatar Junio C Hamano2-1/+13
Editors on Windows can and do save text files with CRLF line endings, which is the convention on the platform. We are seeing reports that the "read" command in a port of bash to the environment however does not strip the CRLF at the end, not adjusting for the same convention on the platform. This breaks the recently added sanity checks for the insn sheet fed to "rebase -i"; instead of an empty line (hence nothing in $command), the script was getting a lone CR in there. Special case a lone CR and treat it the same way as an empty line to work this around. This patch (also) passes the test with Git for Windows, where the issue was seen first. Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-10-28t3404: "rebase -i" gets broken when insn sheet uses CR/LF line endingsLibravatar Johannes Schindelin1-0/+12
Based on a bug report by Chad Boles. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-10-21name-hash: don't reuse cache_entry in dir_entryLibravatar David Turner4-60/+35
Stop reusing cache_entry in dir_entry; doing so causes a use-after-free bug. During merges, we free entries that we no longer need in the destination index. But those entries might have also been stored in the dir_entry cache, and when a later call to add_to_index found them, they would be used after being freed. To prevent this, change dir_entry to store a copy of the name instead of a pointer to a cache_entry. This entails some refactoring of code that expects the cache_entry. Keith McGuigan <kmcguigan@twitter.com> diagnosed this bug and wrote the initial patch, but this version does not use any of Keith's code. Helped-by: Keith McGuigan <kmcguigan@twitter.com> Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: David Turner <dturner@twopensource.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-10-20Merge branch 'js/gc-with-stale-symref' into maintLibravatar Junio C Hamano2-1/+20
"git gc" used to barf when a symbolic ref has gone dangling (e.g. the branch that used to be your upstream's default when you cloned from it is now gone, and you did "fetch --prune"). * js/gc-with-stale-symref: pack-objects: do not get distracted by broken symrefs gc: demonstrate failure with stale remote HEAD
2015-10-20Merge branch 'rd/test-path-utils' into maintLibravatar Junio C Hamano2-2/+5
The normalize_ceiling_entry() function does not muck with the end of the path it accepts, and the real world callers do rely on that, but a test insisted that the function drops a trailing slash. * rd/test-path-utils: test-path-utils.c: remove incorrect assumption
2015-10-20Merge branch 'jc/doc-gc-prune-now' into maintLibravatar Junio C Hamano1-2/+5
"git gc" is safe to run anytime only because it has the built-in grace period to protect young objects. In order to run with no grace period, the user must make sure that the repository is quiescent. * jc/doc-gc-prune-now: Documentation/gc: warn against --prune=<now>
2015-10-20Merge branch 'jk/filter-branch-use-of-sed-on-incomplete-line' into maintLibravatar Junio C Hamano2-1/+15
A recent "filter-branch --msg-filter" broke skipping of the commit object header, which is fixed. * jk/filter-branch-use-of-sed-on-incomplete-line: filter-branch: remove multi-line headers in msg filter
2015-10-19t7063: fix flaky untracked-cache testLibravatar David Turner1-1/+3
Dirty the test worktree's root directory, as the test expects. When testing the untracked-cache, we previously assumed that checking out master would be sufficient to mark the mtime of the worktree's root directory as racily-dirty. But sometimes, the checkout would happen at 12345.999 seconds and the status at 12346.001 seconds, meaning that the worktree's root directory would not be racily-dirty. And since it was not truly dirty, occasionally the test would fail. By making the root truly dirty, the test will always succeed. Tested by running a few hundred times. Signed-off-by: David Turner <dturner@twopensource.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-10-18Merge branch 'maint' of git://github.com/git-l10n/git-po into maintLibravatar Junio C Hamano1-1583/+1967
* 'maint' of git://github.com/git-l10n/git-po: l10n: ru.po: update Russian translation
2015-10-16usage: do not insist that standard input must come from a fileLibravatar Junio C Hamano25-41/+64
The synopsys text and the usage string of subcommands that read list of things from the standard input are often shown like this: git gostak [--distim] < <list-of-doshes> This is problematic in a number of ways: * The way to use these commands is more often to feed them the output from another command, not feed them from a file. * Manual pages outside Git, commands that operate on the data read from the standard input, e.g "sort", "grep", "sed", etc., are not described with such a "< redirection-from-file" in their synopsys text. Our doing so introduces inconsistency. * We do not insist on where the output should go, by saying git gostak [--distim] < <list-of-doshes> > <output> * As it is our convention to enclose placeholders inside <braket>, the redirection operator followed by a placeholder filename becomes very hard to read, both in the documentation and in the help text. Let's clean them all up, after making sure that the documentation clearly describes the modes that take information from the standard input and what kind of things are expected on the input. [jc: stole example for fmt-merge-msg from Jonathan] Helped-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-10-16Git 2.6.2Libravatar Junio C Hamano4-3/+69
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-10-16Merge branch 'cc/quote-comments' into maintLibravatar Junio C Hamano1-5/+6
A no-op code-health maintenance. * cc/quote-comments: quote: move comment before sq_quote_buf() quote: fix broken sq_quote_buf() related comment
2015-10-16Merge branch 'es/worktree-add-cleanup' into maintLibravatar Junio C Hamano1-0/+0
A no-op code-health maintenance. * es/worktree-add-cleanup: t2026: rename worktree prune test
2015-10-16Merge branch 'tk/doc-interpret-trailers-grammo' into maintLibravatar Junio C Hamano1-1/+1
* tk/doc-interpret-trailers-grammo: Documentation/interpret-trailers: Grammar fix
2015-10-16Merge branch 'tk/typofix-connect-unknown-proto-error' into maintLibravatar Junio C Hamano1-1/+1
* tk/typofix-connect-unknown-proto-error: connect: fix typo in result string of prot_name()
2015-10-16Merge branch 'jk/asciidoctor-section-heading-markup-fix' into maintLibravatar Junio C Hamano2-2/+2
* jk/asciidoctor-section-heading-markup-fix: Documentation: fix section header mark-up
2015-10-16Merge branch 'nd/ls-remote-does-not-have-u-option' into maintLibravatar Junio C Hamano2-3/+2
* nd/ls-remote-does-not-have-u-option: ls-remote.txt: delete unsupported option
2015-10-16Merge branch 'jc/fsck-dropped-errors' into maintLibravatar Junio C Hamano2-5/+35
There were some classes of errors that "git fsck" diagnosed to its standard error that did not cause it to exit with non-zero status. * jc/fsck-dropped-errors: fsck: exit with non-zero when problems are found
2015-10-16Merge branch 'sb/http-flaky-test-fix' into maintLibravatar Junio C Hamano3-23/+1
A test script for the HTTP service had a timing dependent bug, which was fixed. * sb/http-flaky-test-fix: t5561: get rid of racy appending to logfile
2015-10-16Merge branch 'sb/perf-without-installed-git' into maintLibravatar Junio C Hamano1-0/+1
Performance-measurement tests did not work without an installed Git. * sb/perf-without-installed-git: t/perf: make runner work even if Git is not installed
2015-10-16Merge branch 'js/icase-wt-detection' into maintLibravatar Junio C Hamano1-1/+10
On a case insensitive filesystems, setting GIT_WORK_TREE variable using a random cases that does not agree with what the filesystem thinks confused Git that it wasn't inside the working tree. * js/icase-wt-detection: setup: fix "inside work tree" detection on case-insensitive filesystems
2015-10-16Merge branch 'pt/am-builtin' into maintLibravatar Junio C Hamano1-1/+12
When "git am" was rewritten as a built-in, it stopped paying attention to user.signingkey, which was fixed. * pt/am-builtin: am: configure gpg at startup
2015-10-16Merge branch 'mm/detach-at-HEAD-reflog' into maintLibravatar Junio C Hamano2-0/+19
After "git checkout --detach", "git status" reported a fairly useless "HEAD detached at HEAD", instead of saying at which exact commit. * mm/detach-at-HEAD-reflog: status: don't say 'HEAD detached at HEAD' t3203: test 'detached at' after checkout --detach
2015-10-16Merge branch 'gr/rebase-i-drop-warn' into maintLibravatar Junio C Hamano2-35/+46
"git rebase -i" had a minor regression recently, which stopped considering a line that begins with an indented '#' in its insn sheet not a comment, which is now fixed. * gr/rebase-i-drop-warn: rebase-i: loosen over-eager check_bad_cmd check rebase-i: explicitly accept tab as separator in commands
2015-10-16Merge branch 'dt/log-follow-config' into maintLibravatar Junio C Hamano2-4/+10
Description of the "log.follow" configuration variable in "git log" documentation is now also copied to "git config" documentation. * dt/log-follow-config: log: Update log.follow doc and add to config.txt
2015-10-16Merge branch 'ti/glibc-stdio-mutex-from-signal-handler' into maintLibravatar Junio C Hamano3-14/+34
Allocation related functions and stdio are unsafe things to call inside a signal handler, and indeed killing the pager can cause glibc to deadlock waiting on allocation mutex as our signal handler tries to free() some data structures in wait_for_pager(). Reduce these unsafe calls. * ti/glibc-stdio-mutex-from-signal-handler: pager: don't use unsafe functions in signal handlers
2015-10-16Merge branch 'jk/notes-dwim-doc' into maintLibravatar Junio C Hamano3-3/+12
The way how --ref/--notes to specify the notes tree reference are DWIMmed was not clearly documented. * jk/notes-dwim-doc: notes: correct documentation of DWIMery for notes references
2015-10-16Merge branch 'jk/make-findstring-makeflags-fix' into maintLibravatar Junio C Hamano1-2/+2
Customization to change the behaviour with "make -w" and "make -s" in our Makefile was broken when they were used together. * jk/make-findstring-makeflags-fix: Makefile: fix MAKEFLAGS tests with multiple flags
2015-10-16Merge branch 'jw/make-arflags-customizable' into maintLibravatar Junio C Hamano1-3/+6
The Makefile always runs the library archiver with hardcoded "crs" options, which was inconvenient for exotic platforms on which people want to use programs with totally different set of command line options. * jw/make-arflags-customizable: Makefile: allow $(ARFLAGS) specified from the command line
2015-10-16Merge branch 'jk/connect-clear-env' into maintLibravatar Junio C Hamano2-10/+49
The ssh transport, just like any other transport over the network, did not clear GIT_* environment variables, but it is possible to use SendEnv and AcceptEnv to leak them to the remote invocation of Git, which is not a good idea at all. Explicitly clear them just like we do for the local transport. * jk/connect-clear-env: git_connect: clarify conn->use_shell flag git_connect: clear GIT_* environment for ssh
2015-10-16Merge branch 'jk/blame-first-parent' into maintLibravatar Junio C Hamano2-1/+14
"git blame --first-parent v1.0..v2.0" was not rejected but did not limit the blame to commits on the first parent chain. * jk/blame-first-parent: blame: handle --first-parent
2015-10-16Merge branch 'mm/keyid-docs' into maintLibravatar Junio C Hamano10-29/+47
Very small number of options take a parameter that is optional (which is not a great UI element as they can only appear at the end of the command line). Add notice to documentation of each and every one of them. * mm/keyid-docs: Documentation: explain optional arguments better Documentation/grep: fix documentation of -O Documentation: use 'keyid' consistently, not 'key-id'
2015-10-16Merge branch 'pt/pull-builtin' into maintLibravatar Junio C Hamano3-3/+3
* pt/pull-builtin: pull: enclose <options> in brackets in the usage string merge: grammofix in please-commit-before-merge message
2015-10-16am, credential-cache: add angle brackets to usage stringLibravatar Ralf Thielow2-3/+3
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-10-16stripspace: use parse-options for command-line parsingLibravatar Tobias Klauser1-26/+31
Use parse-options to parse command-line options instead of a hand-crafted implementation. The users can now use a unique prefix of the long option to say e.g. "git stripspace --strip". Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-10-16strbuf: make stripspace() part of strbufLibravatar Tobias Klauser9-78/+88
This function is also used in other builtins than stripspace, so it makes sense to have it in a more generic place. Since it operates on an strbuf and the function is declared in strbuf.h, move it to strbuf.c and add the corresponding prefix to its name, just like other API functions in the strbuf_* family. Also switch all current users of stripspace() to the new function name and keep a temporary wrapper inline function for any topic branches still using stripspace(). Reviewed-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-10-16pull: enclose <options> in brackets in the usage stringLibravatar Alex Henrie1-1/+1
All the other placeholders are already shown that way. Signed-off-by: Alex Henrie <alexhenrie24@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>