Mercurial

Software Screenshot:
Mercurial
Software Details:
Version: 4.5.3 updated
Upload Date: 22 Jun 18
Developer: Matt Mackall
Distribution Type: Freeware
Downloads: 30

Rating: 5.0/5 (Total Votes: 1)

Mercurial is an open source, free, lightweight, fast, portable and distributed Source Control Management (SCM) system and version control system specifically designed to efficient handling of very large distributed projects.

The software provides users with an easy-to-use and intuitive command-line interface, and it is currently used by a wide range of projects that require reliable, distributed and fast revision control, such as OpenSolaris, MoinMoin or Xen.

It is also very easy to learn, and it just works. Two quick start tutorials about how to clone a project and push changes, as well as to create a project and commit, are provided on the project’s homepage.

Command-line options

Among its command-line options, which can be viewed at a glance if you execute the ‘hg --help’ command in a terminal emulator/command prompt, we can mention the ability to add selected files on the next commit, add all new files and delete missing ones, view changeset information for each file, compress a repository revision as an unversioned archive, apply one or multiple changegroup files, copy changes between branches, or search changesets.

In addition, you can reverse the effect of previous changeset, create bookmarks, list existing bookmarks and repository named branches, list tracked files, view branch heads, import an ordered set of patches, verify the integrity of a repository, search for patterns in revisions or specified files, rename files, activate a stand-alone web server, update the working directory, create a new repository in the current directory, and much more.

Under the hood and supported OSes

Mercurial is written entirely in the Python programming language, designed from the ground up as a cross-platform software that runs well on all GNU/Linux distributions, as well as on the Microsoft Windows and Mac OS X operating systems. Both 32-bit and 64-bit architectures are supported at this time.

What is new in this release:

  • demandimport: do not raise ImportError for unknown item in fromlist
  • posix: make poll() restart on interruption by signal (issue5452)
  • hgweb: add missing slash to file log url in rss style

What is new in version :

  • demandimport: do not raise ImportError for unknown item in fromlist
  • posix: make poll() restart on interruption by signal (issue5452)
  • hgweb: add missing slash to file log url in rss style

What is new in version 4.2.3:

  • demandimport: do not raise ImportError for unknown item in fromlist
  • posix: make poll() restart on interruption by signal (issue5452)
  • hgweb: add missing slash to file log url in rss style

What is new in version 4.2.2:

  • demandimport: do not raise ImportError for unknown item in fromlist
  • posix: make poll() restart on interruption by signal (issue5452)
  • hgweb: add missing slash to file log url in rss style

What is new in version 4.1.1:

  • demandimport: do not raise ImportError for unknown item in fromlist
  • posix: make poll() restart on interruption by signal (issue5452)
  • hgweb: add missing slash to file log url in rss style

What is new in version 4.0.2:

  • demandimport: do not raise ImportError for unknown item in fromlist
  • posix: make poll() restart on interruption by signal (issue5452)
  • hgweb: add missing slash to file log url in rss style

What is new in version 3.7.2:

  • bundlerepo: properly handle hidden linkrev in filelog (issue4945)
  • bundlerepo: properly handle hidden linkrev in manifestlog (issue4945)
  • demandimport: add _imp to ignore list
  • doc: correct example concerning "hg purge" alias in man page "hgrc.5"
  • doc: remove deprecated option from synopsis of command help
  • fileset: fix copy/paste in eol() error message
  • help: fix typo in backgroundclose documentation
  • help: hg.intevation.de is new primary name of hg.intevation.de (and new cert)
  • help: update template examples to use reST literal syntax
  • hg: obtain lock when creating share from pooled repo (issue5104)
  • log: fix order of revisions filtered by multiple OR options (issue5100)
  • rebase: update working directory when aborting (issue5084)
  • revert: properly revert to ancestor of p2 during merge (issue5052)
  • revset: flatten chained 'list' operations (aka function args) (issue5072)
  • setup: avoid procedure related to hg.exe at setup.py --pure
  • ui: fix crash by non-interactive prompt echo for user name
  • unionrepo: properly handle hidden linkrev in revlog (issue5070)
  • zeroconf: forward all arguments passed to ui.configitems() wrapper

