Chapter 7
File names and pattern matching

Mercurial えた方法ファイルみをしています

7.1 Simple file naming

Mercurial “under the hood” においてファイルされたみをいていますファイルするてのコマンドされていますファイルするコマンド以下のようになっていま

コマンドファイルした Mercurial されたファイルします

1  $ hg add COPYING README examples/simple.py

ディレクトリしたMercurial はそのディレクトリならびにサブディレクトリてのファイルみなします Mercurial ディレクトリファイルサブディレクトリアルファベットしますあるディレクトサブディレクトリしたディレクトリよりもサブディレクトリ実施しま 1

1  $ hg status src
2  ? src/main.py
3  ? src/watcher/_watcher.c
4  ? src/watcher/watcher.py
5  ? src/xyzzy.txt

7.2 Running commands without any file names

ファイルMercurial コマンドないしパタしでされた有用められていますコマンドされるいはコマンドしますファイルしの においてコマンドがどのようにうのかをするためのとなるつかの以下しま

このいがそぐわないであればいをえることができますディレクトリ全体するコマンドであれば.することでコマンド現在ディレクトリおよびそのすることができま

1   $ cd src
2  $ hg add -n
3  adding ../MANIFEST.in
4  adding ../examples/performant.py
5  adding ../setup.py
6  adding main.py
7  adding watcher/_watcher.c
8  adding watcher/watcher.py
9  adding xyzzy.txt
10  $ hg add -n .
11  adding main.py
12  adding watcher/_watcher.c
13  adding watcher/watcher.py
14  adding xyzzy.txt

ディレクトリコマンドしたでもリポジトリする相対ファイルするコマンド ありますこのようなコマンドすることで現在ディレクトリする相対ファイルするよ うになりますトディレクトリでのhg statushg rootコマンドすることで ディレクトリ全体したまま現在ディレクトリする相対ファイルさせることができま

1  $ hg status
2  A COPYING
3  A README
4  A examples/simple.py
5  ? MANIFEST.in
6  ? examples/performant.py
7  ? setup.py
8  ? src/main.py
9  ? src/watcher/_watcher.c
10  ? src/watcher/watcher.py
11  ? src/xyzzy.txt
12  $ hg status ‘hg root‘
13  A ../COPYING
14  A ../README
15  A ../examples/simple.py
16  ? ../MANIFEST.in
17  ? ../examples/performant.py
18  ? ../setup.py
19  ? main.py
20  ? watcher/_watcher.c
21  ? watcher/watcher.py
22  ? xyzzy.txt

7.3 Telling you what’s going on

におけるhg addコマンドMercurial コマンドするもうつのしていますコマンド をしていないファイルしてコマンドするファイルしますのでわぬコマンド からかされることはありません

これはきをにするったものですコマンドファイルしたにはそれを いでしょうファイルディレクトリないしパタしますしないことで れたファイルMercurial するどのファイルとするのかを通知するのは有用

沿ってコマンド-q オプションすることでそのすることができますファ イルしたでも-v オプションすることでてのファイルさせることができま

7.4 Using patterns to identify files

ファイルディレクトリによるえてMercurial ではパタによるファイル使できますMercurial んだものです

Linux MacOS のような Unix システムではファイルパタとのせはシェルがその役目 いますこれらのシステムではパタしているMercurial して指示するがありま 2 Windows においてはシェルによるパタわれませんのでMercurial されたものがパタであると ファイルへとします

コマンドにおいてファイルする場所パタ使するには以下のようにします

1  syntax:patternbody

パタパタするためのコロンそしてパタしたもので

Mercurial パタしています利用いものは glob ばれUnix シェルによるパタ マッチングつものでそのいは Windows コマンドプロンプトユにもみがあることでしょ

Windows において Mercurial パタンマッチングglob とみなされますそのためWindows にお いては glob:ですがすることもです

re glob よりもregexps としてもられる使したパタです

ちなみにではてのパタむことでMercurial シェルによってされて しまうことをいでいるというしてください

7.4.1 Shell-style glob patterns

glob によるマッチング使パタについての以下します

パタ*ディレクトリします

1  $ hg add ’glob:*.py’
2  adding main.py

パタ**ディレクトリえてしますこのパタUnix におけるなものではありま せんがつかのシェルされており便です

1  $ cd ..
2  $ hg status ’glob:**.py’
3  A examples/simple.py
4  A src/main.py
5  ? examples/performant.py
6  ? setup.py
7  ? src/watcher/watcher.py

パタ?します

1  $ hg status ’glob:**.?’
2  ? src/watcher/_watcher.c

