Mercurial エクステンションを使う

Mercurial の機能を任意のエクステンションで拡張しよう。

1. はじめに

Mercurial は安全で分かりやすいコマンドセットを提供しており、たいていのユーザーがその機能を満足できるように設計されています。 Mercurial のパワーユーザーはエクステンションを活用できるかもしれません。エクステンションを使うと、強力な新機能を Mercurial のコアに統合することができます。

<!> エクステンションが提供する機能は、 Mercurial のポリシー、つまり、安全性、信頼性、使い易さを満たしていないかもしれません。

エクステンションのヘルプは 'hg help extensions' で表示できます。有効にしたエクステンションのヘルプを見るには、 'hg help <extension-name>' を実行してください。

2. エクステンションを有効にする

エクステンション "foo" を有効にするには、 そのエクステンションが Mercurial とともに配布されているか Python のサーチパスに含まれている場合は、 対応するエントリーを hgrc ファイルに追加してください。 例:

[extensions]
foo =

エクステンションをフルパスで指定してもかまいません (.py ファイル名か __init__.py のあるフォルダ名):

[extensions]
myfeature = ~/.hgext/myfeature.py

Mercurial と共に配布されていないエクステンションを使うには、ダウンロード後どこでも良いのでファイルシステム上に置いてください。この例では、 ~/.hgext/ にダウンロードしています。 注意: Windows 環境でディレクトリを指定する場合は、末尾にバックスラッシュをつけないでください。 (issue4187)

上位スコープの hgrc で有効になっているエクステンションを特に無効化したい場合は、 ! をパスの前に足してください:

[extensions]
# /path/to/extension/bar.py にある bar エクステンションを無効化
bar = !/path/to/extension/bar.py
# baz エクステンションのパスを指定しなくても同じこと
baz = !

たいていのエクステンションは、同じ設定ファイル上の専用セクションで細かい設定ができるようになっています。

3. Mercurial とともに配布されているエクステンション

以下のエクステンションは Mercurial プロジェクトで保守・配布しています。

名称

ページ

説明

acl

AclExtension

コントロールリストをもとにリポジトリの一部へのコミットアクセスを制御

blackbox

BlackboxExtension

Log events to .hg/blackbox.log for post-mortem debugging

bugzilla

BugzillaExtension

チェンジセットで Bugzilla の ID を参照していれば、エントリーを更新

censor

CensorExtension

Erase file content at a given revision

churn

ChurnExtension

Show change statistics for mercurial operations per author

clonebundles

ClonebundlesExtension

Advertise pre-generated bundles to seed clones

color

ColorExtension

カラフルな diff, status, qseries コマンド

convert

ConvertExtension

他の SCM から Mercurial へリポジトリを変換

eol

EolExtension

Translate line-ending characters between working copy and repository

extdiff

ExtdiffExtension

外部プログラムで変更内容を比較

factotum

FactotumExtension

HTTP authentication with factotum

fsmonitor

FsMonitorExtension

Integrates the file-monitoring program watchman with Mercurial to produce faster status results.

gpg

GpgExtension

GPG を使ったチェンジセットの署名とその検証

hgcia

HgciaExtension

CIA に通知

hgk

HgkExtension

Graphical repository and history browser based on gitk

highlight

HighlightExtension

hgweb のファイルリビジョン表示でシンタックスハイライト

histedit

HisteditExtension

Edit, fold, drop changesets in the style of git rebase --interactive

keyword

KeywordExtension

管理中のファイルで CVS 風のキーワード展開

largefiles

LargefilesExtension

Track large binary files (new in 2.0)

mq

JapaneseMqExtension

Mercurial パッチキュー - 変更内容を一連のパッチとして管理

notify

NotifyExtension

リポジトリの変更を登録メールアドレスへお知らせ

pager

PagerExtension

Allows you to choose a pager

patchbomb

PatchbombExtension

チェンジセットを一連のパッチ email として送信

purge

PurgeExtension

Mercurial で管理していないファイル・ディレクトリを消去

rebase

JapaneseRebaseExtension

リビジョンの分岐点を移動

relink

RelinkExtension

Recreates hardlinks between repository clones

schemes

SchemesExtension

Add shortcuts to urls as url schemes

share

ShareExtension

Share repository history between multiple repos

shelve

ShelveExtension

Save and restore changes to the working directory

strip

StripExtension

Strip changesets and their descendants from history

transplant

TransplantExtension

Cherry-picking, rebasing and changeset rewriting

win32mbcs

JapaneseWin32mbcsExtension

Windows で shift_jis・big5 ファイル名を使う

zeroconf

ZeroconfExtension

Announce and browse repositories via zeroconf/bonjour

4. 外部提供のエクステンション

エクステンションの一覧は常に更新されています。最新の情報は UsingExtensions (英語) を参照してください。