What is new in version 3.7.1:

  • amend: don't preserve most extra fields
  • graft: don't preserve most extra fields
  • histedit: fix typo in documentation
  • osutil: disable compilation of recvfds() on unsupported platforms
  • osutil: do not abort loading pure module just because libc has no recvmsg()
  • rebase: backout changeset 986d04b9fedd
  • rebase: backout changeset d755a9531fce
  • rebase: don't preserve most extra fields

What is new in version 3.5.1:

  • convert: fix git copy file content conversions
  • filesets: ignore unit case in size() predicate for single value
  • help: fix typo familar -> familiar
  • help: fix typo in scripting documentation
  • hg: avoid auto sharing when the clone destination is remote
  • hgweb: fix trust of templates path (BC)
  • histedit: backout ebb5bb9bc32e
  • largefiles: ensure lfutil.getstandinmatcher() only matches standins
  • match: fix a case-only rename + explicit path commit on icasefs (issue4768)
  • parsers: fix memory leak in compute_phases_map_sets
  • rebase: lock the repo during the full rebase operation
  • revset: prevent crash caused by empty group expression while optimizing "and"
  • revset: prevent crash caused by empty group expression while optimizing "or"
  • strip: use the 'finally: tr.release' pattern during stripping
  • update: wlock the repo for the whole 'hg update' command
  • wix: avoid an abort with 'hg help -k foo'

What is new in version 3.4.2:

  • changegroup: properly compute common base in changeggroupsubset (issue4736)
  • crecord: fix a typo introduced when moving crecord to core
  • crecord: fix three typos introduced while moving crecord into core
  • hgwebdir: avoid redundant repo and directory entries when 'web.name' is set
  • hgwebdir: don't allow the hidden parent of a subrepo to show as a directory
  • parsers: do not cache RevlogError type (issue4451)
  • pull: avoid race condition with 'hg pull --rev name --update' (issue4706)
  • templater: do not preprocess template string in "if" expression (issue4714)
  • templater: evaluate arguments passed to diff() appropriately
  • templater: parse "..." as string for 2.9.2-3.4 compatibility (issue4733)
  • transplant: only pull the transplanted revision (issue4692)

