A vanilla install of Mercurial does not have many features. This is anintentional choice by Mercurial to keep the base install simple and freeof foot guns.
Guided Installation of Extensions¶
The FSMonitor class manages filesystem watches and is used to receive events. Call the adddirwatch method to add a directory watch to the monitor: m = FSMonitor watch = m.adddirwatch ('/dir/to/watch') Once a watch has been added, you can call readevents to read a list of filesystem events. A cross-platform Keepass Secret Management vault extension. See the README.MD in the module for more details. The FSMonitor Daemon feature contains the following parts: fsmonitor-ipc.c: Routines containing the fsmonitoripc prefix are used by client processes to send commands and requests to the git fsmonitor-daemon daemon process. FTR, the OS X check is because we can't reliably compile Python C extensions on Linux. However, since fsmonitor is part of the Mercurial distribution, if you are running Mercurial 3.8, the fsmonitor C extensions should be part of the distribution. So it should be safe to load on Linux. FsMonitor.sys - NmpMonitor.sys - NmpProxy.sys - WfpMonitor.sys 6. You'll see a dialog box that tells you you need to reboot the system. Reboot the system and monitor for crashes.
If you have a copy of the Firefox source repository, you can run./mach vcs-setup to run an interactive wizard that willguide you through the process of configuring Mercurial.
Important
mach vcs-setup is the recommended way to configure Mercurialfor use at Mozilla. The sections below effectively duplicate thework that mach vcs-setup does for you.
Installing Extensions¶
To install an extension, you’ll need to add a line to your Mercurialconfiguration file.
As a user, you care about the following configuration files:
- Your global hgrc
- A per-repository hgrc
Your user-global configuration file is ~/.hgrc
. Settings in thisfile apply to all hg
commands you perform everywhere on your system(for your current user).
Each repository that you clone or initialize has an optional.hg/hgrc
file that provides repository-specific configurations.
Mercurial starts by loading and applying settings from globalconfiguration files and then overlays configurations from eachlesser-scoped files.
Tip
To learn more about Mercurial configuration files, run hghelpconfig
.
To install an extension, you add a line under the [extensions]
section of a config file like the following:
This is saying activate the **foo* extension whose code is present atpath/to/extension*.
Solaredge Log In Portal
Core Extensions That Almost Everyone Wants¶
Mercurial ships with a number of built-in extensions. Of these, everyuser will almost always want to install the following extensions:
- fsmonitor
- Monitor the filesystem for changes using so operations queryingfilesystem state complete faster.
Important
fsmonitor is highly recommended when interacting with the Firefoxrepository. It will make Mercurial commands faster.
Since core extensions are bundled with Mercurial, they have a specialsyntax that makes them easier to install:
Core Extensions to Perform History Rewriting¶
Out of the box, Mercurial only allows commits operations to be additive.If you make a mistake, the solution is to create a new commit that fixesit. You can’t rewrite old commits. You can’t change the order ofexisting commits. You can’t change the shape of the DAG of the commits.
These operations all have something in common: they rewrite history.
Note
Mercurial doesn’t allow history rewriting by default because it is amajor foot gun for people new to version control. A potentialside-effect of history rewriting is data loss or confusion due toloss of state. Mercurial believes that these risks should be opt-inand has thus shipped without any history rewriting features enabledby default.
Mercurial ships with a number of built-in extensions that enable historyrewriting:
Enables the hghistedit
command, which brings up a text editorlisting commits, allowing you to change order and specify actions toperform.
The functionality is roughly equivalent to gitrebase-i
.
hgrebase
command, which allows you to splice commitsacross different chains in the DAG.Core Extensions to Enable Different Workflows¶
Mercurial ships with some extensions that enable alternate workflows.These include:
- shelve
- Enables uncommitted work to be saved to a standalone file withoutbeing committed to the repository.
chg¶
chgis a C wrapper for the hg
command. Typically, when you type hg
,a new Python process is created, Mercurial is loaded, and your requestedcommand runs and the process exits.
With chg
, a Mercurial command server background process is createdthat runs Mercurial. When you type chg
, a C program connects to thatbackground process and executes Mercurial commands.
chg can drastically speed up Mercurial. This is because the overheadfor launching a new Python process is high (often over 50ms) and theoverhead for loading Mercurial state into that process can also be high.With chg
, you pay this cost once and all subsequent commandseffectively eliminate the Python and Mercurial startup overhead. Forexample:
Here, we see ~100ms wall time improvement with chg activated. That may notsound like a lot, but you will notice.
If you have installed Mercurial through a package manager (such as Homebrewor APT) you may already have chg
installed. For more information, seehere.
3rd Party Extensions You Should Highly Consider¶
evolve¶
The evolve extensionopens up new workflows that harness Mercurial’s ability to record howchangesets evolve over time.
Typically, when history is rewritten, new commits are created and the oldones are discarded. With the evolve
extension enabled, Mercurial insteadhides the old commits and writes metadata holding the relationship betweenold and new commits. This metadata can be transferred between clients,allowing clients to make intelligent decisions about how to recover fromrewritten history. For example, if a force push is performed, a clientwill know exactly what rebase to perform to mimic what was done elsewhere.
The evolve
extension also enables useful Mercurial commands such ashgprevious
, hgnext
, and hgamend
(which is a shortcut forhgcommit--amend
).
Released:
Filesystem monitoring
Project description
Supported Platforms
- Linux 2.6 (inotify)
- Windows (ReadDirectoryChangesW with I/O completion ports)
- Any other platform (polling)
Introduction
The fsmonitor module provides live filesystem monitoring. It can be used to monitor forevents such as file creation, deletion, modification and so on:
The FSMonitor class manages filesystem watches and is used to receive events. Call theadd_dir_watch() method to add a directory watch to the monitor:
Once a watch has been added, you can call read_events() to read a list of filesystemevents. This is a blocking call and in some cases it might return an empty list, so itneeds to be re-called repeatedly to get more events:
The FSMonitorThread class can be used to receive events asynchronously with a callback.The callback will be called from another thread so it is responsible for thread-safety.If a callback is not specified, the thread will collect events in a list which can beread by calling read_events().
More Details
Fsmonitor
See the example code in the examples directory.
Contact Details
Please send any comments or questions to: luke@iogopro.co.uk
Please report bugs on the github issue tracker.
– Luke McCarthy
Release historyRelease notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size fsmonitor-0.1.tar.gz (6.3 kB) | File type Source | Python version None | Upload date | Hashes |
Continuous Esd Monitoring Systems
Hashes for fsmonitor-0.1.tar.gz
Algorithm | Hash digest |
---|---|
SHA256 | 397fc47e339ce8aaa6f7a27fe376d4e614579038ff9c61bf28c6733fb1d0c5cd |
MD5 | 46c2fc01401bd6c79cf9eafef33db8c2 |
BLAKE2-256 | 311562befc5ae5117fd4e6b7dfb367e992226080d6d206d27dd2212c03300b2d |