These extensions are not distributed together with Mercurial. The Mercurial project provides no guarantees about these and does not maintain or test them.

Note that Mercurial explicitly does not provide a stable API for extension programmers, so it is up to their respective providers/maintainers to adapt them to API changes.

actionlog

ActionLogExtension

Provides hook intended to help keep track of a remote repository's state that multiple people have access to update

activity

ActivityExtension

Create an image representing the activity of the repository

all_dirs

AllDirsExtension

Execute the same Mercurial command in all repositories down directory tree.

allpaths

AllPathsExtension

Run commands like push on multiple paths

artemis

ArtemisExtension

Simple and light-weight issue tracker

attic

AtticExtension

Easily deal with individual patches

automv

AutomvExtension

Automatically detect file renames

autopager

AutopagerExtension

Invoke pager when output is longer than one screen

b

bExtension

Distributed bug tracker based off the lightweight task manager t

bfiles

BfilesExtension

Handle large binary files

bigfiles

BigfilesExtension

Support versions of big files with storage outside hg repo

bitbucketize

BitBucketizeExtension

Create, modify, or delete BitBucket clone from command line

bookbinder

bookbinder

Make bookmarks behave like a feature branch (as opposed to a label)

boundmode

BoundModeExtension

Enables a bound mode (commit command auto-pushes)

branchhead

BranchHeadExtension

Show head(s) of the branch the working directory or given revision is on

buglink

BugLinkExtension

Allow to link changesets and Issue IDs

bugtracker

BugtrackerExtension

A tiny distributed bugtracking extension for Mercurial

bundleclone

BundleCloneExtension

Clone using pre-generated bundles

casefold

CaseFoldExtension

Successful unjams case-folding conflicts

caseguard

CaseGuardExtension

Prevents users from adding files to a repository if that could cause a CaseFolding collision

casestop

CasestopExtension

Stops case-folding conflicts on commit

cedit

CeditExtension

Command line editor for configuration files, never manually edit hgrc files again

changelog

ChangelogExtension

Auto-generate commit message from changelog entry

chart

ChartExtension

Display activity graphs (see also ActivityExtension and ChurnExtension)

checkfiles

CheckFilesExtension

Commit hook and command to check for and fix tabs and trailing whitespace

checkmeta

CheckMetaExtension

Enforces configurable file characteristics like file encoding.

cifiles

CifilesExtension

Print the names of all checked-in files

cloc

ClocExtension

Count lines of source code

codesmell

CodesmellExtension

Ask before committing "smelly" changes

commits

CommitsExtension

Commit modified files as multiple changesets at once

commitsigs

CommitsigsExtension

Embed GnuPG and OpenSSL signatures directly into changesets

committer

CommitterExtension

Record the committer when you are not the author of a changeset.

collapse

CollapseExtension

Collapse consecutive changesets into one

configexpress

ConfigExpressExtension

monitor and enforce client configuration from a server

config

ConfigExtensionCommandLine

Manage config files via command line only

config

ConfigExtension

Manage hgrc files via dialogs and command line

contains

ContainsExtension

Test whether a changset is contained in a branch

crecord

CrecordExtension

Select graphically which files/hunk/lines to commit

cutehg

CuteHgExtension

A growing set of easy to install and use dialogs for mercurial commands

cvscommit

CvscommitExtension

Push changesets to CVS

defpasswd

DefpasswdExtension

Automatically provide credentials (username/passwords) read from a file.

deps

DepsExtension

Create and manage versioned repository dependencies

diff-in-diffs

DiffInDiffsExtension

Adds a new command to create the diff of two diffs

digest

DigestExtension

Create and use small digest files for outgoing/bundle

dotlog

DotLogExtension

Yet Another DOT grapher

dynapath

dynapath

Dynamically rewrite paths to use local mirrors based on current local IP.

dynamic_username

DynamicUsernameExtension

Set your username per directory tree.

easycommit

EasycommitExtension

Command-line GUI for committing changes

easymerge

EasymergeExtension

Command-line GUI for merging

editcommitmsgs

EditcommitmsgsExtension

Change commit messages for all applied mq patches in one go

exportfiles

hgexportfiles

Export all files changed in a revision or revision range to a directory.

exclude

ExcludeExtension

Exclude some modified files by default (e.g., config files that are always modified)

excludechangesets

ExcludeChangesetsExtension

Exclude "bad" changesets from being re-added to a central repository

fastimport

FastImportExtension

Read a git "fast import" stream and turn it into changesets in a Mercurial repository

filereview

FileReviewExtension

Perform code review for any project using mercurial

fixcase

FixcaseExtension

Fix problems where an external tool has changed the case of a filename

fixrenames

FixrenamesExtension

Replay old history to add rename information

fixutf8

FixUtf8Extension

