I Use This!
Very High Activity

News

Analyzed about 10 hours ago. based on code collected about 11 hours ago.
Posted over 11 years ago by Junio C Hamano
The latest maintenance release Git v2.1.2 is now available at the usual places. With this, v2.1.x has all the important fixes that have been already applied to the 'master' front for the next feature release. It also contains some updates to German ... [More] translation. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.1.2' tag and the 'maint' branch that the tag points at: url = https://kernel.googlesource.com/pub/scm/git/git url = git://repo.or.cz/alt-git.git url = https://code.google.com/p/git-core/ url = git://git.sourceforge.jp/gitroot/git-core/git.git url = git://git-core.git.sourceforge.net/gitroot/git-core/git-core url = https://github.com/gitster/git Git v2.1.2 Release Notes ======================== * "git push" over HTTP transport had an artificial limit on number of refs that can be pushed imposed by the command line length. * When receiving an invalid pack stream that records the same object twice, multiple threads got confused due to a race. * An attempt to remove the entire tree in the "git fast-import" input stream caused it to misbehave. * Reachability check (used in "git prune" and friends) did not add a detached HEAD as a starting point to traverse objects still in use. * "git config --add section.var val" used to lose existing section.var whose value was an empty string. * "git fsck" failed to report that it found corrupt objects via its exit status in some cases. ---------------------------------------------------------------- Changes since v2.1.1 are as follows: Jeff King (5): send-pack: take refspecs over stdin index-pack: fix race condition with duplicate bases fsck: exit with non-zero status upon error from fsck_obj() config: avoid a funny sentinel value "a^" fsck: return non-zero status on missing ref tips Junio C Hamano (1): Git 2.1.2 Max Kirillov (1): reachable.c: add HEAD to reachability starting commits Maxim Bublis (2): t9300: test filedelete command fast-import: fix segfault in store_tree() Phillip Sz (2): l10n: de.po: change Email to E-Mail l10n: de.po: use comma before "um" Ralf Thielow (1): po/TEAMS: add new member to German translation team Sergey Organov (2): Documentation/git-rebase.txt: -f forces a rebase that would otherwise be a no-op Documentation/git-rebase.txt: must be given to specify Tanay Abhra (1): make config --add behave correctly for empty and NULL values -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html [Less]
Posted over 11 years ago by Junio C Hamano
The latest maintenance release Git v2.1.1 is now available at the usual places. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.1.1' tag and the 'maint' ... [More] branch that the tag points at: url = https://kernel.googlesource.com/pub/scm/git/git url = git://repo.or.cz/alt-git.git url = https://code.google.com/p/git-core/ url = git://git.sourceforge.jp/gitroot/git-core/git.git url = git://git-core.git.sourceforge.net/gitroot/git-core/git-core url = https://github.com/gitster/git Git v2.1.1 Release Notes ======================== * Git 2.0 had a regression where "git fetch" into a shallowly cloned repository from a repository with bitmap object index enabled did not work correctly. This has been corrected. * Git 2.0 had a regression which broke (rarely used) "git diff-tree -t". This has been corrected. * "git log --pretty/format=" with an empty format string did not mean the more obvious "No output whatsoever" but "Use default format", which was counterintuitive. Now it means "nothing shown for the log message part". * "git -c section.var command" and "git -c section.var= command" should pass the configuration differently (the former should be a boolean true, the latter should be an empty string), but they didn't work that way. Now it does. * Applying a patch not generated by Git in a subdirectory used to check the whitespace breakage using the attributes for incorrect paths. Also whitespace checks were performed even for paths excluded via "git apply --exclude=" mechanism. * "git bundle create" with date-range specification were meant to exclude tags outside the range, but it did not work correctly. * "git add x" where x that used to be a directory has become a symbolic link to a directory misbehaved. * The prompt script checked $GIT_DIR/ref/stash file to see if there is a stash, which was a no-no. * "git checkout -m" did not switch to another branch while carrying the local changes forward when a path was deleted from the index. * With sufficiently long refnames, fast-import could have overflown an on-stack buffer. * After "pack-refs --prune" packed refs at the top-level, it failed to prune them. * "git gc --auto" triggered from "git fetch --quiet" was not quiet. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html [Less]
Posted over 11 years ago by Marat Radchenko
Some time ago I complained [1] about troubles using Git on a project with high ratio of non-programmers. Since then, a conclusion was made: Git is too complex. While Git provides many nice advanced stuff, its simplest workflow isn't simple enough. ... [More] So we examined other options: * Splitting project in two repos (Git + SVN). It was thought to be the worst idea because we lost commit atomicity * Use GitHub SVN integration [2]. Rejected due to security considerations: our closed-source project isn't allowed to be hosted outside. * Use GitHub Enterprise: rejected due to pricing * Use SubGit [3]: rejected because of its architecture. Then, a lost'n'forgotten git_svn_server [4] was found. After playing with it, we found out that its approach can work, though several decisions (Python and extensive forking of `git`) made it very slow. So we thought "we're programmers, after all". And that's when *git-as-svn* [5] was born. It is a daemon that sits on top of Git repository and talks svn:// protocol. Features supported: * checkout/update * log * blame * commit (!) * rename detection (though a bit slow yet) * svn:eol-style * Git pre-receive hooks * simple or LDAP authentication * partial checkout * sparse working copy (svn --depth/--set-depth) * git submodules Current limitations: * Only a single Git branch from a single repository * Needs at least one commit in Git * Parses whole history on startup and doesn't cache it anywhere * You must not do 'inverted merges'. Old HEAD must be reachable from new HEAD by first-parent traversal. [1]: http://marc.info/?l=git&m=139866660018802 [2]: https://help.github.com/articles/support-for-subversion-clients [3]: http://subgit.com/ [4]: http://git.q42.co.uk/git_svn_server.git [5]: https://github.com/bozaro/git-as-svn/ -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html [Less]
Posted over 11 years ago by Jonas Fonseca
Hello, I am very happy to announce that another bug fix release of Tig is now available. Among the most prominent fixes are readline completion and srefreshing of view after returning from commands when refresh-mode is set to after-command. This ... [More] release also improves testing so that Tig now has an actual test suite, which although being far from complete has already help to ensure more consistency and avoid regressions. For a complete list of fixes and improvements see the release notes below. With this maintainance release out of the way I plan to merge some of the experimental features such as support for key combos that didn't get finalized for the 2.0 release. What is Tig? ------------ Tig is an ncurses-based text-mode interface for git. It functions mainly as a Git repository browser, but can also assist in staging changes for commit at chunk level and act as a pager for output from various Git commands. Resources --------- - Homepage: http://jonas.nitro.dk/tig/ - Manual: http://jonas.nitro.dk/tig/manual.html - Tarballs: http://jonas.nitro.dk/tig/releases/ - Git URL: git://github.com/jonas/tig.git - Gitweb: http://repo.or.cz/w/tig.git - Q&A: http://stackoverflow.com/questions/tagged/tig Release notes ------------- Improvement: - Add `:save-display ` prompt command to save the current display. - Add `:script ` prompt command for scripting the Tig UI. - Add test framework and convert existing tests to use it. - Add command-line option for starting in refs view: `tig refs`. (GH #309) - Make blame commit ID colors stable across reloads. (GH #303) - Increase blame ID and graph rendering color palette to 14 colors. - New setting 'split-view-width' controls the width for vertical splits. It takes the width of the right-most view either as a number or a percentage. - Expose settings holding command line argument lists: `file-args`, `rev-args`, and `cmdline-args`. They are mainly intended for testing purposes but also allows to change the filtering arguments dynamically. (GH #306) - Add `log-options` setting for specifying default log view options. Example: `set log-options = --pretty=fuller`. - Use option specific view flags to reload view after `:set` commands. Bug fixes: - Refresh the current view when returning from an external command and `refresh-mode=after-command`. (GH #289) - Fix readline completion. - Fix '/' to `find-next` when readline support is enabled. (GH #302) - Fix readline prompt to correctly handle UTF-8 characters. - Add warnings for more obsolete actions and colors. - Fix passing of commit IDS via stdin to the main view. - Fix commit title overflow drawing for multibyte text. (GH #307) - Fix installation directory permissions. - Handle binary files matches reported by git-grep. - Toggling of "args"-typed options without any arguments will clear the current arguments. Example: `:toggle blame-options`. - Detect custom `pretty.format` settings that break the log view and fallback to use the `medium` format. (GH #225) - Fix invocation of git-diff for the blame view's line tracking. (GH #316) - Fix blame completion of directory names. (GH #317) - Fix display of conflicts in the main view when 'show-changes' is enabled. - Fix off-by-one error when displaying line numbers in the grep view. - When showing the commit graph ensure that either topo, date or author-date commit order is used. (Debian #757692) (GH #238) Change summary -------------- The diffstat and log summary for changes made in this release. .gitignore | 3 +- .travis.yml | 4 +- Makefile | 30 +- NEWS.adoc | 43 + contrib/tig-completion.bash | 38 +- doc/manual.adoc | 2 +- doc/tig.1.adoc | 19 + doc/tigrc.5.adoc | 74 +- include/tig/display.h | 18 +- include/tig/graph.h | 2 +- include/tig/io.h | 4 +- include/tig/keys.h | 1 + include/tig/line.h | 7 + include/tig/options.h | 15 +- include/tig/prompt.h | 8 + include/tig/refdb.h | 1 + include/tig/watch.h | 2 +- src/argv.c | 22 +- src/blame.c | 16 +- src/diff.c | 4 +- src/display.c | 206 +- src/draw.c | 56 +- src/grep.c | 36 +- src/keys.c | 1 - src/line.c | 7 + src/log.c | 4 +- src/main.c | 27 +- src/options.c | 66 +- src/parse.c | 1 - src/prompt.c | 106 +- src/refdb.c | 7 +- src/refs.c | 2 +- src/repo.c | 3 +- src/status.c | 2 +- src/tig.c | 42 +- src/view.c | 109 +- src/watch.c | 33 +- test/README.adoc | 39 + test/blame/default-test | 125 + test/builtin-config.sh | 18 - test/files/scala-js-benchmarks.tgz | Bin 0 -> 91452 bytes .../simple.in => graph/00-simple-test} | 17 + test/graph/01-merge-from-left-test | 26 + test/graph/02-duplicate-parent-test | 38 + test/graph/03-octo-merge-test | 26 + test/graph/04-missing-bar-test | 32 + test/graph/05-extra-pipe-test | 29 + .../06-extra-bars-test} | 125 + test/graph/07-multi-collapse-test | 35 + test/graph/08-multi-collapse-2-test | 38 + test/graph/09-parallel-siblings-test | 38 + test/graph/10-shorter-merge-than-branch-test | 44 + test/graph/11-new-branch-in-middle-test | 38 + test/graph/12-cross-over-collapse-test | 38 + ...branches-with-different-middle-branch-test | 41 + .../14-long-collapse-line-test} | 51 + .../15-many-merges-test} | 31 + .../16_changes.in => graph/16-changes-test} | 15 + .../more.out => graph/17-more-merges-test} | 83 + .../tig.in => graph/18-tig-test} | 19 + .../tig-all.in => graph/19-tig-all-test} | 47 +- .../20-tig-all-long-test} | 604 +- test/graph/20-tig-all-long-test.in | Bin 0 -> 262208 bytes test/grep/default-test | 249 + test/log/pretty-format-test | 123 + test/log/submodule-test | 127 + test/main/commit-order-edge-case-test | 47 + test/main/commit-order-edge-case-test.tgz | Bin 0 -> 2728 bytes test/main/commit-title-overflow-test | 114 + test/main/default-test | 144 + test/main/pretty-raw-test | 38 + test/main/refresh-test | 98 + test/main/search-test | 160 + test/main/show-changes-test | 151 + test/main/stdin-test | 38 + test/main/submodule-test | 130 + test/main/util.sh | 16 + test/main/view-split-test | 110 + test/refs/branch-checkout-test | 106 + test/refs/default-test | 60 + test/refs/util.sh | 13 + test/script/default-test | 40 + test/status/file-name-test | 122 + test/status/refresh-test | 251 + .../10_shorter_merge_than_branch.in | 22 - .../10_shorter_merge_than_branch.out | 11 - .../11_new_branch_in_middle.in | 18 - .../11_new_branch_in_middle.out | 9 - .../12_cross_over_collapse.in | 18 - .../12_cross_over_collapse.out | 9 - ...l_branches_with_different_middle_branch.in | 20 - ..._branches_with_different_middle_branch.out | 10 - .../14_long_collapse_line.in | 40 - test/test-graph-samples/16_changes.out | 4 - test/test-graph-samples/1_merge_from_left.in | 10 - test/test-graph-samples/1_merge_from_left.out | 5 - test/test-graph-samples/2_duplicate_parent.in | 18 - .../test-graph-samples/2_duplicate_parent.out | 9 - test/test-graph-samples/3_octo_merge.in | 10 - test/test-graph-samples/3_octo_merge.out | 5 - test/test-graph-samples/4_missing_bar.in | 14 - test/test-graph-samples/4_missing_bar.out | 7 - test/test-graph-samples/5_extra_pipe.in | 12 - test/test-graph-samples/5_extra_pipe.out | 6 - test/test-graph-samples/6_extra_bars.in | 115 - test/test-graph-samples/7_multi_collapse.in | 16 - test/test-graph-samples/7_multi_collapse.out | 8 - test/test-graph-samples/8_multi_collapse_2.in | 18 - .../test-graph-samples/8_multi_collapse_2.out | 9 - .../test-graph-samples/9_parallel_siblings.in | 18 - .../9_parallel_siblings.out | 9 - test/test-graph-samples/many_merges.out | 20 - test/test-graph-samples/more.in | 72 - test/test-graph-samples/simple.out | 6 - test/test-graph-samples/tig-all-long.in | 14986 ---------------- test/test-graph-samples/tig-all.out | 35 - test/test-graph-samples/tig.out | 8 - test/tigrc/builtin-error-test | 12 + test/tigrc/compat-error-test | 125 + test/tigrc/env-vars-test | 39 + test/tigrc/parse-test | 125 + test/tigrc/tigrc-manpage-examples-test | 49 + test/tools/libgit.sh | 242 + test/tools/libtest.sh | 228 + test/tools/setup-conflict.sh | 22 + test/tools/show-results.sh | 34 + test/{ => tools}/test-graph.c | 36 +- test/tree/default-test | 165 + test/unit-test-graph.sh | 19 - tigrc | 12 +- tools/aspell.dict | 11 +- tools/install.sh | 2 +- tools/release.sh | 7 +- 133 files changed, 5456 insertions(+), 16004 deletions(-) 1 Alexander Myltsev 3 John Keeping 64 Jonas Fonseca 1 Olof-Joachim Frahm 1 Sven Wegener 2 Vivien Didelot 1 hamaco -- Jonas Fonseca -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html [Less]
Posted over 11 years ago by Junio C Hamano
The latest feature release Git v2.1.0 is now available at the usual places. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.1.0' tag and the 'master' branch ... [More] that the tag points at: url = https://kernel.googlesource.com/pub/scm/git/git url = git://repo.or.cz/alt-git.git url = https://code.google.com/p/git-core/ url = git://git.sourceforge.jp/gitroot/git-core/git.git url = git://git-core.git.sourceforge.net/gitroot/git-core/git-core url = https://github.com/gitster/git Git v2.1 Release Notes ====================== Backward compatibility notes ---------------------------- * The default value we give to the environment variable LESS has been changed from "FRSX" to "FRX", losing "S" (chop long lines instead of wrapping). Existing users who prefer not to see line-wrapped output may want to set $ git config core.pager "less -S" to restore the traditional behaviour. It is expected that people find output from most subcommands easier to read with the new default, except for "blame" which tends to produce really long lines. To override the new default only for "git blame", you can do this: $ git config pager.blame "less -S" * A few disused directories in contrib/ have been retired. Updates since v2.0 ------------------ UI, Workflows & Features * Since the very beginning of Git, we gave the LESS environment a default value "FRSX" when we spawn "less" as the pager. "S" (chop long lines instead of wrapping) has been removed from this default set of options, because it is more or less a personal taste thing, as opposed to the others that have good justifications (i.e. "R" is very much justified because many kinds of output we produce are colored and "FX" is justified because output we produce is often shorter than a page). * The logic and data used to compute the display width needed for UTF-8 strings have been updated to match Unicode 7.0 better. * HTTP-based transports learned to better propagate the error messages from the webserver to the client coming over the HTTP transport. * The completion script for bash (in contrib/) has been updated to better handle aliases that define a complex sequence of commands. * The "core.preloadindex" configuration variable is enabled by default, allowing modern platforms to take advantage of their multiple cores. * "git clone" applies the "if cloning from a local disk, physically copy the repository using hardlinks, unless otherwise told not to with --no-local" optimization when the url.*.insteadOf mechanism rewrites a remote-repository "git clone $URL" into a clone from a local disk. * "git commit --date=" option learned more timestamp formats, including "--date=now". * The `core.commentChar` configuration variable is used to specify a custom comment character (other than the default "#") for the commit message editor. This can be set to `auto` to attempt to choose a different character that does not conflict with any that already starts a line in the message being edited, for cases like "git commit --amend". * "git format-patch" learned --signature-file= to add the contents of a file as a signature to the mail message it produces. * "git grep" learned the grep.fullname configuration variable to force "--full-name" to be the default. This may cause regressions for scripted users who do not expect this new behaviour. * "git imap-send" learned to ask the credential helper for auth material. * "git log" and friends now understand the value "auto" for the "log.decorate" configuration variable to enable the "--decorate" option automatically when the output is sent to tty. * "git merge" without an argument, even when there is an upstream defined for the current branch, refused to run until merge.defaultToUpstream is set to true. Flip the default of that configuration variable to true. * "git mergetool" learned to drive the vimdiff3 backend. * mergetool.prompt used to default to 'true', always asking "do you really want to run the tool on this path?". The default has been changed to 'false'. However, the prompt will still appear if mergetool used its autodetection system to guess which tool to use. Users who explicitly specify or configure a tool will no longer see the prompt by default. Strictly speaking, this is a backward incompatible change and users need to explicitly set the variable to 'true' if they want to be prompted to confirm running the tool on each path. * "git replace" learned the "--edit" subcommand to create a replacement by editing an existing object. * "git replace" learned a "--graft" option to rewrite the parents of a commit. * "git send-email" learned "--to-cover" and "--cc-cover" options, to tell it to copy To: and Cc: headers found in the first input file when emitting later input files. * "git svn" learned to cope with malformed timestamps with only one digit in the hour part, e.g. 2014-01-07T5:01:02.048176Z, emitted by some broken subversion server implementations. * "git tag" when editing the tag message shows the name of the tag being edited as a comment in the editor. * "git tag" learned to pay attention to "tag.sort" configuration, to be used as the default sort order when no --sort= option is given. * A new "git verify-commit" command, to check GPG signatures in signed commits, in a way similar to "git verify-tag" is used to check signed tags, was added. Performance, Internal Implementation, etc. * Build procedure for 'subtree' (in contrib/) has been cleaned up. * Support for the profile-feedback build, which has bit-rotted for quite a while, has been updated. * An experimental format to use two files (the base file and incremental changes relative to it) to represent the index has been introduced; this may reduce I/O cost of rewriting a large index when only small part of the working tree changes. * Effort to shrink the size of patches Windows folks maintain on top by upstreaming them continues. More tests that are not applicable to the Windows environment are identified and either skipped or made more portable. * Eradication of "test $condition -a $condition" from our scripts continues. * The `core.deltabasecachelimit` used to default to 16 MiB , but this proved to be too small, and has been bumped to 96 MiB. * "git blame" has been optimized greatly by reorganising the data structure that is used to keep track of the work to be done. * "git diff" that compares 3-or-more trees (e.g. parents and the result of a merge) has been optimized. * The API to update/delete references are being converted to handle updates to multiple references in a transactional way. As an example, "update-ref --stdin [-z]" has been updated to use this API. * skip_prefix() and strip_suffix() API functions are used a lot more widely throughout the codebase now. * Parts of the test scripts can be skipped by using a range notation, e.g. "sh t1234-test.sh --run='1-4 6 8-'" to omit test piece 5 and 7 and run everything else. Also contains various documentation updates and code clean-ups. Fixes since v2.0 ---------------- Unless otherwise noted, all the fixes since v2.0 in the maintenance track are contained in this release (see the maintenance releases' notes for details). * We used to unconditionally disable the pager in the pager process we spawn to feed out output, but that prevented people who want to run "less" within "less" from doing so. (merge c0459ca je/pager-do-not-recurse later to maint). * Tools that read diagnostic output in our standard error stream do not want to see terminal control sequence (e.g. erase-to-eol). Detect them by checking if the standard error stream is connected to a tty. (merge 38de156 mn/sideband-no-ansi later to maint). * Mishandling of patterns in .gitignore that have trailing SPs quoted with backslashes (e.g. ones that end with "\ ") has been corrected. (merge 97c1364be6b pb/trim-trailing-spaces later to maint). * Reworded the error message given upon a failure to open an existing loose object file due to e.g. permission issues; it was reported as the object being corrupt, but that is not quite true. (merge d6c8a05 jk/report-fail-to-read-objects-better later to maint). * "git log -2master" is a common typo that shows two commits starting from whichever random branch that is not 'master' that happens to be checked out currently. (merge e3fa568 jc/revision-dash-count-parsing later to maint). * Code to avoid adding the same alternate object store twice was subtly broken for a long time, but nobody seems to have noticed. (merge 80b4785 rs/fix-alt-odb-path-comparison later to maint). (merge 539e750 ek/alt-odb-entry-fix later to maint). * The "%<(10,trunc)%s" pretty format specifier in the log family of commands is used to truncate the string to a given length (e.g. 10 in the example) with padding to column-align the output, but did not take into account that number of bytes and number of display columns are different. (merge 7d50987 as/pretty-truncate later to maint). * "%G" (nothing after G) is an invalid pretty format specifier, but the parser did not notice it as garbage. (merge 958b2eb jk/pretty-G-format-fixes later to maint). * A handful of code paths had to read the commit object more than once when showing header fields that are usually not parsed. The internal data structure to keep track of the contents of the commit object has been updated to reduce the need for this double-reading, and to allow the caller find the length of the object. (merge 218aa3a jk/commit-buffer-length later to maint). * The "mailmap.file" configuration option did not support tilde expansion (i.e. ~user/path and ~/path). (merge 9352fd5 ow/config-mailmap-pathname later to maint). * The completion scripts (in contrib/) did not know about quite a few options that are common between "git merge" and "git pull", and a couple of options unique to "git merge". (merge 8fee872 jk/complete-merge-pull later to maint). * The unix-domain socket used by the sample credential cache daemon tried to unlink an existing stale one at a wrong path, if the path to the socket was given as an overlong path that does not fit in the sun_path member of the sockaddr_un structure. (merge 2869b3e rs/fix-unlink-unix-socket later to maint). * An ancient rewrite passed a wrong pointer to a curl library function in a rarely used code path. (merge 479eaa8 ah/fix-http-push later to maint). * "--ignore-space-change" option of "git apply" ignored the spaces at the beginning of lines too aggressively, which is inconsistent with the option of the same name that "diff" and "git diff" have. (merge 14d3bb4 jc/apply-ignore-whitespace later to maint). * "git blame" miscounted the number of columns needed to show localized timestamps, resulting in a jaggy left-side-edge for the source code lines in its output. (merge dd75553 jx/blame-align-relative-time later to maint). * "git blame" assigned the blame to the copy in the working-tree if the repository is set to core.autocrlf=input and the file used CRLF line endings. (merge 4d4813a bc/blame-crlf-test later to maint). * "git clone -b brefs/tags/bar" would have mistakenly thought we were following a single tag, even though it was a name of the branch, because it incorrectly used strstr(). (merge 60a5f5f jc/fix-clone-single-starting-at-a-tag later to maint). * "git commit --allow-empty-message -C $commit" did not work when the commit did not have any log message. (merge 076cbd6 jk/commit-C-pick-empty later to maint). * "git diff --find-copies-harder" sometimes pretended as if the mode bits have changed for paths that are marked with the assume-unchanged bit. (merge 5304810 jk/diff-files-assume-unchanged later to maint). * "filter-branch" left an empty single-parent commit that results when all parents of a merge commit get mapped to the same commit, even under "--prune-empty". (merge 79bc4ef cb/filter-branch-prune-empty-degenerate-merges later to maint). * "git format-patch" did not enforce the rule that the "--follow" option from the log/diff family of commands must be used with exactly one pathspec. (merge dd63f16 jk/diff-follow-must-take-one-pathspec later to maint). * "git gc --auto" was recently changed to run in the background to give control back early to the end-user sitting in front of the terminal, but it forgot that housekeeping involving reflogs should be done without other processes competing for accesses to the refs. (merge 62aad18 nd/daemonize-gc later to maint). * "git grep -O" to show the lines that hit in the pager did not work well with case insensitive search. We now spawn "less" with its "-I" option when it is used as the pager (which is the default). (merge f7febbe sk/spawn-less-case-insensitively-from-grep-O-i later to maint). * We used to disable threaded "git index-pack" on platforms without thread-safe pread(); use a different workaround for such platforms to allow threaded "git index-pack". (merge 3953949 nd/index-pack-one-fd-per-thread later to maint). * The error reporting from "git index-pack" has been improved to distinguish missing objects from type errors. (merge 77583e7 jk/index-pack-report-missing later to maint). * "log --show-signature" incorrectly decided the color to paint a mergetag that was and was not correctly validated. (merge 42c55ce mg/fix-log-mergetag-color later to maint). * "log --show-signature" did not pay attention to the "--graph" option. (merge cf3983d zk/log-graph-showsig later to maint). * "git mailinfo" used to read beyond the ends of header strings while parsing an incoming e-mail message to extract the patch. (merge b1a013d rs/mailinfo-header-cmp later to maint). * On a case insensitive filesystem, merge-recursive incorrectly deleted the file that is to be renamed to a name that is the same except for case differences. (merge baa37bf dt/merge-recursive-case-insensitive later to maint). * Merging changes into a file that ends in an incomplete line made the last line into a complete one, even when the other branch did not change anything around the end of file. (merge ba31180 mk/merge-incomplete-files later to maint). * "git pack-objects" unnecessarily copied the previous contents when extending the hashtable, even though it will populate the table from scratch anyway. (merge fb79947 rs/pack-objects-no-unnecessary-realloc later to maint). * Recent updates to "git repack" started to duplicate objects that are in packfiles marked with the .keep flag into the new packfile by mistake. (merge d078d85 jk/repack-pack-keep-objects later to maint). * "git rerere forget" did not work well when merge.conflictstyle was set to a non-default value. (merge de3d8bb fc/rerere-conflict-style later to maint). * "git remote rm" and "git remote prune" can involve removing many refs at once, which is not a very efficient thing to do when very many refs exist in the packed-refs file. (merge e6bea66 jl/remote-rm-prune later to maint). * "git log --exclude= --all | git shortlog" worked as expected, but "git shortlog --exclude= --all", which is supposed to be identical to the above pipeline, was not accepted at the command line argument parser level. (merge eb07774 jc/shortlog-ref-exclude later to maint). * The autostash mode of "git rebase -i" did not restore the dirty working tree state if the user aborted the interactive rebase by emptying the insn sheet. (merge ddb5432 rr/rebase-autostash-fix later to maint). * "git rebase --fork-point" did not filter out patch-identical commits correctly. * During "git rebase --merge", a conflicted patch could not be skipped with "--skip" if the next one also conflicted. (merge 95104c7 bc/fix-rebase-merge-skip later to maint). * "git show -s" (i.e. show log message only) used to incorrectly emit an extra blank line after a merge commit. (merge ad2f725 mk/show-s-no-extra-blank-line-for-merges later to maint). * "git status", even though it is a read-only operation, tries to update the index with refreshed lstat(2) info to optimize future accesses to the working tree opportunistically, but this could race with a "read-write" operation that modifies the index while it is running. Detect such a race and avoid overwriting the index. (merge 426ddee ym/fix-opportunistic-index-update-race later to maint). * "git status" (and "git commit") behaved as if changes in a modified submodule are not there if submodule.*.ignore configuration is set, which was misleading. The configuration is only to unclutter diff output during the course of development, and not to hide changes in the "status" output to cause the users forget to commit them. (merge c215d3d jl/status-added-submodule-is-never-ignored later to maint). * Documentation for "git submodule sync" forgot to say that the subcommand can take the "--recursive" option. (merge 9393ae7 mc/doc-submodule-sync-recurse later to maint). * "git update-index --cacheinfo" in 2.0 release crashed on a malformed command line. (merge c8e1ee4 jc/rev-parse-argh-dashed-multi-words later to maint). * The mode to run tests with HTTP server tests disabled was broken. (merge afa53fe na/no-http-test-in-the-middle later to maint). ---------------------------------------------------------------- Changes since v2.1.0-rc2 are as follows: Alexander Shopov (1): gitk: Updated Bulgarian translation (302t,0f,0u) Johannes Sixt (1): tests: fix negated test_i18ngrep calls Junio C Hamano (1): Git 2.1 Max Kirillov (1): gitk: Add keybinding to switch to parent commit -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html [Less]
Posted over 11 years ago by Junio C Hamano
A release candidate Git v2.1.0-rc2 is now available for testing at the usual places. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/testing/ The following public repositories all have a copy of the 'v2.1.0-rc2' tag and ... [More] the 'master' branch that the tag points at: url = https://kernel.googlesource.com/pub/scm/git/git url = git://repo.or.cz/alt-git.git url = https://code.google.com/p/git-core/ url = git://git.sourceforge.jp/gitroot/git-core/git.git url = git://git-core.git.sourceforge.net/gitroot/git-core/git-core url = https://github.com/gitster/git Git v2.1 Release Notes (draft) ============================== Backward compatibility notes ---------------------------- * The default value we give to the environment variable LESS has been changed from "FRSX" to "FRX", losing "S" (chop long lines instead of wrapping). Existing users who prefer not to see line-wrapped output may want to set $ git config core.pager "less -S" to restore the traditional behaviour. It is expected that people find output from most subcommands easier to read with the new default, except for "blame" which tends to produce really long lines. To override the new default only for "git blame", you can do this: $ git config pager.blame "less -S" * A few disused directories in contrib/ have been retired. Updates since v2.0 ------------------ UI, Workflows & Features * Since the very beginning of Git, we gave the LESS environment a default value "FRSX" when we spawn "less" as the pager. "S" (chop long lines instead of wrapping) has been removed from this default set of options, because it is more or less a personal taste thing, as opposed to the others that have good justifications (i.e. "R" is very much justified because many kinds of output we produce are colored and "FX" is justified because output we produce is often shorter than a page). * The logic and data used to compute the display width needed for UTF-8 strings have been updated to match Unicode 7.0 better. * HTTP-based transports learned to better propagate the error messages from the webserver to the client coming over the HTTP transport. * The completion script for bash (in contrib/) has been updated to better handle aliases that define a complex sequence of commands. * The "core.preloadindex" configuration variable is enabled by default, allowing modern platforms to take advantage of their multiple cores. * "git clone" applies the "if cloning from a local disk, physically copy the repository using hardlinks, unless otherwise told not to with --no-local" optimization when the url.*.insteadOf mechanism rewrites a remote-repository "git clone $URL" into a clone from a local disk. * "git commit --date=" option learned more timestamp formats, including "--date=now". * The `core.commentChar` configuration variable is used to specify a custom comment character (other than the default "#") for the commit message editor. This can be set to `auto` to attempt to choose a different character that does not conflict with any that already starts a line in the message being edited, for cases like "git commit --amend". * "git format-patch" learned --signature-file= to add the contents of a file as a signature to the mail message it produces. * "git grep" learned the grep.fullname configuration variable to force "--full-name" to be the default. This may cause regressions for scripted users who do not expect this new behaviour. * "git imap-send" learned to ask the credential helper for auth material. * "git log" and friends now understand the value "auto" for the "log.decorate" configuration variable to enable the "--decorate" option automatically when the output is sent to tty. * "git merge" without an argument, even when there is an upstream defined for the current branch, refused to run until merge.defaultToUpstream is set to true. Flip the default of that configuration variable to true. * "git mergetool" learned to drive the vimdiff3 backend. * mergetool.prompt used to default to 'true', always asking "do you really want to run the tool on this path?". The default has been changed to 'false'. However, the prompt will still appear if mergetool used its autodetection system to guess which tool to use. Users who explicitly specify or configure a tool will no longer see the prompt by default. Strictly speaking, this is a backward incompatible change and users need to explicitly set the variable to 'true' if they want to be prompted to confirm running the tool on each path. * "git replace" learned the "--edit" subcommand to create a replacement by editing an existing object. * "git replace" learned a "--graft" option to rewrite the parents of a commit. * "git send-email" learned "--to-cover" and "--cc-cover" options, to tell it to copy To: and Cc: headers found in the first input file when emitting later input files. * "git svn" learned to cope with malformed timestamps with only one digit in the hour part, e.g. 2014-01-07T5:01:02.048176Z, emitted by some broken subversion server implementations. * "git tag" when editing the tag message shows the name of the tag being edited as a comment in the editor. * "git tag" learned to pay attention to "tag.sort" configuration, to be used as the default sort order when no --sort= option is given. * A new "git verify-commit" command, to check GPG signatures in signed commits, in a way similar to "git verify-tag" is used to check signed tags, was added. Performance, Internal Implementation, etc. * Build procedure for 'subtree' (in contrib/) has been cleaned up. * Support for the profile-feedback build, which has bit-rotted for quite a while, has been updated. * An experimental format to use two files (the base file and incremental changes relative to it) to represent the index has been introduced; this may reduce I/O cost of rewriting a large index when only small part of the working tree changes. * Effort to shrink the size of patches Windows folks maintain on top by upstreaming them continues. More tests that are not applicable to the Windows environment are identified and either skipped or made more portable. * Eradication of "test $condition -a $condition" from our scripts continues. * The `core.deltabasecachelimit` used to default to 16 MiB , but this proved to be too small, and has been bumped to 96 MiB. * "git blame" has been optimized greatly by reorganising the data structure that is used to keep track of the work to be done. * "git diff" that compares 3-or-more trees (e.g. parents and the result of a merge) has been optimized. * The API to update/delete references are being converted to handle updates to multiple references in a transactional way. As an example, "update-ref --stdin [-z]" has been updated to use this API. * skip_prefix() and strip_suffix() API functions are used a lot more widely throughout the codebase now. * Parts of the test scripts can be skipped by using a range notation, e.g. "sh t1234-test.sh --run='1-4 6 8-'" to omit test piece 5 and 7 and run everything else. Also contains various documentation updates and code clean-ups. Fixes since v2.0 ---------------- Unless otherwise noted, all the fixes since v2.0 in the maintenance track are contained in this release (see the maintenance releases' notes for details). * We used to unconditionally disable the pager in the pager process we spawn to feed out output, but that prevented people who want to run "less" within "less" from doing so. (merge c0459ca je/pager-do-not-recurse later to maint). * Tools that read diagnostic output in our standard error stream do not want to see terminal control sequence (e.g. erase-to-eol). Detect them by checking if the standard error stream is connected to a tty. (merge 38de156 mn/sideband-no-ansi later to maint). * Mishandling of patterns in .gitignore that have trailing SPs quoted with backslashes (e.g. ones that end with "\ ") has been corrected. (merge 97c1364be6b pb/trim-trailing-spaces later to maint). * Reworded the error message given upon a failure to open an existing loose object file due to e.g. permission issues; it was reported as the object being corrupt, but that is not quite true. (merge d6c8a05 jk/report-fail-to-read-objects-better later to maint). * "git log -2master" is a common typo that shows two commits starting from whichever random branch that is not 'master' that happens to be checked out currently. (merge e3fa568 jc/revision-dash-count-parsing later to maint). * Code to avoid adding the same alternate object store twice was subtly broken for a long time, but nobody seems to have noticed. (merge 80b4785 rs/fix-alt-odb-path-comparison later to maint). (merge 539e750 ek/alt-odb-entry-fix later to maint). * The "%<(10,trunc)%s" pretty format specifier in the log family of commands is used to truncate the string to a given length (e.g. 10 in the example) with padding to column-align the output, but did not take into account that number of bytes and number of display columns are different. (merge 7d50987 as/pretty-truncate later to maint). * "%G" (nothing after G) is an invalid pretty format specifier, but the parser did not notice it as garbage. (merge 958b2eb jk/pretty-G-format-fixes later to maint). * A handful of code paths had to read the commit object more than once when showing header fields that are usually not parsed. The internal data structure to keep track of the contents of the commit object has been updated to reduce the need for this double-reading, and to allow the caller find the length of the object. (merge 218aa3a jk/commit-buffer-length later to maint). * The "mailmap.file" configuration option did not support tilde expansion (i.e. ~user/path and ~/path). (merge 9352fd5 ow/config-mailmap-pathname later to maint). * The completion scripts (in contrib/) did not know about quite a few options that are common between "git merge" and "git pull", and a couple of options unique to "git merge". (merge 8fee872 jk/complete-merge-pull later to maint). * The unix-domain socket used by the sample credential cache daemon tried to unlink an existing stale one at a wrong path, if the path to the socket was given as an overlong path that does not fit in the sun_path member of the sockaddr_un structure. (merge 2869b3e rs/fix-unlink-unix-socket later to maint). * An ancient rewrite passed a wrong pointer to a curl library function in a rarely used code path. (merge 479eaa8 ah/fix-http-push later to maint). * "--ignore-space-change" option of "git apply" ignored the spaces at the beginning of lines too aggressively, which is inconsistent with the option of the same name that "diff" and "git diff" have. (merge 14d3bb4 jc/apply-ignore-whitespace later to maint). * "git blame" miscounted the number of columns needed to show localized timestamps, resulting in a jaggy left-side-edge for the source code lines in its output. (merge dd75553 jx/blame-align-relative-time later to maint). * "git blame" assigned the blame to the copy in the working-tree if the repository is set to core.autocrlf=input and the file used CRLF line endings. (merge 4d4813a bc/blame-crlf-test later to maint). * "git clone -b brefs/tags/bar" would have mistakenly thought we were following a single tag, even though it was a name of the branch, because it incorrectly used strstr(). (merge 60a5f5f jc/fix-clone-single-starting-at-a-tag later to maint). * "git commit --allow-empty-message -C $commit" did not work when the commit did not have any log message. (merge 076cbd6 jk/commit-C-pick-empty later to maint). * "git diff --find-copies-harder" sometimes pretended as if the mode bits have changed for paths that are marked with the assume-unchanged bit. (merge 5304810 jk/diff-files-assume-unchanged later to maint). * "filter-branch" left an empty single-parent commit that results when all parents of a merge commit get mapped to the same commit, even under "--prune-empty". (merge 79bc4ef cb/filter-branch-prune-empty-degenerate-merges later to maint). * "git format-patch" did not enforce the rule that the "--follow" option from the log/diff family of commands must be used with exactly one pathspec. (merge dd63f16 jk/diff-follow-must-take-one-pathspec later to maint). * "git gc --auto" was recently changed to run in the background to give control back early to the end-user sitting in front of the terminal, but it forgot that housekeeping involving reflogs should be done without other processes competing for accesses to the refs. (merge 62aad18 nd/daemonize-gc later to maint). * "git grep -O" to show the lines that hit in the pager did not work well with case insensitive search. We now spawn "less" with its "-I" option when it is used as the pager (which is the default). (merge f7febbe sk/spawn-less-case-insensitively-from-grep-O-i later to maint). * We used to disable threaded "git index-pack" on platforms without thread-safe pread(); use a different workaround for such platforms to allow threaded "git index-pack". (merge 3953949 nd/index-pack-one-fd-per-thread later to maint). * The error reporting from "git index-pack" has been improved to distinguish missing objects from type errors. (merge 77583e7 jk/index-pack-report-missing later to maint). * "log --show-signature" incorrectly decided the color to paint a mergetag that was and was not correctly validated. (merge 42c55ce mg/fix-log-mergetag-color later to maint). * "log --show-signature" did not pay attention to the "--graph" option. (merge cf3983d zk/log-graph-showsig later to maint). * "git mailinfo" used to read beyond the ends of header strings while parsing an incoming e-mail message to extract the patch. (merge b1a013d rs/mailinfo-header-cmp later to maint). * On a case insensitive filesystem, merge-recursive incorrectly deleted the file that is to be renamed to a name that is the same except for case differences. (merge baa37bf dt/merge-recursive-case-insensitive later to maint). * Merging changes into a file that ends in an incomplete line made the last line into a complete one, even when the other branch did not change anything around the end of file. (merge ba31180 mk/merge-incomplete-files later to maint). * "git pack-objects" unnecessarily copied the previous contents when extending the hashtable, even though it will populate the table from scratch anyway. (merge fb79947 rs/pack-objects-no-unnecessary-realloc later to maint). * Recent updates to "git repack" started to duplicate objects that are in packfiles marked with the .keep flag into the new packfile by mistake. (merge d078d85 jk/repack-pack-keep-objects later to maint). * "git rerere forget" did not work well when merge.conflictstyle was set to a non-default value. (merge de3d8bb fc/rerere-conflict-style later to maint). * "git remote rm" and "git remote prune" can involve removing many refs at once, which is not a very efficient thing to do when very many refs exist in the packed-refs file. (merge e6bea66 jl/remote-rm-prune later to maint). * "git log --exclude= --all | git shortlog" worked as expected, but "git shortlog --exclude= --all", which is supposed to be identical to the above pipeline, was not accepted at the command line argument parser level. (merge eb07774 jc/shortlog-ref-exclude later to maint). * The autostash mode of "git rebase -i" did not restore the dirty working tree state if the user aborted the interactive rebase by emptying the insn sheet. (merge ddb5432 rr/rebase-autostash-fix later to maint). * "git rebase --fork-point" did not filter out patch-identical commits correctly. * During "git rebase --merge", a conflicted patch could not be skipped with "--skip" if the next one also conflicted. (merge 95104c7 bc/fix-rebase-merge-skip later to maint). * "git show -s" (i.e. show log message only) used to incorrectly emit an extra blank line after a merge commit. (merge ad2f725 mk/show-s-no-extra-blank-line-for-merges later to maint). * "git status", even though it is a read-only operation, tries to update the index with refreshed lstat(2) info to optimize future accesses to the working tree opportunistically, but this could race with a "read-write" operation that modifies the index while it is running. Detect such a race and avoid overwriting the index. (merge 426ddee ym/fix-opportunistic-index-update-race later to maint). * "git status" (and "git commit") behaved as if changes in a modified submodule are not there if submodule.*.ignore configuration is set, which was misleading. The configuration is only to unclutter diff output during the course of development, and not to hide changes in the "status" output to cause the users forget to commit them. (merge c215d3d jl/status-added-submodule-is-never-ignored later to maint). * Documentation for "git submodule sync" forgot to say that the subcommand can take the "--recursive" option. (merge 9393ae7 mc/doc-submodule-sync-recurse later to maint). * "git update-index --cacheinfo" in 2.0 release crashed on a malformed command line. (merge c8e1ee4 jc/rev-parse-argh-dashed-multi-words later to maint). * The mode to run tests with HTTP server tests disabled was broken. (merge afa53fe na/no-http-test-in-the-middle later to maint). ---------------------------------------------------------------- Changes since v2.1.0-rc1 are as follows: Junio C Hamano (2): RelNotes: no more check_ref_format micro-optimization Git 2.1-rc2 Marc Branchaud (1): Release notes: grammatical fixes Stefan Beller (1): various contrib: Fix links in man pages -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html [Less]
Posted over 11 years ago by Junio C Hamano
v2.1.0-rc1, the first release candidate Git for v2.1, is now available for testing at the usual places. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/testing/ The following public repositories all have a copy of the ... [More] 'v2.1.0-rc1' tag and the 'master' branch that the tag points at: url = https://kernel.googlesource.com/pub/scm/git/git url = git://repo.or.cz/alt-git.git url = https://code.google.com/p/git-core/ url = git://git.sourceforge.jp/gitroot/git-core/git.git url = git://git-core.git.sourceforge.net/gitroot/git-core/git-core url = https://github.com/gitster/git Git v2.1 Release Notes (draft) ============================== Backward compatibility notes ---------------------------- * The default value we give to the environment variable LESS has been changed from "FRSX" to "FRX", losing "S" (chop long lines instead of wrapping). Existing users who prefer not to see line-wrapped output may want to set $ git config core.pager "less -S" to restore the traditional behaviour. It is expected that people find output from the most subcommands easier to read with the new default, except for "blame" which tends to produce really long lines. To override the new default only for "git blame", you can do this: $ git config pager.blame "less -S" * A few disused directories in contrib/ have been retired. Updates since v2.0 ------------------ UI, Workflows & Features * Since the very beginning of Git, we gave the LESS environment a default value "FRSX" when we spawn "less" as the pager. "S" (chop long lines instead of wrapping) has been removed from this default set of options, because it is more or less a personal taste thing, as opposed to others that have good justifications (i.e. "R" is very much justified because many kinds of output we produce are colored and "FX" is justified because output we produce is often shorter than a page). * The logic and data used to compute the display width needed for UTF-8 strings have been updated to match Unicode 7.0 better. * HTTP-based transports learned to propagate the error messages from the webserver better to the client coming over the HTTP transport. * The completion script for bash (in contrib/) has been updated to handle aliases that define complex sequence of commands better. * The "core.preloadindex" configuration variable is by default enabled, allowing modern platforms to take advantage of the multiple cores they have. * "git clone" applies the "if cloning from a local disk, physically copy repository using hardlinks, unless otherwise told not to with --no-local" optimization when url.*.insteadOf mechanism rewrites a "git clone $URL" that refers to a repository over the network to a clone from a local disk. * "git commit --date=" option learned to read from more timestamp formats, including "--date=now". * The `core.commentChar` configuration variable is used to specify a custom comment character other than the default "#" to be used in the commit log editor. This can be set to `auto` to attempt to choose a different character that does not conflict with what already starts a line in the message being edited for cases like "git commit --amend". * "git format-patch" learned --signature-file= to take the mail signature from. * "git grep" learned grep.fullname configuration variable to force "--full-name" to be default. This may cause regressions on scripted users that do not expect this new behaviour. * "git imap-send" learned to ask the credential helper for auth material. * "git log" and friends now understand the value "auto" set to the "log.decorate" configuration variable to enable the "--decorate" option automatically when the output is sent to tty. * "git merge" without argument, even when there is an upstream defined for the current branch, refused to run until merge.defaultToUpstream is set to true. Flip the default of that configuration variable to true. * "git mergetool" learned to drive the vimdiff3 backend. * mergetool.prompt used to default to 'true', always asking "do you really want to run the tool on this path?". Among the two purposes this prompt serves, ignore the use case to confirm that the user wants to view particular path with the named tool, and redefine the meaning of the prompt only to confirm the choice of the tool made by the autodetection (for those who configured the tool explicitly, the prompt shown for the latter purpose is simply annoying). Strictly speaking, this is a backward incompatible change and the users need to explicitly set the variable to 'true' if they want to resurrect the now-ignored use case. * "git replace" learned the "--edit" subcommand to create a replacement by editing an existing object. * "git replace" learned a "--graft" option to rewrite parents of a commit. * "git send-email" learned "--to-cover" and "--cc-cover" options, to tell it to copy To: and Cc: headers found in the first input file when emitting later input files. * "git svn" learned to cope with malformed timestamps with only one digit in the hour part, e.g. 2014-01-07T5:01:02.048176Z, emitted by some broken subversion server implementations. * "git tag" when editing the tag message shows the name of the tag being edited as a comment in the editor. * "git tag" learned to pay attention to "tag.sort" configuration, to be used as the default sort order when no --sort= the option is given. * "git verify-commit" command to check GPG signature in signed commits, in a way similar to "git verify-tag" is used to check signed tags, was added. Performance, Internal Implementation, etc. * Build procedure for 'subtree' (in contrib/) has been cleaned up. * The support for the profile-feedback build, which has been left bit-rotten for quite a while, has been updated. * An experimental format to use two files (the base file and incremental changes relative to it) to represent the index has been introduced; this may reduce I/O cost of rewriting a large index when only small part of the working tree changes. * Effort to shrink the size of patches Windows folks maintain on top by upstreaming them continues. More tests that are not applicable to the Windows environment are identified and either skipped or made more portable. * Eradication of "test $condition -a $condition" from our scripts continues. * The leaf function to check validity of a refname format has been micro-optimized, using SSE2 instructions when available. A few breakages during its development have been caught and fixed already but there might remain some more still; please test and report if you find any. * The `core.deltabasecachelimit` used to default to 16 MiB , but this proved to be too small, and has been bumped to 96 MiB. * "git blame" has been optimized greatly by reorganising the data structure that is used to keep track of the work to be done. * "git diff" that compares 3-or-more trees (e.g. parents and the result of a merge) have been optimized. * The API to update/delete references are being converted to handle updates to multiple references in a transactional way. As an example, "update-ref --stdin [-z]" has been updated to use this API. * skip_prefix() and strip_suffix() API functions are used a lot more widely throughout the codebase now. * Parts of the test scripts can be skipped by using a range notation, e.g. "sh t1234-test.sh --run='1-4 6 8-'" to omit test piece 5 and 7 and run everything else. Also contains various documentation updates and code clean-ups. Fixes since v2.0 ---------------- Unless otherwise noted, all the fixes since v2.0 in the maintenance track are contained in this release (see the maintenance releases' notes for details). * We used to unconditionally disable the pager in the pager process we spawn to feed out output, but that prevented people who want to run "less" within "less" from doing so. (merge c0459ca je/pager-do-not-recurse later to maint). * Tools that read diagnostic output in our standard error stream do not want to see terminal control sequence (e.g. erase-to-eol). Detect them by checking if the standard error stream is connected to a tty. (merge 38de156 mn/sideband-no-ansi later to maint). * Mishandling of patterns in .gitignore that has trailing SPs quoted with backslashes (e.g. ones that end with "\ ") have been corrected. (merge 97c1364be6b pb/trim-trailing-spaces later to maint). * Reworded the error message given upon a failure to open an existing loose object file due to e.g. permission issues; it was reported as the object being corrupt, but that is not quite true. (merge d6c8a05 jk/report-fail-to-read-objects-better later to maint). * "git log -2master" is a common typo that shows two commits starting from whichever random branch that is not 'master' that happens to be checked out currently. (merge e3fa568 jc/revision-dash-count-parsing later to maint). * Code to avoid adding the same alternate object store twice was subtly broken for a long time, but nobody seems to have noticed. (merge 80b4785 rs/fix-alt-odb-path-comparison later to maint). (merge 539e750 ek/alt-odb-entry-fix later to maint). * The "%<(10,trunc)%s" pretty format specifier in the log family of commands is used to truncate the string to a given length (e.g. 10 in the example) with padding to column-align the output, but did not take into account that number of bytes and number of display columns are different. (merge 7d50987 as/pretty-truncate later to maint). * "%G" (nothing after G) is an invalid pretty format specifier, but the parser did not notice it as garbage. (merge 958b2eb jk/pretty-G-format-fixes later to maint). * A handful of code paths had to read the commit object more than once when showing header fields that are usually not parsed. The internal data structure to keep track of the contents of the commit object has been updated to reduce the need for this double-reading, and to allow the caller find the length of the object. (merge 218aa3a jk/commit-buffer-length later to maint). * The "mailmap.file" configuration option did not support the tilde expansion (i.e. ~user/path and ~/path). (merge 9352fd5 ow/config-mailmap-pathname later to maint). * The completion scripts (in contrib/) did not know about quite a few options that are common between "git merge" and "git pull", and a couple of options unique to "git merge". (merge 8fee872 jk/complete-merge-pull later to maint). * The unix-domain socket used by the sample credential cache daemon tried to unlink an existing stale one at a wrong path, if the path to the socket was given as an overlong path that does not fit in sun_path member of the sockaddr_un structure. (merge 2869b3e rs/fix-unlink-unix-socket later to maint). * An ancient rewrite passed a wrong pointer to a curl library function in a rarely used code path. (merge 479eaa8 ah/fix-http-push later to maint). * "--ignore-space-change" option of "git apply" ignored the spaces at the beginning of line too aggressively, which is inconsistent with the option of the same name "diff" and "git diff" have. (merge 14d3bb4 jc/apply-ignore-whitespace later to maint). * "git blame" miscounted number of columns needed to show localized timestamps, resulting in jaggy left-side-edge of the source code lines in its output. (merge dd75553 jx/blame-align-relative-time later to maint). * "git blame" assigned the blame to the copy in the working-tree if the repository is set to core.autocrlf=input and the file used CRLF line endings. (merge 4d4813a bc/blame-crlf-test later to maint). * "git clone -b brefs/tags/bar" would have mistakenly thought we were following a single tag, even though it was a name of the branch, because it incorrectly used strstr(). (merge 60a5f5f jc/fix-clone-single-starting-at-a-tag later to maint). * "git commit --allow-empty-messag -C $commit" did not work when the commit did not have any log message. (merge 076cbd6 jk/commit-C-pick-empty later to maint). * "git diff --find-copies-harder" sometimes pretended as if the mode bits have changed for paths that are marked with assume-unchanged bit. (merge 5304810 jk/diff-files-assume-unchanged later to maint). * "filter-branch" left an empty single-parent commit that results when all parents of a merge commit gets mapped to the same commit, even under "--prune-empty". (merge 79bc4ef cb/filter-branch-prune-empty-degenerate-merges later to maint). * "git format-patch" did not enforce the rule that the "--follow" option from the log/diff family of commands must be used with exactly one pathspec. (merge dd63f16 jk/diff-follow-must-take-one-pathspec later to maint). * "git gc --auto" was recently changed to run in the background to give control back early to the end-user sitting in front of the terminal, but it forgot that housekeeping involving reflogs should be done without other processes competing for accesses to the refs. (merge 62aad18 nd/daemonize-gc later to maint). * "git grep -O" to show the lines that hit in the pager did not work well with case insensitive search. We now spawn "less" with its "-I" option when it is used as the pager (which is the default). (merge f7febbe sk/spawn-less-case-insensitively-from-grep-O-i later to maint). * We used to disable threaded "git index-pack" on platforms without thread-safe pread(); use a different workaround for such platforms to allow threaded "git index-pack". (merge 3953949 nd/index-pack-one-fd-per-thread later to maint). * The error reporting from "git index-pack" has been improved to distinguish missing objects from type errors. (merge 77583e7 jk/index-pack-report-missing later to maint). * "log --show-signature" incorrectly decided the color to paint a mergetag that was and was not correctly validated. (merge 42c55ce mg/fix-log-mergetag-color later to maint). * "log --show-signature" did not pay attention to "--graph" option. (merge cf3983d zk/log-graph-showsig later to maint). * "git mailinfo" used to read beyond the end of header string while parsing an incoming e-mail message to extract the patch. (merge b1a013d rs/mailinfo-header-cmp later to maint). * On a case insensitive filesystem, merge-recursive incorrectly deleted the file that is to be renamed to a name that is the same except for case differences. (merge baa37bf dt/merge-recursive-case-insensitive later to maint). * Merging changes into a file that ends in an incomplete line made the last line into a complete one, even when the other branch did not change anything around the end of file. (merge ba31180 mk/merge-incomplete-files later to maint). * "git pack-objects" unnecessarily copied the previous contents when extending the hashtable, even though it will populate the table from scratch anyway. (merge fb79947 rs/pack-objects-no-unnecessary-realloc later to maint). * Recent updates to "git repack" started to duplicate objects that are in packfiles marked with .keep flag into the new packfile by mistake. (merge d078d85 jk/repack-pack-keep-objects later to maint). * "git rerere forget" did not work well when merge.conflictstyle was set to a non-default value. (merge de3d8bb fc/rerere-conflict-style later to maint). * "git remote rm" and "git remote prune" can involve removing many refs at once, which is not a very efficient thing to do when very many refs exist in the packed-refs file. (merge e6bea66 jl/remote-rm-prune later to maint). * "git log --exclude= --all | git shortlog" worked as expected, but "git shortlog --exclude= --all", which is supposed to be identical to the above pipeline, was not accepted at the command line argument parser level. (merge eb07774 jc/shortlog-ref-exclude later to maint). * The autostash mode of "git rebase -i" did not restore the dirty working tree state if the user aborted the interactive rebase by emptying the insn sheet. (merge ddb5432 rr/rebase-autostash-fix later to maint). * "git rebase --fork-point" did not filter out patch-identical commits correctly. * During "git rebase --merge", a conflicted patch could not be skipped with "--skip" if the next one also conflicted. (merge 95104c7 bc/fix-rebase-merge-skip later to maint). * "git show -s" (i.e. show log message only) used to incorrectly emit an extra blank line after a merge commit. (merge ad2f725 mk/show-s-no-extra-blank-line-for-merges later to maint). * "git status", even though it is a read-only operation, tries to update the index with refreshed lstat(2) info to optimize future accesses to the working tree opportunistically, but this could race with a "read-write" operation that modify the index while it is running. Detect such a race and avoid overwriting the index. (merge 426ddee ym/fix-opportunistic-index-update-race later to maint). * "git status" (and "git commit") behaved as if changes in a modified submodule are not there if submodule.*.ignore configuration is set, which was misleading. The configuration is only to unclutter diff output during the course of development, and should not to hide changes in the "status" output to cause the users forget to commit them. (merge c215d3d jl/status-added-submodule-is-never-ignored later to maint). * Documentation for "git submodule sync" forgot to say that the subcommand can take the "--recursive" option. (merge 9393ae7 mc/doc-submodule-sync-recurse later to maint). * "git update-index --cacheinfo" in 2.0 release crashed on a malformed command line. (merge c8e1ee4 jc/rev-parse-argh-dashed-multi-words later to maint). * The mode to run tests with HTTP server tests disabled was broken. (merge afa53fe na/no-http-test-in-the-middle later to maint). ---------------------------------------------------------------- Changes since v2.1.0-rc0 are as follows: Fabian Ruch (1): commit --amend: test specifies authorship but forgets to check Jeff King (14): receive-pack: don't copy "dir" parameter free ref string returned by dwim_ref transport: fix leaks in refs_from_alternate_cb fix memory leak parsing core.commentchar apply: avoid possible bogus pointer alloc: write out allocator definitions move setting of object->type to alloc_* functions parse_object_buffer: do not set object type add object_as_type helper for casting objects alloc: factor out commit index object_as_type: set commit index diff-tree: avoid lookup_unknown_object t1402: check for refs ending with a dot t4013: test diff-tree's --stdin commit formatting Johannes Schindelin (1): MinGW: Skip test redirecting to fd 4 John Keeping (3): completion: complete "unstuck" `git push --recurse-submodules` completion: add some missing options to `git push` completion: complete `git push --force-with-lease=` Junio C Hamano (6): t9814: fix misconversion from test $a -o $b to test $a || test $b Revert "Merge branch 'dt/refs-check-refname-component-sse-fix'" Revert "Merge branch 'dt/refs-check-refname-component-sse'" Git 2.0.4 Update draft release notes to 2.1 Git 2.1.0-rc1 Karsten Blees (16): Revert "Windows: teach getenv to do a case-sensitive search" Win32: Unicode environment (outgoing) Win32: Unicode environment (incoming) Win32: fix environment memory leaks Win32: unify environment case-sensitivity Win32: unify environment function names Win32: factor out environment block creation Win32: don't copy the environment twice when spawning child processes Win32: reduce environment array reallocations Win32: use low-level memory allocation during initialization Win32: keep the environment sorted Win32: patch Windows environment on startup Win32: enable color output in Windows cmd.exe t0110/MinGW: skip tests that pass arbitrary bytes on the command line MinGW: disable legacy encoding tests t800[12]: work around MSys limitation Pat Thoyts (3): tests: do not pass iso8859-1 encoded parameter t4210: skip command-line encoding tests on mingw t9902: mingw-specific fix for gitfile link files Ramsay Allan Jones (1): alloc.c: remove the alloc_raw_commit_node() function Tanay Abhra (1): add documentation for writing config files Tony Finch (1): git-push: fix link in man page -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html [Less]
Posted over 11 years ago by Junio C Hamano
The latest maintenance release Git v2.0.4 is now available at the usual places. This is primarily to fix a regression of "git diff-tree" in v2.0.2. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public ... [More] repositories all have a copy of the 'v2.0.4' tag and the 'maint' branch that the tag points at: url = https://kernel.googlesource.com/pub/scm/git/git url = git://repo.or.cz/alt-git.git url = https://code.google.com/p/git-core/ url = git://git.sourceforge.jp/gitroot/git-core/git.git url = git://git-core.git.sourceforge.net/gitroot/git-core/git-core url = https://github.com/gitster/git Git v2.0.4 Release Notes ======================== * An earlier update to v2.0.2 broken output from "git diff-tree", which is fixed in this release. ---------------------------------------------------------------- Changes since v2.0.3 are as follows: Fabian Ruch (1): commit --amend: test specifies authorship but forgets to check Jeff King (8): alloc: write out allocator definitions move setting of object->type to alloc_* functions parse_object_buffer: do not set object type add object_as_type helper for casting objects alloc: factor out commit index object_as_type: set commit index diff-tree: avoid lookup_unknown_object t4013: test diff-tree's --stdin commit formatting Junio C Hamano (1): Git 2.0.4 Ramsay Allan Jones (1): alloc.c: remove the alloc_raw_commit_node() function -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html [Less]
Posted over 11 years ago by Junio C Hamano
An early preview release Git v2.1.0-rc0 is now available for testing at the usual places. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/testing/ The following public repositories all have a copy of the 'v2.1.0-rc0' tag ... [More] and the 'master' branch that the tag points at: url = https://kernel.googlesource.com/pub/scm/git/git url = git://repo.or.cz/alt-git.git url = https://code.google.com/p/git-core/ url = git://git.sourceforge.jp/gitroot/git-core/git.git url = git://git-core.git.sourceforge.net/gitroot/git-core/git-core url = https://github.com/gitster/git Git v2.1 Release Notes (draft) ============================== Backward compatibility notes ---------------------------- * The default value we give to the environment variable LESS has been changed from "FRSX" to "FRX", losing "S" (chop long lines instead of wrapping). Existing users who prefer not to see line-wrapped output may want to set $ git config core.pager "less -S" to restore the traditional behaviour. It is expected that people find output from the most subcommands easier to read with the new default, except for "blame" which tends to produce really long lines. To override the new default only for "git blame", you can do this: $ git config pager.blame "less -S" * A few disused directories in contrib/ have been retired. Updates since v2.0 ------------------ UI, Workflows & Features * Since the very beginning of Git, we gave the LESS environment a default value "FRSX" when we spawn "less" as the pager. "S" (chop long lines instead of wrapping) has been removed from this default set of options, because it is more or less a personal taste thing, as opposed to others that have good justifications (i.e. "R" is very much justified because many kinds of output we produce are colored and "FX" is justified because output we produce is often shorter than a page). * The logic and data used to compute the display width needed for UTF-8 strings have been updated to match Unicode 7.0 better. * HTTP-based transports learned to propagate the error messages from the webserver better to the client coming over the HTTP transport. * The completion script for bash (in contrib/) has been updated to handle aliases that define complex sequence of commands better. * The "core.preloadindex" configuration variable is by default enabled, allowing modern platforms to take advantage of the multiple cores they have. * "git clone" applies the "if cloning from a local disk, physically copy repository using hardlinks, unless otherwise told not to with --no-local" optimization when url.*.insteadOf mechanism rewrites a "git clone $URL" that refers to a repository over the network to a clone from a local disk. * "git commit --date=" option learned to read from more timestamp formats, including "--date=now". * The `core.commentChar` configuration variable is used to specify a custom comment character other than the default "#" to be used in the commit log editor. This can be set to `auto` to attempt to choose a different character that does not conflict with what already starts a line in the message being edited for cases like "git commit --amend". * "git format-patch" learned --signature-file= to take the mail signature from. * "git grep" learned grep.fullname configuration variable to force "--full-name" to be default. This may cause regressions on scripted users that do not expect this new behaviour. * "git imap-send" learned to ask the credential helper for auth material. * "git log" and friends now understand the value "auto" set to the "log.decorate" configuration variable to enable the "--decorate" option automatically when the output is sent to tty. * "git merge" without argument, even when there is an upstream defined for the current branch, refused to run until merge.defaultToUpstream is set to true. Flip the default of that configuration variable to true. * "git mergetool" learned to drive the vimdiff3 backend. * mergetool.prompt used to default to 'true', always asking "do you really want to run the tool on this path?". Among the two purposes this prompt serves, ignore the use case to confirm that the user wants to view particular path with the named tool, and redefine the meaning of the prompt only to confirm the choice of the tool made by the autodetection (for those who configured the tool explicitly, the prompt shown for the latter purpose is simply annoying). Strictly speaking, this is a backward incompatible change and the users need to explicitly set the variable to 'true' if they want to resurrect the now-ignored use case. * "git replace" learned the "--edit" subcommand to create a replacement by editing an existing object. * "git replace" learned a "--graft" option to rewrite parents of a commit. * "git send-email" learned "--to-cover" and "--cc-cover" options, to tell it to copy To: and Cc: headers found in the first input file when emitting later input files. * "git svn" learned to cope with malformed timestamps with only one digit in the hour part, e.g. 2014-01-07T5:01:02.048176Z, emitted by some broken subversion server implementations. * "git tag" when editing the tag message shows the name of the tag being edited as a comment in the editor. * "git tag" learned to pay attention to "tag.sort" configuration, to be used as the default sort order when no --sort= the option is given. * "git verify-commit" command to check GPG signature in signed commits, in a way similar to "git verify-tag" is used to check signed tags, was added. Performance, Internal Implementation, etc. * Build procedure for 'subtree' (in contrib/) has been cleaned up. * The support for the profile-feedback build, which has been left bit-rotten for quite a while, has been updated. * An experimental format to use two files (the base file and incremental changes relative to it) to represent the index has been introduced; this may reduce I/O cost of rewriting a large index when only small part of the working tree changes. * Effort to shrink the size of patches Windows folks maintain on top by upstreaming them continues. * Patches maintained by msysgit folks for Windows port are being upstreamed here a bit by bit. * The leaf function to check validity of a refname format has been micro-optimized, using SSE2 instructions when available. A few breakages during its development have been caught and fixed already but there might remain some more still; please test and report if you find any. * The `core.deltabasecachelimit` used to default to 16 MiB , but this proved to be too small, and has been bumped to 96 MiB. * "git blame" has been optimized greatly by reorganising the data structure that is used to keep track of the work to be done. * "git diff" that compares 3-or-more trees (e.g. parents and the result of a merge) have been optimized. * The API to update/delete references are being converted to handle updates to multiple references in a transactional way. As an example, "update-ref --stdin [-z]" has been updated to use this API. * skip_prefix() and strip_suffix() API functions are used a lot more widely throughout the codebase now. * Parts of the test scripts can be skipped by using a range notation, e.g. "sh t1234-test.sh --run='1-4 6 8-'" to omit test piece 5 and 7 and run everything else. Also contains various documentation updates and code clean-ups. Fixes since v2.0 ---------------- Unless otherwise noted, all the fixes since v2.0 in the maintenance track are contained in this release (see the maintenance releases' notes for details). * We used to unconditionally disable the pager in the pager process we spawn to feed out output, but that prevented people who want to run "less" within "less" from doing so. (merge c0459ca je/pager-do-not-recurse later to maint). * Tools that read diagnostic output in our standard error stream do not want to see terminal control sequence (e.g. erase-to-eol). Detect them by checking if the standard error stream is connected to a tty. (merge 38de156 mn/sideband-no-ansi later to maint). * Mishandling of patterns in .gitignore that has trailing SPs quoted with backslashes (e.g. ones that end with "\ ") have been corrected. (merge 97c1364be6b pb/trim-trailing-spaces later to maint). * Reworded the error message given upon a failure to open an existing loose object file due to e.g. permission issues; it was reported as the object being corrupt, but that is not quite true. (merge d6c8a05 jk/report-fail-to-read-objects-better later to maint). * "git log -2master" is a common typo that shows two commits starting from whichever random branch that is not 'master' that happens to be checked out currently. (merge e3fa568 jc/revision-dash-count-parsing later to maint). * Code to avoid adding the same alternate object store twice was subtly broken for a long time, but nobody seems to have noticed. (merge 80b4785 rs/fix-alt-odb-path-comparison later to maint). (merge 539e750 ek/alt-odb-entry-fix later to maint). * The "%<(10,trunc)%s" pretty format specifier in the log family of commands is used to truncate the string to a given length (e.g. 10 in the example) with padding to column-align the output, but did not take into account that number of bytes and number of display columns are different. (merge 7d50987 as/pretty-truncate later to maint). * "%G" (nothing after G) is an invalid pretty format specifier, but the parser did not notice it as garbage. (merge 958b2eb jk/pretty-G-format-fixes later to maint). * A handful of code paths had to read the commit object more than once when showing header fields that are usually not parsed. The internal data structure to keep track of the contents of the commit object has been updated to reduce the need for this double-reading, and to allow the caller find the length of the object. (merge 218aa3a jk/commit-buffer-length later to maint). * The "mailmap.file" configuration option did not support the tilde expansion (i.e. ~user/path and ~/path). (merge 9352fd5 ow/config-mailmap-pathname later to maint). * The completion scripts (in contrib/) did not know about quite a few options that are common between "git merge" and "git pull", and a couple of options unique to "git merge". (merge 8fee872 jk/complete-merge-pull later to maint). * The unix-domain socket used by the sample credential cache daemon tried to unlink an existing stale one at a wrong path, if the path to the socket was given as an overlong path that does not fit in sun_path member of the sockaddr_un structure. (merge 2869b3e rs/fix-unlink-unix-socket later to maint). * An ancient rewrite passed a wrong pointer to a curl library function in a rarely used code path. (merge 479eaa8 ah/fix-http-push later to maint). * "--ignore-space-change" option of "git apply" ignored the spaces at the beginning of line too aggressively, which is inconsistent with the option of the same name "diff" and "git diff" have. (merge 14d3bb4 jc/apply-ignore-whitespace later to maint). * "git blame" miscounted number of columns needed to show localized timestamps, resulting in jaggy left-side-edge of the source code lines in its output. (merge dd75553 jx/blame-align-relative-time later to maint). * "git blame" assigned the blame to the copy in the working-tree if the repository is set to core.autocrlf=input and the file used CRLF line endings. (merge 4d4813a bc/blame-crlf-test later to maint). * "git clone -b brefs/tags/bar" would have mistakenly thought we were following a single tag, even though it was a name of the branch, because it incorrectly used strstr(). (merge 60a5f5f jc/fix-clone-single-starting-at-a-tag later to maint). * "git commit --allow-empty-messag -C $commit" did not work when the commit did not have any log message. (merge 076cbd6 jk/commit-C-pick-empty later to maint). * "git diff --find-copies-harder" sometimes pretended as if the mode bits have changed for paths that are marked with assume-unchanged bit. (merge 5304810 jk/diff-files-assume-unchanged later to maint). * "filter-branch" left an empty single-parent commit that results when all parents of a merge commit gets mapped to the same commit, even under "--prune-empty". (merge 79bc4ef cb/filter-branch-prune-empty-degenerate-merges later to maint). * "git format-patch" did not enforce the rule that the "--follow" option from the log/diff family of commands must be used with exactly one pathspec. (merge dd63f16 jk/diff-follow-must-take-one-pathspec later to maint). * "git gc --auto" was recently changed to run in the background to give control back early to the end-user sitting in front of the terminal, but it forgot that housekeeping involving reflogs should be done without other processes competing for accesses to the refs. (merge 62aad18 nd/daemonize-gc later to maint). * "git grep -O" to show the lines that hit in the pager did not work well with case insensitive search. We now spawn "less" with its "-I" option when it is used as the pager (which is the default). (merge f7febbe sk/spawn-less-case-insensitively-from-grep-O-i later to maint). * We used to disable threaded "git index-pack" on platforms without thread-safe pread(); use a different workaround for such platforms to allow threaded "git index-pack". (merge 3953949 nd/index-pack-one-fd-per-thread later to maint). * The error reporting from "git index-pack" has been improved to distinguish missing objects from type errors. (merge 77583e7 jk/index-pack-report-missing later to maint). * "log --show-signature" incorrectly decided the color to paint a mergetag that was and was not correctly validated. (merge 42c55ce mg/fix-log-mergetag-color later to maint). * "log --show-signature" did not pay attention to "--graph" option. (merge cf3983d zk/log-graph-showsig later to maint). * "git mailinfo" used to read beyond the end of header string while parsing an incoming e-mail message to extract the patch. (merge b1a013d rs/mailinfo-header-cmp later to maint). * On a case insensitive filesystem, merge-recursive incorrectly deleted the file that is to be renamed to a name that is the same except for case differences. (merge baa37bf dt/merge-recursive-case-insensitive later to maint). * Merging changes into a file that ends in an incomplete line made the last line into a complete one, even when the other branch did not change anything around the end of file. (merge ba31180 mk/merge-incomplete-files later to maint). * "git pack-objects" unnecessarily copied the previous contents when extending the hashtable, even though it will populate the table from scratch anyway. (merge fb79947 rs/pack-objects-no-unnecessary-realloc later to maint). * Recent updates to "git repack" started to duplicate objects that are in packfiles marked with .keep flag into the new packfile by mistake. (merge d078d85 jk/repack-pack-keep-objects later to maint). * "git rerere forget" did not work well when merge.conflictstyle was set to a non-default value. (merge de3d8bb fc/rerere-conflict-style later to maint). * "git remote rm" and "git remote prune" can involve removing many refs at once, which is not a very efficient thing to do when very many refs exist in the packed-refs file. (merge e6bea66 jl/remote-rm-prune later to maint). * "git log --exclude= --all | git shortlog" worked as expected, but "git shortlog --exclude= --all", which is supposed to be identical to the above pipeline, was not accepted at the command line argument parser level. (merge eb07774 jc/shortlog-ref-exclude later to maint). * The autostash mode of "git rebase -i" did not restore the dirty working tree state if the user aborted the interactive rebase by emptying the insn sheet. (merge ddb5432 rr/rebase-autostash-fix later to maint). * "git rebase --fork-point" did not filter out patch-identical commits correctly. * During "git rebase --merge", a conflicted patch could not be skipped with "--skip" if the next one also conflicted. (merge 95104c7 bc/fix-rebase-merge-skip later to maint). * "git show -s" (i.e. show log message only) used to incorrectly emit an extra blank line after a merge commit. (merge ad2f725 mk/show-s-no-extra-blank-line-for-merges later to maint). * "git status", even though it is a read-only operation, tries to update the index with refreshed lstat(2) info to optimize future accesses to the working tree opportunistically, but this could race with a "read-write" operation that modify the index while it is running. Detect such a race and avoid overwriting the index. (merge 426ddee ym/fix-opportunistic-index-update-race later to maint). * "git status" (and "git commit") behaved as if changes in a modified submodule are not there if submodule.*.ignore configuration is set, which was misleading. The configuration is only to unclutter diff output during the course of development, and should not to hide changes in the "status" output to cause the users forget to commit them. (merge c215d3d jl/status-added-submodule-is-never-ignored later to maint). * Documentation for "git submodule sync" forgot to say that the subcommand can take the "--recursive" option. (merge 9393ae7 mc/doc-submodule-sync-recurse later to maint). * "git update-index --cacheinfo" in 2.0 release crashed on a malformed command line. (merge c8e1ee4 jc/rev-parse-argh-dashed-multi-words later to maint). * The mode to run tests with HTTP server tests disabled was broken. (merge afa53fe na/no-http-test-in-the-middle later to maint). ---------------------------------------------------------------- Changes since v2.0.0, 643 non-merge changes from 80 contributors, are as follows: Abbaad Haider (1): http-push.c: make CURLOPT_IOCTLDATA a usable pointer Alexey Shumkin (5): t4205 (log-pretty-formats): don't hardcode SHA-1 in expected outputs t4041, t4205, t6006, t7102: don't hardcode tested encoding value t4205 (log-pretty-format): use `tformat` rather than `format` t4205, t6006: add tests that fail with i18n.logOutputEncoding set pretty.c: format string with truncate respects logOutputEncoding Anders Kaseorg (1): gitk: Allow displaying time zones from author and commit dates timestamps Andi Kleen (4): Use BASIC_FLAGS for profile feedback Don't define away __attribute__ on gcc Run the perf test suite for profile feedback too Fix profile feedback with -jN and add profile-fast Andreas Schwab (1): grep: add grep.fullName config variable Ben Walton (1): compat/bswap.h: fix endianness detection Brian Gesiak (14): strbuf: use _rtrim and _ltrim in strbuf_trim api-strbuf.txt: add docs for _trim and _ltrim builtin/ls-remote.c: rearrange xcalloc arguments builtin/remote.c: rearrange xcalloc arguments commit.c: rearrange xcalloc arguments config.c: rearrange xcalloc arguments diff.c: rearrange xcalloc arguments http-push.c: rearrange xcalloc arguments imap-send.c: rearrange xcalloc arguments notes.c: rearrange xcalloc arguments pack-revindex.c: rearrange xcalloc arguments reflog-walk.c: rearrange xcalloc arguments remote.c: rearrange xcalloc arguments transport-helper.c: rearrange xcalloc arguments Cezary Zawadka (1): Windows: allow using UNC path for git repository Charles Bailey (3): compat/bswap.h: detect endianness on more platforms that don't use BYTE_ORDER filter-branch: eliminate duplicate mapped parents Fix contrib/subtree Makefile to patch #! line Christian Couder (16): replace: make sure --edit results in a different object replace: refactor checking ref validity replace: die early if replace ref already exists replace: add tests for --edit replace: add --edit to usage string Documentation: replace: describe new --edit option commit: add for_each_mergetag() replace: cleanup redirection style in tests replace: add --graft option replace: add test for --graft Documentation: replace: add --graft option contrib: add convert-grafts-to-replace-refs.sh replace: remove signature when using --graft replace: add test for --graft with signed commit replace: check mergetags when using --graft replace: add test for --graft with a mergetag Dan Albert (1): imap-send: use git-credential David Aguilar (3): gitk: Honor TMPDIR when viewing external diffs gitk: Use mktemp -d to avoid predictable temporary directories gitk: Catch mkdtemp errors David Kastrup (2): blame: large-scale performance rewrite Bump core.deltaBaseCacheLimit to 96m David Turner (7): docs: document RUN_SETUP_GENTLY and clarify RUN_SETUP merge-recursive.c: fix case-changing merge bug mv: allow renaming to fix case on case insensitive filesystems refs.c: optimize check_refname_component() refs.c: SSE2 optimizations for check_refname_component refs.c: handle REFNAME_REFSPEC_PATTERN at end of page refs: fix valgrind suppression file Elia Pinto (62): t9365-continuing-queries.sh: use the $( ... ) construct for command substitution test-gitmw-lib.sh: use the $( ... ) construct for command substitution t7900-subtree.sh: use the $( ... ) construct for command substitution appp.sh: use the $( ... ) construct for command substitution git-pull.sh: use the $( ... ) construct for command substitution git-rebase--merge.sh: use the $( ... ) construct for command substitution git-rebase.sh: use the $( ... ) construct for command substitution git-stash.sh: use the $( ... ) construct for command substitution git-web--browse.sh: use the $( ... ) construct for command substitution lib-credential.sh: use the $( ... ) construct for command substitution lib-cvs.sh: use the $( ... ) construct for command substitution lib-gpg.sh: use the $( ... ) construct for command substitution p5302-pack-index.sh: use the $( ... ) construct for command substitution t0001-init.sh: use the $( ... ) construct for command substitution t0010-racy-git.sh: use the $( ... ) construct for command substitution t0020-crlf.sh: use the $( ... ) construct for command substitution t0025-crlf-auto.sh: use the $( ... ) construct for command substitution t0026-eol-config.sh: use the $( ... ) construct for command substitution t0030-stripspace.sh: use the $( ... ) construct for command substitution t0300-credentials.sh: use the $( ... ) construct for command substitution t1000-read-tree-m-3way.sh: use the $( ... ) construct for command substitution t1001-read-tree-m-2way.sh: use the $( ... ) construct for command substitution t1002-read-tree-m-u-2way.sh: use the $( ... ) construct for command substitution t1003-read-tree-prefix.sh: use the $( ... ) construct for command substitution t1004-read-tree-m-u-wf.sh: use the $( ... ) construct for command substitution t1020-subdirectory.sh: use the $( ... ) construct for command substitution t1050-large.sh: use the $( ... ) construct for command substitution t3905-stash-include-untracked.sh: use the $( ... ) construct for command substitution t3910-mac-os-precompose.sh: use the $( ... ) construct for command substitution t4006-diff-mode.sh: use the $( ... ) construct for command substitution t4010-diff-pathspec.sh: use the $( ... ) construct for command substitution t4012-diff-binary.sh: use the $( ... ) construct for command substitution t4013-diff-various.sh: use the $( ... ) construct for command substitution t4014-format-patch.sh: use the $( ... ) construct for command substitution t4036-format-patch-signer-mime.sh: use the $( ... ) construct for command substitution t4038-diff-combined.sh: use the $( ... ) construct for command substitution t4057-diff-combined-paths.sh: use the $( ... ) construct for command substitution t4116-apply-reverse.sh: use the $( ... ) construct for command substitution t4119-apply-config.sh: use the $( ... ) construct for command substitution t4204-patch-id.sh: use the $( ... ) construct for command substitution t5000-tar-tree.sh: use the $( ... ) construct for command substitution scripts: "export VAR=VALUE" construct is not portable check_bindir: avoid "test -a/-o " contrib/examples/git-clone.sh: avoid "test -a/-o " contrib/examples/git-commit.sh: avoid "test -a/-o " contrib/examples/git-merge.sh: avoid "test -a/-o " contrib/examples/git-repack.sh: avoid "test -a/-o " contrib/examples/git-resolve.sh: avoid "test -a/-o " git-bisect.sh: avoid "test -a/-o " git-mergetool.sh: avoid "test -a/-o " git-rebase--interactive.sh: avoid "test -a/-o " t/lib-httpd.sh: avoid "test -a/-o " t/t0025-crlf-auto.sh: avoid "test -a/-o " t/t0026-eol-config.sh: avoid "test -a/-o " t/t4102-apply-rename.sh: avoid "test -a/-o " t/t5000-tar-tree.sh: avoid "test -a/-o " t/t5403-post-checkout-hook.sh: avoid "test -a/-o " t/t5538-push-shallow.sh: avoid "test -a/-o " t/t9814-git-p4-rename.sh: avoid "test -a/-o " t/test-lib-functions.sh: avoid "test -a/-o " git-submodule.sh: avoid "test -a/-o " submodule.c: use the ARRAY_SIZE macro Ephrim Khong (1): sha1_file: do not add own object directory as alternate Eric Wong (1): config: preserve config file permissions on edits Erik Faye-Lund (1): send-email: recognize absolute path on Windows Fabian Ruch (1): sequencer: signal failed ff as an aborted, not a conflicted merge Felipe Contreras (13): fast-export: improve argument parsing fast-export: add new --refspec option transport-helper: add support for old:new refspec transport-helper: add support to push symbolic refs fast-import: add support to delete refs fast-export: add support to delete refs transport-helper: add support to delete branches transport-helper: remove unnecessary strbuf resets mergetools: add vimdiff3 mode mergetool: run prompt only if guessed tool merge: enable defaulttoupstream by default rerere: fix for merge.conflictstyle silence a bunch of format-zero-length warnings Ilya Bobyr (4): test-lib: document short options in t/README test-lib: tests skipped by GIT_SKIP_TESTS say so test-lib: '--run' to run only specific tests gitk: Replace SHA1 entry field on keyboard paste Jacek Konieczny (1): pull: do not abuse 'break' inside a shell 'case' Jacob Keller (2): tag: fix --sort tests to use cat<<-\EOF format tag: support configuring --sort via .gitconfig James Denholm (6): contrib/subtree/Makefile: scrap unused $(gitdir) contrib/subtree/Makefile: use GIT-VERSION-FILE contrib/subtree/Makefile: s/libexecdir/gitexecdir/ contrib/subtree/Makefile: clean up rules to generate documentation contrib/subtree/Makefile: clean up rule for "clean" contrib/subtree: allow adding an annotated tag Jason St. John (1): Documentation: use "command-line" when used as a compound adjective, and fix other minor grammatical issues Jean-Jacques Lafay (1): git tag --contains: avoid stack overflow Jeff King (131): run_external_diff: use an argv_array for the environment run_external_diff: clean up error handling run_external_diff: drop fflush(NULL) run_external_diff: hoist common bits out of conditional run_external_diff: refactor cmdline setup logic commit: do not complain of empty messages from -C t3910: show failure of core.precomposeunicode with decomposed filenames replace: refactor command-mode determination replace: use OPT_CMDMODE to handle modes replace: factor object resolution out of replace_object replace: add --edit option commit: use split_ident_line to compare author/committer pretty: make show_ident_date public commit: print "Date" line when the user has set date commit: accept more date formats for "--date" inline constant return from error() function let clang use the constant-return error() macro grep: use run-command's "dir" option for --open-files-in-pager t/lib-httpd: require SANITY prereq index-pack: distinguish missing objects from type errors run_diff_files: do not look at uninitialized stat data run-command: store an optional argv_array run_column_filter: use argv_array git_connect: use argv_array get_helper: use run-command's internal argv_array get_exporter: use argv_array get_importer: use run-command's internal argv_array argv-array: drop "detach" code open_sha1_file: report "most interesting" errno move "--follow needs one pathspec" rule to diff_setup_done format-patch: make newline after signature conditional daemon/config: factor out duplicate xstrdup_tolower test-lib: preserve GIT_CURL_VERBOSE from the environment t/lib-httpd: use write_script to copy CGI scripts t5550: test display of remote http error messages strbuf: add strbuf_tolower function http: extract type/subtype portion of content-type http: optionally extract charset parameter from content-type strbuf: add strbuf_reencode helper remote-curl: reencode http error messages http: default text charset to iso-8859-1 t5537: re-drop http tests error_resolve_conflict: rewrap advice message error_resolve_conflict: drop quotations around operation update-index: fix segfault with missing --cacheinfo argument repack: do not accidentally pack kept objects by default repack: respect pack.writebitmaps repack: s/write_bitmap/&s/ in code pack-objects: stop respecting pack.writebitmaps repack: simplify handling of --write-bitmap-index repack: introduce repack.writeBitmaps config option commit_tree: take a pointer/len pair rather than a const strbuf replace dangerous uses of strbuf_attach alloc: include any-object allocations in alloc_report commit: push commit_index update into alloc_commit_node do not create "struct commit" with xcalloc logmsg_reencode: return const buffer sequencer: use logmsg_reencode in get_message t7700: drop explicit --no-pack-kept-objects from .keep test provide a helper to free commit buffer provide a helper to set the commit buffer provide helpers to access the commit buffer use get_cached_commit_buffer where appropriate use get_commit_buffer to avoid duplicate code convert logmsg_reencode to get_commit_buffer use get_commit_buffer everywhere commit-slab: provide a static initializer commit: convert commit->buffer to a slab commit: record buffer length in cache reuse cached commit buffer when parsing signatures t7510: stop referring to master in later tests t7510: test a commit signed by an unknown key t7510: check %G* pretty-format output pretty: avoid reading past end-of-string with "%G" parse_diff_color_slot: drop ofs parameter daemon: mark some strings as const avoid using skip_prefix as a boolean strbuf: add xstrfmt helper use xstrfmt in favor of manual size calculations use xstrdup instead of xmalloc strcpy use xstrfmt to replace xmalloc sprintf use xstrfmt to replace xmalloc strcpy/strcat setup_git_env: use git_pathdup instead of xmalloc sprintf sequencer: use argv_array_pushf merge: use argv_array when spawning merge strategy walker_fetch: fix minor memory leak unique_path: fix unlikely heap overflow refactor skip_prefix to return a boolean apply: use skip_prefix instead of raw addition fast-import: fix read of uninitialized argv memory transport-helper: avoid reading past end-of-string use skip_prefix to avoid magic numbers use skip_prefix to avoid repeating strings fast-import: use skip_prefix for parsing input daemon: use skip_prefix to avoid magic numbers stat_opt: check extra strlen call fast-import: refactor parsing of spaces fetch-pack: refactor parsing in get_ack git: avoid magic number with skip_prefix use skip_prefix to avoid repeated calculations http-push: refactor parsing of remote object names setup_git_env(): introduce git_path_from_env() helper move "%G" format test from t7510 to t6006 replace: replace spaces with tabs in indentation avoid double close of descriptors handed to run_command replace: use argv_array in export_object replace: add a --raw mode for --edit add strip_suffix function implement ends_with via strip_suffix replace has_extension with ends_with use strip_suffix instead of ends_with in simple cases index-pack: use strip_suffix to avoid magic numbers strbuf: implement strbuf_strip_suffix verify-pack: use strbuf_strip_suffix prepare_packed_git_one: refactor duplicate-pack check t7300: repair filesystem permissions with test_when_finished remote-curl: do not complain on EOF from parent git remote-curl: use error instead of fprintf(stderr) remote-curl: mark helper-protocol errors more clearly tag: use skip_prefix instead of magic numbers alloc: write out allocator definitions move setting of object->type to alloc_* functions parse_object_buffer: do not set object type add object_as_type helper for casting objects alloc: factor out commit index object_as_type: set commit index diff-tree: avoid lookup_unknown_object prio-queue: factor out compare and swap operations prio-queue: make output stable with respect to insertion paint_down_to_common: use prio_queue t5539: update a flaky test Jens Lehmann (21): status/commit: show staged submodules regardless of ignore config commit -m: commit staged submodules regardless of ignore config git-gui: show staged submodules regardless of ignore config git-gui: tolerate major version changes when comparing the git version gitk: Show staged submodules regardless of ignore config test-lib: add test_dir_is_empty() t/Makefile: check helper scripts for non-portable shell commands too t/Makefile: always test all lint targets when running tests submodules: add the lib-submodule-update.sh test library checkout: call the new submodule update test framework apply: add t4137 for submodule updates read-tree: add t1013 for submodule updates reset: add t7112 for submodule updates bisect: add t6041 for submodule updates merge: add t7613 for submodule updates rebase: add t3426 for submodule updates pull: add t5572 for submodule updates cherry-pick: add t3512 for submodule updates am: add t4255 for submodule updates stash: add t3906 for submodule updates revert: add t3513 for submodule updates Jens Lindström (3): remote rm: delete remote configuration as the last remote: repack packed-refs once when deleting multiple refs remote prune: optimize "dangling symref" check/warning Jeremiah Mahler (7): format-patch: add "--signature-file=" option t9138-git-svn-authors-prog.sh fixups Documentation: wording fixes in the user manual and glossary t/t7810-grep.sh: remove duplicate test_config() api-strbuf.txt minor typos name-hash.c: replace cache_name_compare() with memcmp(3) cleanup duplicate name_compare() functions Jiang Xin (2): blame: fix broken time_buf paddings in relative timestamp blame: dynamic blame_date_width for different locales Johannes Schindelin (2): git grep -O -i: if the pager is 'less', pass the '-I' option Win32: let mingw_execve() return an int Johannes Sixt (1): fix brown paper bag breakage in t5150-request-pull.sh John Keeping (4): completion: add a note that merge options are shared completion: add missing options for git-merge rebase--am: use --cherry-pick instead of --ignore-if-in-upstream rebase: omit patch-identical commits with --fork-point Jonathan McCrohan (1): git-instaweb: add support for Apache 2.4 Jonathan Nieder (4): contrib: remove vim support instructions contrib: remove git-diffall test-lint: find unportable sed, echo, test, and export usage after && test doc: test_write_lines does not split its arguments Junio C Hamano (49): apply --ignore-space-change: lines with and without leading whitespaces do not match send-email: windows drive prefix (e.g. C:) appears only at the beginning mergetool: document the default for --[no-]prompt compat/bswap.h: restore preference __BIG_ENDIAN over BIG_ENDIAN CodingGuidelines: once it is in, it is not worth the code churn CodingGuidelines: give an example for case/esac statement CodingGuidelines: give an example for redirection CodingGuidelines: give an example for control statements CodingGuidelines: give an example for shell function preamble CodingGuidelines: do not call the conditional statement "if()" CodingGuidelines: on comparison CodingGuidelines: on splitting a long line CodingGuidelines: avoid "test -a/-o " scripts: more "export VAR=VALUE" fixes Git 1.9.4 fetch doc: update introductory part for clarity fetch doc: update note on ' ' in front of the refspec fetch doc: remove notes on outdated "mixed layout" First batch for 2.1 shortlog: allow --exclude= to be passed fetch doc: on pulling multiple refspecs fetch doc: update refspec format description fetch doc: remove "short-cut" section fetch doc: add a section on configured remote-tracking branches fetch: allow explicit --refmap to override configuration Second batch for 2.1 Update draft release notes to 2.1 test: turn EXPENSIVE into a lazy prerequisite test: turn USR_BIN_TIME into a lazy prerequisite t3302: coding style updates t3302: do not chdir around in the primary test process t3302: drop unnecessary NOT_EXPENSIVE pseudo-prerequisite t3419: drop unnecessary NOT_EXPENSIVE pseudo-prerequisite revision: parse "git log -" more carefully t0008: do not depend on 'echo' handling backslashes specially Third batch for 2.1 git-submodule.sh: avoid "echo" path-like values Fourth batch for 2.1 builtin/clone.c: detect a clone starting at a tag correctly Git 2.0.1 Fifth batch for 2.1 Sixth batch for 2.1 Start preparing for 2.0.2 Seventh batch for 2.1 Git 2.0.2 Eighth batch for 2.1 Ninth batch for 2.1 Git 2.0.3 Git 2.1.0-rc0 Jörn Engel (1): pager: do allow spawning pager recursively Karsten Blees (46): MSVC: link dynamically to the CRT Win32 dirent: remove unused dirent.d_ino member Win32 dirent: remove unused dirent.d_reclen member Win32 dirent: change FILENAME_MAX to MAX_PATH Win32 dirent: clarify #include directives Win32 dirent: improve dirent implementation Win32: move main macro to a function Win32: support Unicode console output Win32: detect console streams more reliably Win32: warn if the console font doesn't support Unicode Win32: add Unicode conversion functions Win32: Thread-safe windows console output Win32: fix broken pipe detection Win32: reliably detect console pipe handles Win32: simplify internal mingw_spawn* APIs Win32: fix potential multi-threading issue MinGW: disable CRT command line globbing Win32: Unicode arguments (outgoing) Win32: Unicode arguments (incoming) trace: move trace declarations from cache.h to new trace.h trace: consistently name the format parameter trace: remove redundant printf format attribute symlinks: remove PATH_MAX limitation hashmap: factor out getting a hash code from a SHA1 hashmap: improve struct hashmap member documentation hashmap: add simplified hashmap_get_from_hash() API hashmap: add string interning API cache.h: rename cache_def_free to cache_def_clear trace: improve trace performance Documentation/git.txt: improve documentation of 'GIT_TRACE*' variables sha1_file: change GIT_TRACE_PACK_ACCESS logging to use trace API trace: add infrastructure to augment trace output with additional info trace: disable additional trace output for unit tests trace: add current timestamp to all trace output trace: move code around, in preparation to file:line output trace: add 'file:line' to all trace output trace: add high resolution timer function to debug performance issues trace: add trace_performance facility to debug performance issues git: add performance tracing for git's main() function to debug scripts wt-status: simplify performance measurement by using getnanotime() progress: simplify performance measurement by using getnanotime() api-trace.txt: add trace API documentation Win32: Unicode file name support (except dirent) Win32: Unicode file name support (dirent) MinGW: fix compile error due to missing ELOOP config: use chmod() instead of fchmod() Kirill Smelkov (20): combine-diff: move show_log_first logic/action out of paths scanning combine-diff: move changed-paths scanning logic into its own function tree-diff: no need to manually verify that there is no mode change for a path tree-diff: no need to pass match to skip_uninteresting() tree-diff: show_tree() is not needed tree-diff: consolidate code for emitting diffs and recursion in one place tree-diff: don't assume compare_tree_entry() returns -1,0,1 tree-diff: move all action-taking code out of compare_tree_entry() tree-diff: rename compare_tree_entry -> tree_entry_pathcmp tree-diff: show_path prototype is not needed anymore tree-diff: simplify tree_entry_pathcmp tree-diff: remove special-case diff-emitting code for empty-tree cases tree-diff: diff_tree() should now be static tree-diff: rework diff_tree interface to be sha1 based tree-diff: no need to call "full" diff_tree_sha1 from show_path() tree-diff: reuse base str(buf) memory on sub-tree recursion Portable alloca for Git tree-diff: rework diff_tree() to generate diffs for multiparent cases as well combine-diff: speed it up, by using multiparent diff tree-walker directly mingw: activate alloca Linus Torvalds (1): git log: support "auto" decorations Luis R. Rodriguez (1): git.c: treat RUN_SETUP_GENTLY and RUN_SETUP as mutually exclusive Marc Branchaud (2): fetch doc: move FETCH_HEAD material lower and add an example docs: Explain the purpose of fetch's and pull's parameter. Matthew Chen (1): submodule: document "sync --recursive" Matthieu Moy (4): git-remote-mediawiki: allow stop/start-ing the test server git-remote-mediawiki: fix encoding issue for UTF-8 media files pager: remove 'S' from $LESS by default rebase -i: test "Nothing to do" case with autostash Max Kirillov (5): git-show: fix 'git show -s' to not add extra terminator after merge commit gitk: Switch to patch mode when searching for line origin gitk: Add visiblerefs option, which lists always-shown branches t6023-merge-file.sh: fix and mark as broken invalid tests git-merge-file: do not add LF at EOF while applying unrelated change Maxime Coste (2): git-p4: Do not include diff in spec file when just preparing p4 git-p4: fix submit in non --prepare-p4-only mode Michael Barabanov (1): use local cloning if insteadOf makes a local URL Michael Haggerty (27): t1400: fix name and expected result of one test t1400: provide more usual input to the command parse_arg(): really test that argument is properly terminated t1400: add some more tests involving quoted arguments refs.h: rename the action_on_err constants update_refs(): fix constness update-ref --stdin: read the whole input at once parse_cmd_verify(): copy old_sha1 instead of evaluating twice update-ref.c: extract a new function, parse_refname() update-ref --stdin: improve error messages for invalid values update-ref --stdin: make error messages more consistent update-ref --stdin: simplify error messages for missing oldvalues t1400: test that stdin -z update treats empty as zeros update-ref.c: extract a new function, parse_next_sha1() update-ref --stdin -z: deprecate interpreting the empty string as zeros t1400: test one mistake at a time update-ref --stdin: improve the error message for unexpected EOF update-ref --stdin: harmonize error messages refs: add a concept of a reference transaction update-ref --stdin: reimplement using reference transactions refs: remove API function update_refs() struct ref_update: rename field "ref_name" to "refname" struct ref_update: store refname as a FLEX_ARRAY ref_transaction_commit(): simplify code using temporary variables struct ref_update: add a lock field struct ref_update: add a type field ref_transaction_commit(): work with transaction->updates in place Michael J Gruber (7): t7510: use consistent &&-chains in loop gpg-interface: provide clear helper for struct signature_check gpg-interface: provide access to the payload verify-commit: scriptable commit signature verification t7510: exit for loop with test result t7510: test verify-commit log: correctly identify mergetag signature verification status Michael Naumov (1): sideband.c: do not use ANSI control sequence on non-terminal Michael S. Tsirkin (6): git-send-email: two new options: to-cover, cc-cover test/send-email: to-cover, cc-cover tests rebase --keep-empty -i: add test test: add test_write_lines helper patch-id: make it stable against hunk reordering patch-id-test: test stable and unstable behaviour Nguyễn Thái Ngọc Duy (40): index-pack: work around thread-unsafe pread() ewah: fix constness of ewah_read_mmap ewah: delete unused ewah_read_mmap_native declaration sequencer: do not update/refresh index if the lock cannot be held config: be strict on core.commentChar commit: allow core.commentChar=auto for character auto selection gc --auto: do not lock refs in the background git potty: restore environments after alias expansion read-cache: new API write_locked_index instead of write_index/write_cache read-cache: relocate and unexport commit_locked_index() read-cache: store in-memory flags in the first 12 bits of ce_flags read-cache: be strict about "changed" in remove_marked_cache_entries() read-cache: be specific what part of the index has changed update-index: be specific what part of the index has changed resolve-undo: be specific what part of the index has changed unpack-trees: be specific what part of the index has changed cache-tree: mark istate->cache_changed on cache tree invalidation cache-tree: mark istate->cache_changed on cache tree update cache-tree: mark istate->cache_changed on prime_cache_tree() entry.c: update cache_changed if refresh_cache is set in checkout_entry() read-cache: save index SHA-1 after reading read-cache: split-index mode read-cache: mark new entries for split index read-cache: save deleted entries in split index read-cache: mark updated entries for split index split-index: the writing part split-index: the reading part split-index: do not invalidate cache-tree at read time split-index: strip pathname of on-disk replaced entries update-index: new options to enable/disable split index mode update-index --split-index: do not split if $GIT_DIR is read only rev-parse: add --shared-index-path to get shared index path read-tree: force split-index mode off on --index-output read-tree: note about dropping split-index mode or index version read-cache: force split index mode with GIT_TEST_SPLIT_INDEX t2104: make sure split index mode is off for the version test t1700: new tests for split-index mode dir.c: coding style fix dir.h: move struct exclude declaration to top level prep_exclude: remove the artificial PATH_MAX limit Nick Alcock (1): t5538: move http push tests out to t5542 Pasha Bolokhov (1): dir.c:trim_trailing_spaces(): fix for " \ " sequence Pat Thoyts (2): wincred: add install target wincred: avoid overwriting configured variables Philip Oakley (1): doc: give some guidelines for error messages Ramkumar Ramachandra (1): rebase -i: handle "Nothing to do" case with autostash Ramsay Allan Jones (2): t0000-*.sh: fix the GIT_SKIP_TESTS sub-tests alloc.c: remove the alloc_raw_commit_node() function René Scharfe (28): mailinfo: use strcmp() for string comparison pack-objects: use free() xcalloc() instead of xrealloc() memset() Use starts_with() for C strings instead of memcmp() blame: factor out get_next_line() blame: simplify prepare_lines() wt-status: use argv_array for environment wt-status: simplify building of summary limit argument sha1_file: replace PATH_MAX buffer with strbuf in prepare_packed_git_one() sha1_file: avoid overrunning alternate object base string t5000, t5003: simplify commit diff-tree: call free_commit_list() instead of duplicating its code line-log: use commit_list_append() instead of duplicating its code use strbuf_addbuf for adding strbufs use strbuf_addch for adding single characters merge: simplify merge_trivial() by using commit_list_append() commit: use commit_list_append() instead of duplicating its code fsck: simplify fsck_commit_buffer() by using commit_list_count() annotate: use argv_array strbuf: use strbuf_addstr() for adding C strings use commit_list_count() to count the members of commit_lists run-command: use internal argv_array of struct child_process in run_hook_ve() transport: simplify fetch_objs_via_rsync() using argv_array fast-import: use hashcmp() for SHA1 hash comparison bundle: use internal argv_array of struct child_process in create_bundle() remote-testsvn: use internal argv_array of struct child_process in cmd_import() unix-socket: remove stale socket before calling chdir() use xcalloc() to allocate zero-initialized memory use xmemdupz() to allocate copies of strings given by start and length RomanBelinsky (1): SVN.pm::parse_svn_date: allow timestamps with a single-digit hour Ronnie Sahlberg (27): sequencer.c: check for lock failure and bail early in fast_forward_to commit.c: check for lock error and return early refs.c: add new functions reflog_exists and delete_reflog checkout.c: use ref_exists instead of file_exist refs.c: change read_ref_at to use the reflog iterators enums: remove trailing ',' after last item in enum enums: remove trailing ',' after last item in enum refs.c: remove ref_transaction_rollback refs.c: ref_transaction_commit should not free the transaction refs.c: constify the sha arguments for ref_transaction_create|delete|update refs.c: allow passing NULL to ref_transaction_free refs.c: add a strbuf argument to ref_transaction_commit for error logging lockfile.c: add a new public function unable_to_lock_message lockfile.c: make lock_file return a meaningful errno on failurei refs.c: add an err argument to repack_without_refs refs.c: make sure log_ref_setup returns a meaningful errno refs.c: verify_lock should set errno to something meaningful refs.c: make remove_empty_directories always set errno to something sane refs.c: commit_packed_refs to return a meaningful errno on failure refs.c: make resolve_ref_unsafe set errno to something meaningful on error refs.c: log_ref_write should try to return meaningful errno refs.c: make ref_update_reject_duplicates take a strbuf argument for errors refs.c: make update_ref_write update a strbuf on failure update-ref: use err argument to get error from ref_transaction_commit refs.c: remove the onerr argument to ref_transaction_commit refs.c: change ref_transaction_update() to do error checking and return status refs.c: add a public is_branch function Stefan Beller (3): .mailmap: map different names with the same email address together git.1: switch homepage for stats .mailmap: combine Stefan Beller's emails Steffen Prohaska (1): completion: handle '!f() { ... }; f' and "!sh -c '...' -" aliases Stepan Kasal (3): Revert "submodules: fix ambiguous absolute paths under Windows" t5000, t5003: do not use test_cmp to compare binary files mingw: avoid const warning Stephen P. Smith (1): How to keep a project's canonical history correct. Steve Hoelzer (1): environment.c: enable core.preloadindex by default Tanay Abhra (4): string-list: spell all values out that are given to a string_list initializer imap-send: use skip_prefix instead of using magic numbers string-list: add string_list initializer helper function replace memset with string-list initializers Theodore Leblond (1): compat/poll: sleep 1 millisecond to avoid busy wait Thorsten Glaser (1): builtin/tag.c: show tag name to hint in the message editor Torsten Bögershausen (7): utf8.c: use a table for double_width utf8: make it easier to auto-update git_wcwidth() t5551: fix the 50,000 tag test t9001: avoid non-portable '\n' with sed Update of unicode_width.h to Unicode Version 7.0 t0025: rename the test files t0027: combinations of core.autocrlf, core.eol and text Trần Ngọc Quân (1): l10n: Init Vietnamese translation W. Trevor King (1): Documentation: mention config sources for @{upstream} William Giokas (1): svn-fe: conform to pep8 Yi EungJun (2): http-protocol.txt: Basic Auth is defined in RFC 2617, not RFC 2616 http: fix charset detection of extract_content_type() Yiannis Marangos (2): wrapper.c: add xpread() similar to xread() read-cache.c: verify index file before we opportunistically update it Zoltan Klinger (1): log: fix indentation for --graph --show-signature brian m. carlson (3): blame: correctly handle files regardless of autocrlf rebase--merge: fix --skip with two conflicts in a row Documentation: fix missing text for rev-parse --verify Øystein Walle (1): config: respect '~' and '~user' in mailmap.file Øyvind A. Holm (1): .gitignore: "git-verify-commit" is a generated file -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html [Less]
Posted over 11 years ago by Junio C Hamano
The latest maintenance release Git v2.0.3 is now available at the usual places. Hopefully it would be the final maintenance release for the v2.0 series. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following ... [More] public repositories all have a copy of the 'v2.0.3' tag and the 'maint' branch that the tag points at: url = https://kernel.googlesource.com/pub/scm/git/git url = git://repo.or.cz/alt-git.git url = https://code.google.com/p/git-core/ url = git://git.sourceforge.jp/gitroot/git-core/git.git url = git://git-core.git.sourceforge.net/gitroot/git-core/git-core url = https://github.com/gitster/git Git v2.0.3 Release Notes ======================== * An ancient rewrite passed a wrong pointer to a curl library function in a rarely used code path. * "filter-branch" left an empty single-parent commit that results when all parents of a merge commit gets mapped to the same commit, even under "--prune-empty". * "log --show-signature" incorrectly decided the color to paint a mergetag that was and was not correctly validated. * "log --show-signature" did not pay attention to "--graph" option. Also a lot of fixes to the tests and some updates to the docs are included. ---------------------------------------------------------------- Changes since v2.0.2 are as follows: Abbaad Haider (1): http-push.c: make CURLOPT_IOCTLDATA a usable pointer Ben Walton (1): compat/bswap.h: fix endianness detection Brian Gesiak (12): builtin/ls-remote.c: rearrange xcalloc arguments builtin/remote.c: rearrange xcalloc arguments commit.c: rearrange xcalloc arguments config.c: rearrange xcalloc arguments diff.c: rearrange xcalloc arguments http-push.c: rearrange xcalloc arguments imap-send.c: rearrange xcalloc arguments notes.c: rearrange xcalloc arguments pack-revindex.c: rearrange xcalloc arguments reflog-walk.c: rearrange xcalloc arguments remote.c: rearrange xcalloc arguments transport-helper.c: rearrange xcalloc arguments Charles Bailey (2): compat/bswap.h: detect endianness on more platforms that don't use BYTE_ORDER filter-branch: eliminate duplicate mapped parents Elia Pinto (1): scripts: "export VAR=VALUE" construct is not portable Jeremiah Mahler (3): Documentation: wording fixes in the user manual and glossary t/t7810-grep.sh: remove duplicate test_config() api-strbuf.txt minor typos Johannes Sixt (1): fix brown paper bag breakage in t5150-request-pull.sh Jonathan McCrohan (1): git-instaweb: add support for Apache 2.4 Junio C Hamano (3): compat/bswap.h: restore preference __BIG_ENDIAN over BIG_ENDIAN scripts: more "export VAR=VALUE" fixes Git 2.0.3 Michael J Gruber (1): log: correctly identify mergetag signature verification status Philip Oakley (1): doc: give some guidelines for error messages René Scharfe (2): use xcalloc() to allocate zero-initialized memory use xmemdupz() to allocate copies of strings given by start and length Stefan Beller (2): git.1: switch homepage for stats .mailmap: combine Stefan Beller's emails Stepan Kasal (1): t5000, t5003: do not use test_cmp to compare binary files Yi EungJun (1): http-protocol.txt: Basic Auth is defined in RFC 2617, not RFC 2616 Zoltan Klinger (1): log: fix indentation for --graph --show-signature brian m. carlson (1): Documentation: fix missing text for rev-parse --verify -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html [Less]