Perl 5.8.8 1 msys#2
Conversation
|
Thanks for the effort, but we generally use the mailing list for such requests, not GitHub. Would you mind posting the series there instead, so it can get the proper code-review? |
|
Let's put the GitHub vs. mailing list issues aside, for now we agreed to accept contributions both ways. However, I'm wondering what the benefit of this series actually is. IIRC we have Perl 5.8.8 since 2c1f173 (which was in 2008). But I'd like to see Perl 5.10 in MSYS, as that's the version currently required by Qt's init-repository script. Unfortunately, Perl 5.10 is not yet available upstream. |
|
Sorry for taking so long to come back to you. Here are my comments:
So please understand that I will not merge this. Having said that, I see two ways to move forward:
In the long run, the mingwGitDevEnv way is probably adding less technical debt. |
In his latest "What's cooking in git.git" message (Nov 2011, msysgit#2; Sun, 6) J.C.Hamano announced the availability of the documentation branches (html, doc) in dedicated repositories at github.com. Change .gitmodules to point 'doc/git/html' to the new repository. Signed-off-by: Stefan Naewe <[email protected]> Signed-off-by: Pat Thoyts <[email protected]>
We avoid setting `encoding' and `termencoding', and opt to only setting `fileencodings' because it's understood that vim sets the former two to the user's system's "ANSI" and "OEM" code pages (setting either both if they differ or only `encoding' if they're the same) [1]. The setting of "OEM" is particularly significant as it is required for native characters to be correctly displayed on the user's console [2]. We set "utf-8" as the only value of `fileencodings', there by making it the default encoding used to save new commit messages to COMMIT_EDITMSG. This is consistent with what git expects in an environment where the user has not altered the value of `i18n.commitencoding'. When loading an existing message, for operations such as 'commit --amend' and 'rebase -i', our setting for `fileencodings' means that vim will first attempt to load it as UTF-8 and then fallback to the encoding set by `encoding' if unable to do so. This encoding is expected to be "ANSI", as mentioned above, and this side-effect is of benefit if the user does have an altered value of `i18n.commitencoding'. (Here, we're assuming users not set this, if at all, to anything other than that of "ANSI" because that is thought to be the most natural for their location.) Users SHOULD unset `i18n.commitencoding' after this is released. However, failing to do so may not show any visible regressions. (See tests for case msysgit#2 at [3].) This patch follows the discussion in the [4] link. [1] http://groups.google.com/group/msysgit/msg/be6218f1cbf5e747 [2] http://groups.google.com/group/vim_dev/msg/3dd77f3014a60e43 [3] http://groups.google.com/group/msysgit/msg/508cca8b57f00546 [4] http://groups.google.com/group/msysgit/msg/55c582fb1b279d08
"git add -u" updates the index with the updated contents from the working tree by internally running "diff-files" to grab the set of paths that are different from the index. Then it updates the index entries for the paths that are modified in the working tree, and deletes the index entries for the paths that are deleted in the working tree. It ignored the output from the diff-files that indicated that a path is unmerged. For these paths, it instead relied on the fact that an unmerged path is followed by the result of comparison between stage msysgit#2 (ours) and the working tree, and used that to update or delete such a path when it is used to record the resolution of a conflict. As the result, when a path did not have stage msysgit#2 (e.g. "we deleted while the other side added"), these unmerged stages were left behind, instead of recording what the user resolved in the working tree. Since we recently fixed "diff-files" to indicate if the corresponding path exists on the working tree for an unmerged path, we do not have to rely on the comparison with stage msysgit#2 anymore. We can instead tell the diff-files not to compare with higher stages, and use the unmerged output to update the index to reflect the state of the working tree. The changes to the test vector in t2200 illustrates the nature of the bug and the fix. The test expected stage msysgit#1 and msysgit#3 entries be left behind, but it was codifying the buggy behaviour. Signed-off-by: Junio C Hamano <[email protected]>
The previous logic in show_config was to print the delimiter when the value was set, but Boolean variables have an implicit value "true" when they appear with no value in the config file. As a result, we got: git_Config --get-regexp '.*\.Boolean' msysgit#1. Ok: example.boolean git_Config --bool --get-regexp '.*\.Boolean' msysgit#2. NO: example.booleantrue Fix this by defering the display of the separator until after the value to display has been computed. Reported-by: Brian Foster <[email protected]> Signed-off-by: Matthieu Moy <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
While identifying the commit merged to our history as "parent msysgit#2" is technically correct, we will never say "parent msysgit#1" (as that is the tip of our history before the merge is made), and we rarely would say "parent msysgit#3" (which would mean the merge is an octopus), especially when responding to a request to pull a signed tag. Treat the most common case to merge a single commit specially, and just say "merged tag '<tagname>'" instead. Signed-off-by: Junio C Hamano <[email protected]>
Even though we show a separate *UNMERGED* entry in the patch and diffstat output (or in the --raw format, for that matter) in addition to and separately from the diff against the specified stage (defaulting to msysgit#2) for unmerged paths, they should not be counted in the total number of files affected---that would lead to counting the same path twice. The separation done by the previous step makes this fix simple and straightforward. Among the filepairs in diff_queue, paths that weren't modified, and the extra "unmerged" entries do not count as total number of files. Signed-off-by: Junio C Hamano <[email protected]>
entry_count is used in update_one() for two purposes: 1. to skip through the number of processed entries in in-memory index 2. to record the number of entries this cache-tree covers on disk Unfortunately when CE_REMOVE is present these numbers are not the same because CE_REMOVE entries are automatically removed before writing to disk but entry_count is not adjusted and still counts CE_REMOVE entries. Separate the two use cases into two different variables. msysgit#1 is taken care by the new field count in struct cache_tree_sub and entry_count is prepared for msysgit#2. Signed-off-by: Nguyễn Thái Ngọc Duy <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
Closing (not redirecting to /dev/null) the standard error stream is not a very smart thing to do. Later open may return file descriptor msysgit#2 for unrelated purpose, and error reporting code may write into them. * tr/perl-keep-stderr-open: t9700: do not close STDERR perl: redirect stderr to /dev/null instead of closing
Could you update perl to recent MSYS? I put some MSYS package in this pull request.