Fix problems on non-utf8 systems with filenames (Windows never supports utf8 filenames)

foreign

ForeignExtension

Interactively register or delete foreign/unknown files

forest

ForestExtension

Manage a bunch of mercurial repos as a meta repository, with snapshot support thread

flow

FlowExtension

Support for the generalized Driessen's model

ftp

FTPExtension

Manage uploaded snapshots on FTP server

graphviz

JapaneseGraphvizExtension

チェンジセットツリーを描くために DOT 言語のソースを生成

group

GroupExtension

Allow to visually regroup a set of changesets

grepfile

GrepfileExtension

Search files for a regular expression

guestrepo

GuestrepoExtension

Handle nested repositories

hgban

BanChangesetsExtension

Ban specific changesets from being reintroduced to a repository after being stripped / removed.

hg-git

HgGit

Push to and pull from a Git server

hg-github

HgGithubExtension

Allow mirroring Mercurial repositories in Bitbucket to Github

hg-kerberos

hg-kerberos

Kerberos authentication extension by Henrik Stuart

hg-remotebranches

hg-remotebranches

Keeps track of remote branch heads for each entry in [paths] and exposes them as tags.

hgbb

BitbucketExtension

Several helpers for working with bitbucket.org repositories

hgexternals

HgExternals

Pull external repositories into a Mercurial repository

hgext.markdown

MarkdownExtension

Markdown Extension for hgweb

hgflowdock

FlowdockExtension

Send notifications to flowdock.com

hglist

hglist

An ls command for Mercurial

hglock-le

HgLockLEExtension

Allow users to inform each other in case of parallel file modification in one local repository

hgmod

HgModExtension

Yet another way working with subrepos

hgnested

HgNestedExtension

Manage nested repositories

hgopenurl

HgOpenURLExtension

Quickly show repository URLs in the browser

hgreview

HgReviewExtension

Upload / refresh and fetch patches from rietveld codereview instances

hgsftp

hgsftp

Use Mercurial over SFTP

hgsite

HgSiteExtension

Serve a web site straight out of a Mercurial repository

hgssoauthentication

hgssoauthentication

Allows you to use single sign-on authenticate with web servers that use NTLM or kerberos authentication.

hgsql

hgsqlExtension

Allow server multi-mastering by using a MySQL backend.

hgsubversion

HgSubversion

Use Mercurial as a Subversion client

hgview

hgview

Tool for visually navigating a repository history and comparing multiple revisions

hg-textauth

hg-textauth

Plaintext file authentication

hgtrac

HgTracExtension

Mercurial/Trac Integration Hook (pre/post hooks for Trac/Mercurial)

hgwebcachingproxy

hgwebcachingproxy

Caching hgweb proxy, caches and serves pull requests locally, distributes load and gives good bandwidth utilization.

hgxmpp

HgJabberExtension

Mercurial Jabber Notification Hook (pre/post hooks for Jabber/Mercurial)

histpush

HistpushExtension

Record locally which revisions have been pushed

hotfiles

HotFilesExtension

Designates the files the most susceptible to contain issues

importfs

ImportfsExtension

Imports a set of files from a given file-system into a Mercurial repository as a changeset

info

InfoExtension

Display basic information about a repository

infocalypse

Infocalypse

Share code efficiently, decentrally, anonymous and encrypted over Freenet

kerberos

KerberosExtension

Kerberos Authentication over HTTP support

keyring

KeyringExtension

Securely save HTTP passwords in os-specific keyring (Gnome Keyring, KWallet, OSXKeyChain, encrypted file)

killbom

KillBomExtension

Remove BOM (byte-order mark) character from files with specified encodings prior to committing

lighttags

LightTagsExtension

Make local tags behave like lightweight tags (shared over clone and pull, not version controlled)

localbranch

LocalbranchExtension

Create clones inside your working directory

lock

LockExtension

Take locks on resources

makewritable

MakewritableExtension

Interactively removes read-only flags from files

mbox

MboxExtension

Import patches from unix mailboxes in MQ

mergediff

MergediffExtension

Show only the changes introduced by a merge

mergeutil

MergeUtilExtension

Useful utilities for merging branches

moinport

MoinportExtension

Fetch changes from MoinMoin Wiki

mqcollab

MqCollabExtension

Manage patches in several parallel queues when working with others

multirepo

MultirepoExtension

Allow commands to affect multiple repositories simultaneously

mutable-branches

MutableBranches

Rename named branches

nearest

NearestExtension

Display the nearest tag from a given changeset

onsub

OnsubExtension

Recursively execute a command in each subrepository

nopush

NoPushExtension

Prohibits pushes from predefined local repository directories

pack

mercurial-pack-extension

Pack all files involved in the give revision (if your customer does not know what a diff file is)

path_pattern

PathPatternExtension

Define [paths] globally in your .hgrc, and have them known all your repositories.

