Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Software-update: Mercurial 5.0

Mercurial is een programma voor onder andere software- en projectontwikkelaars waarmee beheer en versiecontrole over data en broncode kunnen worden uitgevoerd. Het programma kan worden gezien als een directe concurrent voor het welbekende svn of Subversion. Mercurial wordt bijvoorbeeld gebruikt door Mozilla, Facebook en OpenJDK. Versie 5.0 is eerder deze maand uitgebracht, voorzien van de volgende lijst met aanpassingen:

Mercurial 5.0 release

This is an overview of the 5.0 release.

New Features
  • ui.relative-paths option for getting relative path output from most commands. This is enabled when ui.tweakdefaults is enabled.
  • expectsize() revset errors out if revset has unexpected number of elements.
  • config() template function for getting a config value.
  • {negrev} template keyword shows the negative revision number. This is convenient because it is usually shorter than the positive number, but note that it is less stable.
  • hg uncommit now has an --allow-dirty-working-copy option.
  • hg shelve now has --keep option, which shelves but also leaves the working directory unchanged.
  • hg diff will now include specified files in subrepos.
  • hg recover now has a --no-verify option
Python 3 Support (Beta)
Mercurial 5.0 has beta level support for running on Python 3.5, 3.6, and 3.7. The Mercurial distribution itself and all extensions bundled with it should work on these Python versions. To use Mercurial with Python 3, invoke setup.py with a Python 3 interpreter or set the PYTHON variable to a Python 3 interpreter when invoking the Makefile. e.g. python3.7 setup.py install or make install-home PYTHON=python3.7. 3rd party extensions will likely need to be ported to support running on Python 3 and attempts to run many existing extensions with a Python 3 powered Mercurial will result in extension loading failures. See the Python3 page for more. While the Mercurial test suite has a >99% pass rate when running with Python 3.5, 3.6, and 3.7, we anticipate that there are still many Python 3 bugs lingering in Mercurial. Please report Python 3 issues using the instructions at BugTracker. If you package Mercurial or distribute it to users, we do not recommend making Python 3 the default at this time. Python 3 is not yet very well tested on Windows and there are likely several more lingering issues on Windows compared to Linux, macOS, and other UNIX-like platforms.

Updated Windows Installers
Windows installer packaging has been transitioned away from ad-hoc processes employed on individual contributors' personal machines to occurring in reproducible infrastructure driven by code in the Mercurial repository itself. This transition should enable Windows packaging and releasing to be more reliable and reproducible. As part of this transition, there are changes to the Windows installers.

Inno Setup .exe Installer Changes
  • Python has been upgraded from 2.7.15 to 2.7.16
  • add_path.exe has been removed and the Inno installer now updates PATH via a Pascal script that is part of the installer
  • The dulwich package has been upgraded from version 0.18.3 to 0.19.11
  • The keyring package has been upgraded to version 18.0.1
  • The pygments package has been upgraded to version 2.3.1
  • The urllib3 package is now included
  • The MSVC Runtime DLLs (msvcm90.dll, msvcp90.dll, and msvcr90.dll) have been upgraded from version 9.0.21022.8 to 9.0.30729.9518
  • Various tcl/tk Python packages are now included (making the Python distribution more complete)
  • The pywin32 package is no longer included (pywin32 has not been required by Mercurial for years)
  • Known issue: the distutils package is broken
  • (x86 only) Python .pyd and .dll extension modules and support libraries are now installed as standalone files instead of bundled in the library.zip file. This behavior is now consistent with 64-bit installers.
Other Improvements
  • Improved color scheme for histedit's curses interface, making it more consistent with the curses hunk selector.
Bug Fixes
  • Histedit's curse interface has improved support for non ascii characters.
Backwards Compatibility Changes
  • color: change color of grep.rev label (BC)
  • commit: if interactive, look elsewhere for whitespace settings (BC)
  • diff: make sure we output stat even when --git is not passed (issue4037) (BC)
  • uncommit: abort if an explicitly given file cannot be uncommitted (BC)
  • The Windows Inno installers no longer ship the pywin32 package. This package was being bundled for historical reasons. Mercurial stopped using pywin32 several years ago and the disappearance of this package should not have any meaningful impact.
  • The 32-bit Windows Inno installers no longer distribute w9xpopen.exe. This should only impact people running Mercurial on Windows 95, 98, or ME.
  • The Windows MSI installers no longer include the Python sphinx package and its various dependencies.
  • The Windows MSI installers no longer include the pywin32 Python package.
  • The Windows MSI installers no longer include the enum and future Python packages.
