Skip to content
This repository was archived by the owner on Nov 9, 2017. It is now read-only.

Perl 5.8.8 1 msys#2

Closed
monaka wants to merge 4 commits intomsysgit:develfrom
monaka:perl-5.8.8-1-msys
Closed

Perl 5.8.8 1 msys#2
monaka wants to merge 4 commits intomsysgit:develfrom
monaka:perl-5.8.8-1-msys

Conversation

@monaka
Copy link
Copy Markdown

@monaka monaka commented Jan 27, 2012

Could you update perl to recent MSYS? I put some MSYS package in this pull request.

@kusma
Copy link
Copy Markdown
Member

kusma commented Jan 27, 2012

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?

@sschuberth
Copy link
Copy Markdown
Contributor

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.

@dscho
Copy link
Copy Markdown
Member

dscho commented Feb 23, 2012

Sorry for taking so long to come back to you. Here are my comments:

  • we try to make it easy to build things from scratch in msysGit. For example, curl can be built from scratch, helping debugging tremendously -- you can simply insert debug statements or proposed fixes, launch a single script to rebuild and test again
  • I am wary of taking binary changes as are, not because I want to distrust you, but it is a fact that I do not know you nor the exact process how you got those files. Further, I have the impression that users of Git for Windows gained some trust in me in the meantime, which I would risk if I did not verify at least rudimentarily that the changes are legimitate
  • our Perl is not just any random Perl, but built with the specific goal to support git-svn. As such, we cannot simply plug a random compiled Perl into Git for Windows; it would be highly unlikely that git-svn still works

So please understand that I will not merge this.

Having said that, I see two ways to move forward:

  • either we do it the old way, adding compilation recipes a la /src/vim/release.sh as patches to the 'msys' branch, or
  • we go the way sschuberth suggested and push forward to make https://github.com/sschuberth/mingwGitDevEnv the primary way to build Git for Windows (because that would allow us to re-use upstream MSys' way to build binaries)

In the long run, the mingwGitDevEnv way is probably adding less technical debt.

@dscho dscho closed this Feb 23, 2012
rctay pushed a commit to rctay/msysgit that referenced this pull request Apr 4, 2012
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]>
rctay pushed a commit to rctay/msysgit that referenced this pull request Apr 4, 2012
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
toshiyuki-ogawa pushed a commit to toshiyuki-ogawa/msysgit that referenced this pull request May 3, 2013
"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]>
toshiyuki-ogawa pushed a commit to toshiyuki-ogawa/msysgit that referenced this pull request May 3, 2013
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]>
toshiyuki-ogawa pushed a commit to toshiyuki-ogawa/msysgit that referenced this pull request May 3, 2013
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]>
toshiyuki-ogawa pushed a commit to toshiyuki-ogawa/msysgit that referenced this pull request May 3, 2013
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]>
toshiyuki-ogawa pushed a commit to toshiyuki-ogawa/msysgit that referenced this pull request May 3, 2013
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]>
vbjay pushed a commit to vbjay/msysgit that referenced this pull request Jun 4, 2013
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
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants