#11120: Autodetect installed 3-way merge programs (invalidates #4434)
------------------------+---------------------------------------------------
Reporter: kini | Owner: tbd
Type: defect | Status: needs_review
Priority: major | Milestone: sage-4.7
Component: packages | Keywords: mercurial, os x
Author: | Upstream: N/A
Reviewer: | Merged:
Work_issues: |
------------------------+---------------------------------------------------
Changes (by kini):
* status: new => needs_review
Old description:
> #4434 should be backed out and fixed (if even still necessary) in a more
> modern fashion. In the newer versions of Mercurial currently shipped with
> sage, hgmerge is obsolete (and in fact has been since 1.0, which might
> explain why no script at all was being copied over, as mentioned in the
> description of #4434). It's not a good idea to rely on outdated
> functionality.
>
> See http://mercurial.selenic.com/wiki/hgmerge :
>
> >Before Mercurial 1.0, a script named hgmerge was installed by default.
> As of Mercurial 1.0, hgmerge is no longer installed (and it should not be
> distributed with Mercurial), but hg still uses it, if it's present on the
> system and no other merge tools are configured. See
> [http://mercurial.selenic.com/wiki/MergeToolConfiguration
> MergeToolConfiguration] for the new mechanism.
>
> Hopefully removing this hgmerge file will simply work on OS X -
> otherwise, a solution should be made using hgrc as described at
> [http://mercurial.selenic.com/wiki/MergeToolConfiguration
> MergeToolConfiguration].
>
> Apply trac_11120-re-fix-trac_4434.mercurial-spkg.patch to mercurial spkg
> base repository
New description:
In Mercurial versions earlier than 1.0, a script called `hgmerge` was
installed to the system when you installed mercurial. This script called
whatever 3-way merge programs you had installed in order to manually
intervene in Mercurial's merging process when it couldn't figure out how
to resolve a conflict.
This was deprecated in version 1.0, and now Mercurial calls 3-way merge
programs directly instead of relying on an `hgmerge` script. In order to
make this work properly, one should set the proper configuration variables
to help Mercurial find any installed 3-way merge programs.
There is a file, `contrib/mergetools.rc`, in the Mercurial source
distribution which provides exactly these configuration variables, though
the upstream installer script does not actually install it anywhere.
The problem reported at trac #4434 was caused, I guess, by the fact that
`hgmerge` was deprecated and we sage people didn't notice, so the patch
there simply caused our distribution of Mercurial to continue using
`hgmerge`. The patch also did this only on the OS X platform, though as
far as I can tell the same fundamental problem actually appears on Linux
as well (see comments below).
A better way to fix the problem on trac #4434, and fix it for Linux too,
would be to use the `contrib/mergetools.rc` file as it was designed to be
used.
Apply trac_11120-re-fix-trac_4434.mercurial-spkg.patch to mercurial spkg
base repository
Depends on #11121
--
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11120#comment:4>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.