Internal API Changes
  • add: pass around uipathfn and use instead of m.rel() (API)
  • addremove: pass around uipathfn and use instead of m.uipath() (API)
  • branchmap: drop branchcache.setdefault() (API)
  • branchmap: remove the dict interface from the branchcache class (API)
  • forget: pass around uipathfn and use instead of m.rel() (API)
  • largefiles: use uipathfn instead of match.{rel,uipath}() (API)
  • match: delete unused abs() (API)
  • match: delete unused rel() (API)
  • match: delete unused root and cwd arguments from {always,never,exact}() (API)
  • match: delete unused root and cwd arguments to constructors (API)
  • match: delete unused uipath() and _uipathrelative (API)
  • match: remove unused "exact" argument (API)
  • memctx: rename constructor argument "copied" to "copysource" (API)
  • patch: accept second matcher that applies only to copy sources (API)
  • patch: let caller pass in root-filtering matcher (API)
  • patch: pass in context objects into diffhunks() (API)
  • patch: replace "prefix" and "relroot" arguments by "pathfn" (API)
  • remove: pass around uipathfn and use instead of m.rel() (API)
  • revset: leverage getintrange() helper in relation-subscript operation (API)
  • scmutil: delete now-unused origpath() (API)
  • scmutil: remove special handling of pats==("",) in matchandpats() (API)
  • subrepo: adjust subrepo prefix before calling subrepo.add() (API)
  • subrepo: adjust subrepo prefix before calling subrepo.addremove() (API)
  • subrepo: adjust subrepo prefix before calling subrepo.archive() (API)
  • subrepo: adjust subrepo prefix before calling subrepo.diff() (API)
  • subrepo: adjust subrepo prefix before calling subrepo.forget() (API)
  • subrepo: adjust subrepo prefix before calling subrepo.removefiles() (API)
  • subrepo: avoid calculating subrepo prefix twice for cat() (API)
  • templatekw: move getrenamedfn() to scmutil (API)
Versienummer 5.0
Releasestatus Final
Besturingssystemen Windows 7, Linux, BSD, macOS, Solaris, UNIX, Windows Server 2012, Windows 8, Windows 10, Windows Server 2016
Website Mercurial
Download https://www.mercurial-scm.org/downloads
Licentietype Voorwaarden (GNU/BSD/etc.)

Door Japke Rosink

Meukposter

27-05-2019 • 10:42

6 Linkedin Google+

Bron: Mercurial

Update-historie

Reacties (6)

Wijzig sortering
Ik dacht altijd dat Mercurial meer een tegenhanger was voor GIT. Wat meteen de volgende vraag opwerpt en dat is waarom je voor Mercurial zou kiezen waar GIT toch eigenlijk wel de defacto standaard is geworden voor versiebeheer.
Nee, Mercurial is echt een tegenhanger van de andere klassieke CVSen. Geen van die klassiekers heeft concurrentie van git.
Nee, Mercurial is echt een tegenhanger van de andere klassieke CVSen. Geen van die klassiekers heeft concurrentie van git.
Mercurial is net als Git een DVCS (distributed), dus een directe concurrent. De ontwikkeling is ook met dezelfde aanleiding begonnen: het intrekken van de gratis BitKeeper licentie.
Wat meteen de volgende vraag opwerpt en dat is waarom je voor Mercurial zou kiezen waar GIT toch eigenlijk wel de defacto standaard is geworden voor versiebeheer.
Deze vraag snap ik niet helemaal; "waarom Renault als er al Volkswagen is"?

Git heeft misschien de populariteitsrace gewonnen, maar Mercurial overstijgt Git mijns inziens in gebruiksgemak. De commando’s van Git kunnen nogal onintuïtief zijn. Daarnaast ondersteunt Mercurial anonieme branches, wat ik ook handig vind. En changeset evolution werkt goed en is veiliger dan history herschrijven in Git. Goed, dat is mijn mening, over voorkeuren kunnen we discussiëren, maar ik denk dat dit wel voldoende aangeeft dat er bestaansrecht is voor meer dan één monopolist. Ik gebruik met veel plezier Mercurial voor mijn projecten.

[Reactie gewijzigd door Grauw op 27 mei 2019 22:06]

Hier ben ik het wel mee eens. GIT is technisch een prachtig product, maar de command line interface is werkelijk waar een gedrocht. Er zijn tegenwoordig gelukkig genoeg prima tools die dit voor je uit handen nemen, maar dit neemt niet weg dat de command line bij Mercurial een stuk consistenter en gebruiksvriendelijker is.

Daarnaast verschillen de twee qua mogelijkheden tegenwoordig vrijwel niks meer, maar wordt Mercurial vaak als eenvoudiger ervaren omdat je niet onmiddellijk wordt overvallen met alle geavanceerde concepten en opties. Mercurial kiest wat default opties waar GIT alles aan de gebruiker laat.

Als laatste was Mercurial in de begindagen vooral populair onder Windows gebruikers, doordat de tooling voor Windows veel beter was dan bij GIT. Met name TortoiseHg is een zeer goed programma, waar TortoiseGIT en SourceTree (zeker een paar jaar terug) slecht, dan wel onstabiel waren.
Mercurial is grote lijnen hetzelfde als Git, sommige vinden Mercurial prettiger omdat het wat simpeler is, sommige vinden Git fijner om het meer uitgebreid is. Het is persoonlijke voorkeur, al kom je Git wel wat vaker tegen.
Veel vaker lijkt mij: https://insights.stackove...-professional-developers2

Git scoort 70% volgens stackoverflow survey (2017) - voor 2018 zijn er geen cijfers daarop dacht ik

Op dit item kan niet meer gereageerd worden.


Apple iPhone 11 Nintendo Switch Lite LG OLED C9 Google Pixel 4 FIFA 20 Samsung Galaxy S10 Sony PlayStation 5 Apple

'14 '15 '16 '17 2018

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2019 Hosting door True