What is new in version 3.4:

  • commands:
  • annotate: add option to annotate working-directory files
  • annotate: always prepare ancestry context of base fctx (issue4600)
  • annotate: always adjust linkrev before walking down to parents (issue4623)
  • annotate: prepare ancestry context of workingfilectx
  • bookmarks: add incoming() to replace diff() for incoming bookmarks
  • bookmarks: add outgoing() to replace diff() for outgoing bookmarks
  • bookmarks: check @pathalias suffix before available @number for efficiency
  • bookmarks: enhance test of showing detail about incoming/outgoing bookmarks
  • bookmarks: prevent divergent bookmark from being updated unexpectedly
  • bookmarks: reuse @number bookmark, if it refers changeset referred remotely
  • bookmarks: rewrite comparing bookmarks in commands.summary() by compare()
  • bookmarks: show detailed status about incoming/outgoing bookmarks
  • clone: add progress support to hardlink clones (issue3059)
  • commands.import: accept a prefix option
  • commands.push: abort when revisions evaluate to empty set (BC)
  • commands: add ui.statuscopies config knob
  • debuginstall: expand the editor path before searching for it (issue4380)
  • files: split reusable implementation into cmdutil for subrepo support
  • files: use ctx object to access dirstate
  • graft: allow creating sibling grafts
  • graft: record intermediate grafts in extras
  • log: display closing-branch nodes as "_" (BC)
  • log: fix --follow null parent not to include revision 0
  • log: make -fr show complete history from the given revs
  • log: prefer 'wctx' over 'pctx' for working context
  • patch.internalpatch: accept a prefix parameter
  • patch.internalpatch: add a default value for prefix
  • patch: rename pathstrip to pathtransform
  • pull: print "pulling from foo" before accessing the other repo
  • push: acquire local 'wlock' if "pushback" is expected (BC) (issue4596)
  • resolve: silence warning of unknown pats for -l/--list (BC)
  • revert: evaluate filesets against working directory (issue4497)
  • revert: fix --interactive on local modification (issue4576)
  • revert: stop marking files clean after interactive revert (issue4592)
  • revert: accept just -I/-X without paths or -a/-i (issue4592)
  • revert: apply normallookup on reverted file if size isn't changed (issue4583)
  • revert: restore the ability to revert across case only renames (issue4481)
  • status: add relative directory help text (issue3835)
  • core:
  • bundle2: capture transaction rollback message output (issue4614)
  • bundle2: disable ouput capture unless we use http (issue4613 issue4615)
  • changelog: fix readpending if no pending data exist (issue4609)
  • dirstate: fix order of initializing nf vs f
  • filelog: allow censored files to contain padding data
  • merge: run update hook after the last wlock release
  • pushkey: flush pending data before running a pre-pushkey hook (issue4607)
  • repoview: improve compute staticblockers perf
  • revlog: _addrevision creates full-replace deltas based on censored revisions
  • revlog: add "iscensored()" to revlog public API
  • revlog: addgroup checks if incoming deltas add censored revs, sets flag bit
  • revlog: in addgroup, reject ill-formed deltas based on censored nodes
  • revlog: make converting from inline to non-line work after a strip
  • revlog: special case expanding full-replacement deltas received by exchange
  • subrepo: don't write .hgsubstate lines with empty subrepo state (issue4622)
  • subrepo: update the help text to account for diff -I/-X gitsubrepo support
  • tags: establish a separate and shared cache of .hgtags filenodes
  • tags: change format of tags cache files
  • tags: have a different cache file per filter level
  • ui: disable revsetaliases in plain mode (BC)
  • util: add progress callback support to copyfiles
  • windows: make shellquote() quote any path containing '' (issue4629)
  • extensions:
  • color: be more conservative about setting ANSI mode on Windows (BC)
  • color: fix crash in cmd.exe
  • color: omit terminfo/win32 warning if non-interactive (issue4543)
  • color: support a different color mode when the pager is active
  • convert: adjust progress bar for octopus merges (issue4169)
  • histedit: add --edit-plan option to histedit
  • histedit: allow histedit --continue when not on a descendant (BC)
  • histedit: fix preventing strips during histedit
  • histedit: fix style of new error message
  • histedit: improve roll action integration with fold
  • histedit: fix rollup prompting for a commit message (issue4606)
  • largefiles: don't crash when cloning to a remote repo
  • largefiles: don't mangle filesets when fixing up the log matcher
  • largefiles: always consider updatelfiles 'checked' parameter set
  • largefiles: avoid infinite recursive call of openlfdirstate in overriderevert
  • largefiles: don't create chain of contains calls
  • largefiles: don't prefix standin patterns with '.hglf' when logging
  • largefiles: don't warn when reverting a forgotten largefile
  • largefiles: extract and reuse 'standin' variable in overriderevert()
  • largefiles: for update -C, only update largefiles when necessary
  • largefiles: handle logging from outside the repo
  • largefiles: introduce lfutil.findstorepath()
  • largefiles: override cmdutil.revert() instead of comands.revert()
  • largefiles: report the source of copied/moved largefiles in status -C
  • largefiles: set the extension as enabled locally after a clone requiring it
  • largefiles: teach log to handle patterns
  • largefiles: update _subdirlfs() comment
  • largefiles: use common function to build content of .hg_archival.txt
  • largefiles: use lfutil.findstorepath() when verifying a local repo
  • largefiles: use the core file copy logic to validate the destination path
  • largefiles: use the share source as the primary local store (issue4471)
  • mq: avoid silent failure when single patch doesn't apply (issue4604)
  • rebase: don't forward "source" argument to rebase (issue4633)
  • rebase: restore bookmark state on abort
  • record: edit patch of newly added files (issue4304)
  • record: fix adding new file with record from within a subdir (issue4626)
  • record: fix record with change on moved file crashes (issue4619)
  • shelve: acquire lock in the right order
  • shelve: add interactive mode
  • shelve: add interactive mode command line option
  • hgweb:
  • hgweb: resurrect tag on diffline to fix rendering in monoblue style
  • hgweb: use introrev() for finding parents (issue4506)
  • json: implement {bookmarks} template
  • json: implement {branches} template
  • json: implement {changeset} template
  • json: implement {comparison} template
  • json: implement {fileannotate} template
  • json: implement {filediff} template
  • json: implement {helptopics} template
  • json: implement {help} template
  • json: implement {manifest} template
  • json: implement {shortlog} and {changelog} templates
  • json: implement {tags} template
  • unsorted:
  • archive: change the default prefix to '' from None
  • archive: look for first visible revision to build repo identity (issue4591)
  • bundle2-localpeer: properly propagate the server output on error (issue4594)
  • bundle2-wireproto: properly propagate the server output on error (issue4594)
  • changeset_printer: display p1rev:p1node with "+" suffix for workingctx
  • check-commit: be more picky about detection of wrong bug tag
  • check-commit: check capitalization in summary lines
  • churn: deprecate -t option in favour of -T
  • crecord: fix another underbar
  • crecord: fix underbar style for orig_stdout
  • devel-warn: add a prefix to all messages ("devel-warn: ")
  • dirs._addpath: don't mutate Python strings after exposing them (issue4589)
  • dispatch: consolidate formatting of ParseErrors
  • dispatch: offer near-edit-distance suggestions for {file,rev}set functions
  • dispatch: offer suggestions of similar-named commands
  • extensions: support callbacks after another extension loads
  • get-with-headers: support parsing and pretty printing JSON
  • graphlog: do not bypass commands.log so that -fr works
  • graphlog: move comment and flag denoting revs might be unsorted
  • graphlog: remove too early return from getgraphlogrevs() for empty repo
  • lazymanifest: fix memory leak in lmiter_iterentriesnext() after 3d485727e45e
  • lazymanifest: fix pure hg iterkeys()
  • linkrev: fix issue with annotate of working copy
  • manifestv2: add support for reading new manifest format
  • manifestv2: add support for writing new manifest format
  • obsolete: avoid infinite loop from obs-cycle in divergence (issue4126)
  • record: add interactive option to the commit command
  • record: allow editing new files (issue4304)
  • record_curses: fix ui bug for newly added file
  • revbranchcache: add test for when the cache is not writable
  • revbranchcache: move out of branchmap onto localrepo
  • revbranchcache: populate cache incrementally
  • revbranchcache: store repo on the object
  • revbranchcache: write cache even during read operations
  • revrange: don't parse revset aliases as hash prefixes (issue4553)
  • rollback: clear resolve state (issue4593)
  • ssl: resolve symlink before checking for Apple python executable (issue4588)
  • ssl: set explicit symbol "!" to web.cacerts to disable SSL verification (BC)
  • strip: properly clear resolve state with --keep (issue4593)
  • subrepo: add 'cat' support for git subrepos
  • subrepo: add basic support to hgsubrepo for the files command
  • subrepo: add include/exclude support for diffing git subrepos
  • subrepo: add status support for ignored and clean files in git subrepos
  • subrepo: change arguments of abstractsubrepo.init (API)
  • subrepos: support adding files in git subrepos
  • test-convert-git: show insane progress bar with octopus merge (issue4169)
  • test-histedit-edit.t: demonstrate qnew fails during a histedit (issue4366)
  • test-https: enable dummycert test only if Apple python is used (issue4500)
  • test-shelve: be more lenient about whitespace (issue4124)
  • tests: add test showing tags cache drops filtered heads (issue4550)
  • tests: handle deleted .hg directory (git 2.2.0 and higher) (issue4585)
  • trydiff: join filename with prefix only once
  • unbundle: acquire 'wlock' when processing bundle2 (BC) (issue4596)
  • webcommands: define a dict of available commands
  • webcommands: define web commands using a decorator
  • color: be more conservative about setting ANSI mode on Windows (BC)
  • commands.push: abort when revisions evaluate to empty set (BC)
  • histedit: allow histedit --continue when not on a descendant (BC)
  • log: display closing-branch nodes as "_" (BC)
  • push: acquire local 'wlock' if "pushback" is expected (BC) (issue4596)
  • resolve: silence warning of unknown pats for -l/--list (BC)
  • ssl: set explicit symbol "!" to web.cacerts to disable SSL verification (BC)
  • unbundle: acquire 'wlock' when processing bundle2 (BC) (issue4596)
  • subrepo: change arguments of abstractsubrepo.init (API)

What is new in version 3.3.3:

  • adjustlinkrev: handle 'None' value as source
  • adjustlinkrev: prepare source revs for ancestry only once
  • amend: check for directory renames for both merge parents (issue4516)
  • annotate: reuse ancestry context when adjusting linkrev (issue4532)
  • dirstate: don't require exact case when adding dirs on icasefs (issue4578)
  • dirstate: make sure rootdir ends with directory separator (issue4557)
  • filemerge: clean up language in mergemarkertemplate help
  • forget: cleanup the output for an inexact case match on icasefs
  • hgweb: prevent loading style map from directories other than specified paths
  • mergecopies: reuse ancestry context when traversing file history (issue4537)
  • templates: fix "log -q" output of default style
  • templates: fix "log -q" output of phases style
  • win32: 'raise ctypes.WinError' -> 'raise ctypes.WinError()'

What is new in version 3.3:

  • commands:
  • add: add back forgotten files even when not matching exactly (BC)
  • addremove: add back forgotten files (BC)
  • addremove: add support for the -S flag
  • addremove: print relative paths when called with -I/-X (BC)
  • addremove: support addremove with explicit paths in subrepos
  • backout: add --commit option
  • commit: abort if --addremove is specified, but fails
  • commit: remove reverse search for copy source when not in parent (issue4476)
  • commit: propagate --addremove to subrepos if -S is specified (issue3759)
  • graft: show more useful status information while grafting
  • core:
  • bundles: do not overwrite existing backup bundles (BC)
  • osx: patch .pax.gz files in pkg bundles so they extract as root (issue4081)
  • revset: handle hidden linkrev for file missing for head (issue4490)
  • revset: allow rev(-1) to indicate null revision (BC)
  • revset: fix ancestors(null) to include null revision (issue4512)
  • subrepo: don't abort in add when non-hg subrepos are present (issue4513)
  • cmdserver: use given streams as pipe channels like other commands
  • extensions: only check compatibility against major and minor versions (BC)
  • https: support tls sni (server name indication) for https urls (issue3090)
  • ignore: resolve ignore files relative to repo root (issue4473) (BC)
  • linkrev: handle filtered linkrev with no visible children (issue4307)
  • linkrev: also adjust linkrev when bootstrapping annotate (issue4305)
  • linkrev: use the right manifest content when adjusting linrev (issue4499)
  • memctx: calculate manifest correctly with newly-removed files (issue4470)
  • memctx: fix manifest for removed files (issue4470)
  • obsstore: disable garbage collection during initialization (issue4456)
  • subrepo: support remove with explicit paths in subrepos
  • subrepo: add full revert support for git subrepos
  • subrepo: add partial diff support for git subrepos
  • subrepo: add status support for ignored files in git subrepos
  • win32: remove Mercurial.ini file from Inno Setup installer (issue4435)
  • hgweb:
  • hgweb: allow viewing diffs against p1 or p2 for merge commits (issue3904)
  • extensions:
  • color: add support for colorizing git subrepo diffs
  • color: add missing 'dim' in _effects
  • convert: on svn failure, note libsvn version (issue4043)
  • convert: replace revision references in messages if they are >= short hashes
  • convert: handle LookupError in mercurial_source.lookuprev()
  • extdiff: reintroduce backward compatibility with manual quoting of parameters
  • histedit: add a test to show that issue4251 is fixed (issue4251)
  • largefiles: fix commit of a directory with no largefile changes (issue4330)
  • largefiles: use 'default' path for pulling largefiles, not 'default-push'
  • largefiles: enable subrepo support for add, forget, remove
  • largefiles: show progress when checking standin hashes in outgoing changesets
  • mq: smarter handling of plain headers
  • patchbomb: don't honor whitespace and format-changing diffopts (BC)
  • rebase: show more useful status information while rebasing
  • rebase: ensure rebase revision remains visible (issue4504)
  • extdiff: avoid unexpected quoting arguments for external tools (issue4463)
  • highlight: ignore Unicode's extra linebreaks (issue4291)
  • record: don't honor format-changing diffopts (issue4459)
  • share: add option to share bookmarks
  • transplant: properly skip empty changeset (issue4423)