パタ[字集character classしますこのパタするします ]によってしますにはabcdefである a-fめることが

1  $ hg status ’glob:**[nr-t]’
2  ? MANIFEST.in
3  ? src/xyzzy.txt

字集において [!3 されさないします

パタ{サブパタグルグルれかのサブパタしたグル全体 したものとみなされますグルにおけるサブパタりには ,使され}グルしま

1  $ hg status ’glob:*.{in,py}
2  ? MANIFEST.in
3  ? setup.py
Watch out!

ディレクトリにおけるパタディレクトリでのマッチングしかわない *使すべきでは というれないようにしてください*わりに **使しましょういを以下しま

1  $ hg status ’glob:*.py’
2  ? setup.py
3  $ hg status ’glob:**.py’
4  A examples/simple.py
5  A src/main.py
6  ? examples/performant.py
7  ? setup.py
8  ? src/watcher/watcher.py

7.4.2 Regular expression matching with re patterns

Mercurial Python エンジン利用しているのでPython けるのとけます Perl 文法にしておりされているえば Java でも使されています

パタはそれほどされるものではないのでMercurial してここではしませんPerl くのウェブサイトにおいてされていますそのわりここでは Mercurial 使するられたっておくべきつかのについてしようとおもいま

リポジトリルからの相対ファイル全体してされますえるならfoo サブディレクトリ しているでもこのディレクトリファイルしてマッチングうならするパタfoo/まっていなけ ればなりません

Perl んでいるMercurial rooted であるしてくださ 4 からマッチング実施しますので途中するマッチングわれませんしてマッチング 実施させたいパタ.*めるがあります

7.5 Filtering files

Mercurial 方法しているものはファイル方法だけではありませんMercurial フィルタによるファイル していますファイルけるコマンド以下つのフィルタリングオプションけま

-I および-X オプションコマンドきなように混在させることができますMercurial されたパタglobとみなしてしますであればglobすることも )。

-I フィルタしたファイルのみをとするものとすればいでしょう

1  $ hg status -I ’*.in’
2  ? MANIFEST.in

-X フィルタしないものをとするものとすることができます

1  $ hg status -X ’**.py’ src
2  ? src/watcher/_watcher.c
3  ? src/xyzzy.txt

7.6 Ignoring unwanted files and directories

稿

7.7 Case sensitivity

Linux ないしUnix OSMacOS ないし Windows 混在するするファイルにおける “N” “n”なるというめておくがありますくあるではいかもしれ ませんしできるもありますがらないしたかされるでもありま

OS およびファイルシステムじてファイルおよびディレクトリいはなりますにおける 以下します

Unix システムではのうちの のものがあるいはてがされる がありますえばFAT32 ファイルシステムフォマットされた USB メモリモジュLinux 使するそのファイルシステムでの Linux いはしつつするものとなりま

7.7.1 Safe, portable repository storage

Mercurial リポジトリけませんリポジトリ存先ファイルファイル したものなのでファイルシステムにおけるわりできますつまりOS 使してMercurial リポジトリえば USB メモリモジュMacWindows PC および Linux ぶことができます

7.7.2 Detecting case conflicts

ディレクトリにおけるにはMercurial せているファイルシステム命名いますファイル システムしつつするものであったのみがなるMercurial じものとみなしま

このする Linux Unix におけるファイルシステムにおいてできない Windows MacOS えないようなチェンジセットコミットすることがであるですLinux 利用 myfile.c MyFile.Cというつのファイルするコミットしたリポジトリしくされま Linux 利用ディレクトリにおいてもこれらのファイルなるファイルとしてしくしま

Mercurial リポジトリいのけないためWindows ないし MacOS 利用がこの んでもしませんしかしディレクトリチェンジセットhg updateしよ うとしたあるいはチェンジセットhg mergeしようとしたファイルシステムファイル してつのファイルつけた Mercurial によってhg updateないしhg mergeされま

7.7.3 Fixing a case conflict

メンバLinux Unix 使している混在Windows ないし MacOS 使していてhg updateあるいはhg mergeMercurial するです

Linux ないし Unix 利用リポジトリhg cloneしてからファイルないしディレクトリ しないようにMercurial hg renameコマンドをすればいのですそのコミット hg pullないしhg pushWindows MacOS hg updateによってしない します

じさせるチェンジセットそのものはプロジェクトっておりチェンジセット Windows MacOS ディレクトリすことはできませんがすることは 5

: 0.9.3 Mercurial けないリポジトリ もありませんでしたMercurial Windows MacOS 使しているMercurial をおめします