sillsdev / chorus

End-user collaboration library via 3-way xml merging and hg dvcs under the hood
6 stars 26 forks source link

Update included Mercurial to 3.4 for 64-bit Linux #204

Closed rmunn closed 2 years ago

rmunn commented 4 years ago

Mercurial 3.4 was the version available in Ubuntu 15.10 (Wily). No 32-bit build of this exists on the web, so we'll eventually have to build that ourselves: the only difference between the 64-bit build and the 32-bit build is six Python modules that Mercurial builds from a C source.

Rationale: #191


This change is Reviewable

rmunn commented 4 years ago

Note that the version in the Windows zip file is 3.3, so it's possible there may be some breaking changes between 3.3 and 3.4 that cause us problems. Looking at https://www.mercurial-scm.org/wiki/WhatsNew/Archive#Mercurial_3.4_.282015-05-01.29 for changes marked "(BC)", I don't think anything will cause us issues. I'd like to know what "commands.push: abort when revisions evaluate to empty set (BC)" means in detail (will LfMerge think Mercurial has failed if there was simply no change to push?), but that's what testing on the QA server is for. Most importantly, Mercurial 3.4 is after SNI was implemented, but before the breaking change in 3.7 that changed how it handled deleted-here-and-changed-over-there files. So in theory, it should still pass all of our unit tests.

ermshiperete commented 2 years ago

We no longer ship the .zip files but instead rely on the SIL.Chorus.Mercurial nuget package, so that has to be updated.