What is new in version 3.2.4:

  • demandimport: blacklist distutils.msvc9compiler (issue4475)
  • largefiles: backout f72d73937853 - linear updates handle m -> a differently
  • largefiles: fix a spurious missing file warning with 'remove -A' (issue4053)
  • largefiles: fix a spurious missing file warning with forget (issue4053)
  • largefiles: introduce the 'composelargefilematcher()' method
  • largefiles: mark lfile as added in lfdirstate when the standin is added
  • sshpeer: more thorough shell quoting

What is new in version 3.2.3:

  • context: stop setting None for modified or added nodes
  • darwin: omit ignorable codepoints when normcase()ing a file path
  • encoding: add hfsignoreclean to clean out HFS-ignored characters
  • largefiles: don't actually remove largefiles in an addremove dry run
  • log: fix log -f slow path to actually follow history
  • log: fix log revset instability
  • manifest: disallow setting the node id of an entry to None
  • pathauditor: check for Windows shortname aliases
  • pathauditor: check for codepoints ignored on OS X
  • rebase: ignore negative state when updating back to original wc parent
  • update: add tests for untracked local file
  • update: don't overwrite untracked ignored files on update

What is new in version 3.2.2:

  • changegroup: fix file linkrevs during reorders (issue4462)
  • hgweb: send proper HTTP response after uncaught exception
  • largefiles: avoid exec-bit examination on the platforms unaware of it
  • largefiles: don't show largefile/normal prompts if one side is unchanged
  • manifest: fix a bug where working copy file 'add' mark was buggy
  • merge: be precise about what merged into what in short desc
  • merge: before cd/dc prompt, check that changed side really changed
  • mq: fix update of headers that occur in the "wrong" order
  • mq: introduce insertplainheader - same naive implementation as before
  • mq: when adding headers in plain mode, separate them from message (issue4453)
  • mq: when setting message in plain mode, separate it from header (issue4453)
  • push: stop independent usage of bundle2 in syncphase (issue4454)
  • pushkey: gracefully handle prepushkey hook failure (issue4455)
  • rename: properly report removed and added file as modified (issue4458)
  • revert: look for copy information for all local modifications
  • revset: fix first and last for generatorset (issue4465)
  • templates: fix broken "less" & "more" links in paper style (issue4460)

What is new in version 3.2.1:

  • bookmarks: fix formatting of exchange message (issue4439)
  • changegroup: don't store unused value on fnodes (issue4443)
  • convert: use git diff-tree -Cn% instead of --find-copies=n% for older git
  • discovery: indices between sample and yesno must match (issue4438)
  • discovery: limit 'all local heads known remotely' to real 'all' (issue4438)
  • extdiff: quote user-supplied options passed to shell
  • hgweb: fix a crash when using web.archivesubrepos
  • mail: actually use the verifycert config value
  • rebase: fix rebase with no common ancestors (issue4446)
  • serve: correct meta variable of --daemon-pipefds option
  • templater: don't overwrite the keyword mapping in runsymbol() (issue4362)

Similar Software

bloom
bloom

20 Feb 15

unpushed
unpushed

14 Apr 15

udr
udr

12 May 15

bright-vc
bright-vc

20 Feb 15

Comments to Mercurial

Comments not found
Add Comment
Turn on images!