paste

PasteExtension

Paste changes to pastebin

pastebin

PastebinExtension

Paste changes to public and private pastebins

patience

PatienceExtension

Generate diffs using Bram Cohen's patience diff algorithm

pbranch

PatchBranchExtension

Collaborative and/or long-term patch development and maintenance

perfarce

PerfarceExtension

Allow Hg to pull from and push to a Perforce depot

projrc

ProjrcExtension

Parse project specific config from .hg/projrc

prompt

PromptExtension

Put information about the current repository into a shell prompt

publishall

PublishAllExtension

Publish to all your set repositories (ie: paths)

punchcard

PunchcardExtension

Generate a "punch card" graph of your commit habits

pushlog

MozillaPushlogExtension

Tracks who pushed what to a repository

quiet-hg-branch

quiet-hg-branch

Suppress the "did you want a bookmark?" hint for hg branch

release

ReleaseExtension

Automatize tasks to deal with release management (tag creation, archiving, ...)

reviewboard

ReviewboardExtension

Post changesets for review to a Review Board server

qct

QctExtension

Provide access to the Qct commit tool

qtimes

QtimesExtension

Save or restore modification times of files affected by patch queue

qup

QupExtension

Move MQ patches to top of unapplied part of series

rcpath

RcpathExtension

Displays Mercurial configuration file paths and names

rdiff

RdiffExtension

Allow diff to work against remote repositories

rebaseif

RebaseIfExtension

Command that rebases only if there are no conflicts, otherwise does a merge

remotefilelog

RemotefilelogExtension

Allows clones that leave the majority of file history on the server.

remotenames

remotenames

Track remote bookmarks and branches

reposettings

ReposettingsExtension

Allow repo specific configuration from central configuration files

reviewassiatant

CodeReviewExtension

Code review tool helps you to create review requests and respond to them without leaving Visual Studio

rsync

RemoteSyncExtension

Keep your working directory in sync with remote files, that exist outside of the repository

rupdate

RemoteUpdateExtension

Update a remote repository to a specified revision if the remote repository is hosted via ssh

send

SendExtension

Automatic send of bundle containing changesets missing on remote, like darcs send

serverlog

ServerlogExtension

Log server-side events useful for sysadmins to diagnose what Mercurial is doing

shared_mq

SharedMQExtension

Allow shared repositories have same MQ queues

shelve

ShelveExtension

Interactively select changes to set aside

snap

SnapExtension

Version (big) file snapshots with storage outside a Mercurial repository

socks_proxy

socks_proxy

SOCKS proxy support

softrebase

SoftRebaseExtension

Turn possibly complicated rebase calls into multiple simpler ones

sonichg

SonicHgExtension

Record pushlog data, web interfaces to view pushlog & shortlog with slider, advanced search for pushlog, new file log page, full side-by-side diffs, regex filter, commit syntax warning and more!

spellcheck

SpellcheckExtension

Interactively correct spelling errors in commit messages; also includes a hook to reject changesets with spelling errors in their commit messages

subpaths

SubpathsExtension

Manage subpath remappings using a central file, distributed on clone and pull

sync

SyncExtension

Perform pull, update/merge and push in a single click

talaria

TalariaExtension

Manage simple hierarchical trees of HTML-documents, such as web-sites, documentation, etc

tasks

TasksExtension

Manage tasks as collections of contiguous changesets

terse-status

terse-status

Makes 'hg status' show ? foo/ when all files inside foo are untracked

textful

TextfulExtension

Convert binary file to text or handle character encoding when displaying

tfs

TfsExtension

Update Team Foundation Server work items when bug ids are referenced in a changeset

timestamp

TimestampExtension

Saves and restores file timestamps

timestamp_mod

TimestampModExtension

Automatically Saves and restores file timestamps for all files in the repository.

timetracker

timetracker

Tracks the time spent on a project

tpager

TpagerExtension

Mercurial pager with color support on Windows

untouch

UntouchExtension

Save or restore modification times of files

update_version

UpdateVersionExtension

Automatically update version numbers in code while tagging.

versions

VersionsExtension

Display the version information for Mercurial and all installed extensions.

webuserdir

WebUserDirExtension

Host users' repositories under /~username/ on hgwebdir

win32chcp

Win32ChCpExtension

Switches the Windows console into an encoding actually used by Mercurial on output.

win32lfn

Win32LongFileNamesExtension

Allow manipulating files with names longer than 260 characters on Windows.

wincolor

WinColorExtension

Support colors on Windows consoles.

zipdoc

ZipdocExtension

Version control zipped document formats like docx or odt as uncompressed zip archives to improve delta compression.

5. 参考


CategoryJapanese

English, Français, Deutsch

JapaneseUsingExtensions (last edited 2017-04-09 13:39:00 by YuyaNishihara)