-
-
Notifications
You must be signed in to change notification settings - Fork 517
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mercurial --> plain text --> mercurial #3052
Comments
comment:1
Is this ticket still valid? I'm not sure I understand what exactly needs to be done with this, but it seems to apply to ancient mercurial versions and sage 2.x... |
comment:2
OK, William explained it to me simply - some users (especially, say, corporate environments) might be afraid of viruses in Mercurial's binary history data. This ticket is looking for a way to make our source distribution consist entirely of text files only. |
comment:3
I've written a python program that converts Mercurial 1.0+ bundles to a JSON representation and back. This doesn't produce a series of patch files, but it is a fully 7-bit-clean text format which is human-readable (though not as easy to grasp as a git diff or unified diff). It is also a bit-identically reversible computation and preserves all node IDs. The transformation from repository to bundle is also fully reversible as it is what Mercurial itself uses for pushes and pulls. |
apply to $SAGE_ROOT |
Attachment: trac_3052-makefile.patch.gz Attachment: trac_3052-textify.patch.gz apply to $SAGE_ROOT/spkg/base |
comment:4
So here are a couple of patches. Apply as indicated. The python file is not doctested, but most of the functions are pretty side-effectful so I don't see how exactly to do this. It at least does fail the doctester if it can't find the correct things to import, so that much is at least safeguarded (in case Mercurial is too old or too new, for example). Speaking of which, this patch depends on #10594 (merged in 4.7.2.alpha0). Test this patch by unpacking a source distro tarball, doing |
Dependencies: #10594 |
Author: Keshav Kini |
Reviewer: Volker Braun |
comment:6
Sounds good, positive review. Of course there is still a 35MB spkg containing various OSX Fortran compilers, thats a lot of binary code ;) Hopefully apple will fix their toolchain at one point... |
This comment has been minimized.
This comment has been minimized.
comment:8
Thanks for the review! :) |
This comment has been minimized.
This comment has been minimized.
comment:10
Looks like Jeroen's merger doesn't yet support the base repository... :( |
Merged: sage-4.7.2.alpha3 |
Attachment: trac_3052-makefile-rebased.patch.gz |
This comment has been minimized.
This comment has been minimized.
comment:13
I rebased all patches with fuzz 2, but didn't bother about this one because it was so trivial (or obvious). ;-) |
comment:14
BTW this code imports stuff from Mercurial internals so it may need to be updated when we next upgrade Mercurial. Any ideas on how to make a doctest that will break when Mercurial is upgraded so that this will be noticed when the time comes? I guess there's always the trivial >>> import mercurial.__version__.version
>>> mercurial.__version__.version
'1.8.4' But even if we use this silly doctest, where should it go? |
comment:15
Odd tests go in |
comment:16
Perhaps we could tag such tests |
Robert Bradshaw has mostly solved this:
But there are issues. See the complete thread here:
http://groups.google.com/group/sage-devel/browse_thread/thread/79da4852b8e20851/c4b8e87260f08f96?#c4b8e87260f08f96
Apply attachment: trac_3052-makefile.patch or attachment: trac_3052-makefile-rebased.patch to the Sage root repository (in
$SAGE_ROOT/
).Apply attachment: trac_3052-textify.patch to the base repository (in
$SAGE_ROOT/spkg/base/
).Depends on #10594
Component: distribution
Author: Keshav Kini
Reviewer: Volker Braun
Merged: sage-4.7.2.alpha3
Issue created by migration from https://trac.sagemath.org/ticket/3052
The text was updated successfully, but these errors were encountered: