# HG changeset patch # User Yoshiki Yazawa # Date 1240821114 -32400 # Node ID 69923723e7f953c13a9fb90c21107be42b3927a5 # Parent 64858a21674103057fb8aa124b9bfc0f59939623 more hook.tex diff -r 64858a216741 -r 69923723e7f9 ja/hook.tex --- a/ja/hook.tex Sat Apr 25 00:04:19 2009 +0900 +++ b/ja/hook.tex Mon Apr 27 17:31:54 2009 +0900 @@ -676,9 +676,18 @@ %in-process hook returning boolean ``true''. If an in-process hook %raises an exception, the hook is considered to have failed. +正しく動作した外部フックはステータスとしてゼロを,プロセス内フックの場合 +はブール値``false''を返さなければならない.なんらかの失敗があった場合は, +外部フックは非ゼロの終了ステータスを,プロセス内フックはブール値``true'' +を返す.もしプロセス内フックが例外を発生した場合は,フックは失敗したと見 +なされる. + %For a hook that controls whether an activity can proceed, zero/false %means ``allow'', while non-zero/true/exception means ``deny''. +動作の継続を制御するフックの場合は,ゼロ/falseは継続の許可を,非ゼ +ロ/true/例外の場合は禁止を意味する. + %\subsection{Writing an external hook} \subsection{外部フックを作成する} @@ -1358,37 +1367,60 @@ %\subsubsection{Configuring the text that gets added to a bug} \subsubsection{バグに追加された文字列を設定する} -You can configure the text that this hook adds as a comment; you -specify it in the form of a Mercurial template. Several \hgrc\ -entries (still in the \rcsection{bugzilla} section) control this -behaviour. +%You can configure the text that this hook adds as a comment; you +%specify it in the form of a Mercurial template. Several \hgrc\ +%entries (still in the \rcsection{bugzilla} section) control this +%behaviour. +フックが追加するコメント文字列はMercurialテンプレートとして指定することが +できる.\hgrc のエントリ(\rcsection{bugzilla}セクションに含まれているもの +を含む)で挙動をコントロールできる. +%\begin{itemize} +%\item[\texttt{strip}] The number of leading path elements to strip +% from a repository's path name to construct a partial path for a URL. +% For example, if the repositories on your server live under +% \dirname{/home/hg/repos}, and you have a repository whose path is +% \dirname{/home/hg/repos/app/tests}, then setting \texttt{strip} to +% \texttt{4} will give a partial path of \dirname{app/tests}. The +% hook will make this partial path available when expanding a +% template, as \texttt{webroot}. +%\item[\texttt{template}] The text of the template to use. In addition +% to the usual changeset-related variables, this template can use +% \texttt{hgweb} (the value of the \texttt{hgweb} configuration item +% above) and \texttt{webroot} (the path constructed using +% \texttt{strip} above). +%\end{itemize} \begin{itemize} -\item[\texttt{strip}] The number of leading path elements to strip - from a repository's path name to construct a partial path for a URL. - For example, if the repositories on your server live under - \dirname{/home/hg/repos}, and you have a repository whose path is - \dirname{/home/hg/repos/app/tests}, then setting \texttt{strip} to - \texttt{4} will give a partial path of \dirname{app/tests}. The - hook will make this partial path available when expanding a - template, as \texttt{webroot}. -\item[\texttt{template}] The text of the template to use. In addition - to the usual changeset-related variables, this template can use - \texttt{hgweb} (the value of the \texttt{hgweb} configuration item - above) and \texttt{webroot} (the path constructed using - \texttt{strip} above). +\item[\texttt{strip}] URL生成用の部分パス名を作るためにリポジトリのパス名 + から取り除かれる先行要素の数.サーバ上の + \dirname{/home/hg/repos}にリポジトリ群があ + り,\dirname{/home/hg/repos/app/tests}というリポジトリを持っ + ている場合,\texttt{strip}を\texttt{4}にすると部分パス名 + \dirname{app/tests}が得られる.フックはこの部分パスをテンプ + レートの\texttt{webroot}に適用する. + +\item[\texttt{template}] テンプレートに使用されるテキスト.通常のチェンジ + セット関連の変数に加えて,\texttt{hgweb}(上記の + \texttt{hgweb}の設定値)と\texttt{webroot}(上記の + \texttt{strip}を使って作ったパス)が利用できる. \end{itemize} -In addition, you can add a \rcitem{web}{baseurl} item to the -\rcsection{web} section of your \hgrc. The \hgext{bugzilla} hook will -make this available when expanding a template, as the base string to -use when constructing a URL that will let users browse from a Bugzilla -comment to view a changeset. Example: +%In addition, you can add a \rcitem{web}{baseurl} item to the +%\rcsection{web} section of your \hgrc. The \hgext{bugzilla} hook will +%make this available when expanding a template, as the base string to +%use when constructing a URL that will let users browse from a Bugzilla +%comment to view a changeset. Example: +さらに,\rcitem{web}{baseurl}項目を\hgrc の\rcsection{web}セクションに追 +加できる.これはテンプレートの拡張時に\hgext{bugzilla}フックにより +Bugzillaコメントからチェンジセットを参照する際のURL生成のベース文字列とし +て利用される. + \begin{codesample2} [web] baseurl = http://hg.domain.com/ \end{codesample2} -Here is an example set of \hgext{bugzilla} hook config information. +%Here is an example set of \hgext{bugzilla} hook config information. +\hgext{bugzilla}フックの設定情報の例を示す. \begin{codesample2} [bugzilla] host = bugzilla.example.com @@ -1408,131 +1440,248 @@ %\subsubsection{Testing and troubleshooting} \subsubsection{テストと問題解決} -The most common problems with configuring the \hgext{bugzilla} hook -relate to running Bugzilla's \filename{processmail} script and mapping -committer names to user names. +%The most common problems with configuring the \hgext{bugzilla} hook +%relate to running Bugzilla's \filename{processmail} script and mapping +%committer names to user names. + +\hgext{bugzilla}フックを設定する際にBugzillaの\filename{processmail}スク +リプトの実行とコミッター名のユーザ名へのマッピングがよく問題になる. + +%Recall from section~\ref{sec:hook:bugzilla:config} above that the user +%that runs the Mercurial process on the server is also the one that +%will run the \filename{processmail} script. The +%\filename{processmail} script sometimes causes Bugzilla to write to +%files in its configuration directory, and Bugzilla's configuration +%files are usually owned by the user that your web server runs under. -Recall from section~\ref{sec:hook:bugzilla:config} above that the user -that runs the Mercurial process on the server is also the one that -will run the \filename{processmail} script. The -\filename{processmail} script sometimes causes Bugzilla to write to -files in its configuration directory, and Bugzilla's configuration -files are usually owned by the user that your web server runs under. +\ref{sec:hook:bugzilla:config}節で,サーバ上でMercurialを動作させているユー +ザと\filename{processmail}スクリプトを動かしているユーザが同じだと述べた. +\filename{processmail}スクリプトはBugzillaに設定ディレクトリ内のファイル +に書き込ませることがある. Bugzillaの設定ファイルは通常,ウェブサーバを起 +動しているユーザの所有である. -You can cause \filename{processmail} to be run with the suitable -user's identity using the \command{sudo} command. Here is an example -entry for a \filename{sudoers} file. +%You can cause \filename{processmail} to be run with the suitable +%user's identity using the \command{sudo} command. Here is an example +%entry for a \filename{sudoers} file. +%\begin{codesample2} +% hg_user = (httpd_user) NOPASSWD: /var/www/html/bugzilla/processmail-wrapper %s +%\end{codesample2} +%This allows the \texttt{hg\_user} user to run a +%\filename{processmail-wrapper} program under the identity of +%\texttt{httpd\_user}. + +\command{sudo}コマンドを使うことで\filename{processmail}を適切なユーザの +権限で実行することができる.\filename{sudoers}ファイルの記述例を示す. \begin{codesample2} hg_user = (httpd_user) NOPASSWD: /var/www/html/bugzilla/processmail-wrapper %s \end{codesample2} -This allows the \texttt{hg\_user} user to run a -\filename{processmail-wrapper} program under the identity of -\texttt{httpd\_user}. +この例では,ユーザ\texttt{hg\_user}が\filename{processmail-wrapper}プログ +ラムをユーザ\texttt{httpd\_user}の権限の元で実行することができる. -This indirection through a wrapper script is necessary, because -\filename{processmail} expects to be run with its current directory -set to wherever you installed Bugzilla; you can't specify that kind of -constraint in a \filename{sudoers} file. The contents of the wrapper -script are simple: +%This indirection through a wrapper script is necessary, because +%\filename{processmail} expects to be run with its current directory +%set to wherever you installed Bugzilla; you can't specify that kind of +%constraint in a \filename{sudoers} file. The contents of the wrapper +%script are simple: +%\begin{codesample2} +% #!/bin/sh +% cd `dirname $0` && ./processmail "$1" nobody@example.com +%\end{codesample2} +%It doesn't seem to matter what email address you pass to +%\filename{processmail}. + +このラッパースクリプトから実行する間接実行は必要であ +る.\filename{processmail}はBugzillaをどこにインストールしてもカレントディ +レクトリから実行されるためである.実行制限の種類を\filename{sudoers}ファ +イルに記述する.ラッパースクリプトの内容はシンプルなものである. \begin{codesample2} #!/bin/sh cd `dirname $0` && ./processmail "$1" nobody@example.com \end{codesample2} -It doesn't seem to matter what email address you pass to -\filename{processmail}. +\filename{processmail}に渡すemailアドレスはどんなものでもよい. -If your \rcsection{usermap} is not set up correctly, users will see an -error message from the \hgext{bugzilla} hook when they push changes -to the server. The error message will look like this: +%If your \rcsection{usermap} is not set up correctly, users will see an +%error message from the \hgext{bugzilla} hook when they push changes +%to the server. The error message will look like this: +%\begin{codesample2} +% cannot find bugzilla user id for john.q.public@example.com +%\end{codesample2} +%What this means is that the committer's address, +%\texttt{john.q.public@example.com}, is not a valid Bugzilla user name, +%nor does it have an entry in your \rcsection{usermap} that maps it to +%a valid Bugzilla user name. + +\rcsection{usermap}が正しく設定されていない場合,変更をサーバにプッシュす +る際に\hgext{bugzilla}フックからのエラーメッセージがユーザに送られる. +エラーメッセージは \begin{codesample2} cannot find bugzilla user id for john.q.public@example.com \end{codesample2} -What this means is that the committer's address, -\texttt{john.q.public@example.com}, is not a valid Bugzilla user name, -nor does it have an entry in your \rcsection{usermap} that maps it to -a valid Bugzilla user name. +のような内容である.これは,コミッタのアドレス +\texttt{john.q.public@example.com}が有効なBugzillaユーザネームでなく,ま +た有効なBugzillaユーザ名へのマップファイルである\rcsection{usermap}にも +記述がないという意味である. %\subsection{\hgext{notify}---send email notifications} \subsection{\hgext{notify}---メールで通知を行う} -Although Mercurial's built-in web server provides RSS feeds of changes -in every repository, many people prefer to receive change -notifications via email. The \hgext{notify} hook lets you send out -notifications to a set of email addresses whenever changesets arrive -that those subscribers are interested in. +%Although Mercurial's built-in web server provides RSS feeds of changes +%in every repository, many people prefer to receive change +%notifications via email. The \hgext{notify} hook lets you send out +%notifications to a set of email addresses whenever changesets arrive +%that those subscribers are interested in. + +Mercurialの組み込みウェブサーバは全てのリポジトリの変更のRSSフィードを提 +供するが,変更の通知をメールで受け取ることを好むユーザも多い.\hgext{notify} +\hgext{notify}フックは,チェンジセットが到着した時に関心を持つユーザのメー +ルアドレスに通知を送る. -As with the \hgext{bugzilla} hook, the \hgext{notify} hook is -template-driven, so you can customise the contents of the notification -messages that it sends. +%As with the \hgext{bugzilla} hook, the \hgext{notify} hook is +%template-driven, so you can customise the contents of the notification +%messages that it sends. + +\hgext{bugzilla}と同様に\hgext{notify}フックもテンプレートを使って送信さ +れる通知メッセージの内容をカスタマイズすることができる. -By default, the \hgext{notify} hook includes a diff of every changeset -that it sends out; you can limit the size of the diff, or turn this -feature off entirely. It is useful for letting subscribers review -changes immediately, rather than clicking to follow a URL. +%By default, the \hgext{notify} hook includes a diff of every changeset +%that it sends out; you can limit the size of the diff, or turn this +%feature off entirely. It is useful for letting subscribers review +%changes immediately, rather than clicking to follow a URL. + +デフォルトでは\hgext{notify}フックは送信される全てのチェンジセットのdiff +を含む.このdiffのサイズの上限を設定したり,送信自体を停止することができ +る.diffを送信すると,講読者がURLをクリックすることなく変更をすぐにレビュー +できる利点がある. %\subsubsection{Configuring the \hgext{notify} hook} \subsubsection{\hgext{notify}フックの設定} -You can set up the \hgext{notify} hook to send one email message per -incoming changeset, or one per incoming group of changesets (all those -that arrived in a single pull or push). +%You can set up the \hgext{notify} hook to send one email message per +%incoming changeset, or one per incoming group of changesets (all those +%that arrived in a single pull or push). + +\hgext{notify}フックを設定し,到着したチェンジセット毎や(一度のpullや +pushで到着した)一連のチェンジセット毎にemailを送信することができ +る. \begin{codesample2} [hooks] - # send one email per group of changes + # 一連の変更毎にメールを送信する changegroup.notify = python:hgext.notify.hook - # send one email per change + # 変更一つ毎にメールを送信する incoming.notify = python:hgext.notify.hook \end{codesample2} -Configuration information for this hook lives in the -\rcsection{notify} section of a \hgrc\ file. +%Configuration information for this hook lives in the +%\rcsection{notify} section of a \hgrc\ file. + +このフックの設定は\hgrc\ ファイルの\rcsection{notify}セクションに書く. \begin{itemize} -\item[\rcitem{notify}{test}] By default, this hook does not send out - email at all; instead, it prints the message that it \emph{would} - send. Set this item to \texttt{false} to allow email to be sent. - The reason that sending of email is turned off by default is that it - takes several tries to configure this extension exactly as you would - like, and it would be bad form to spam subscribers with a number of - ``broken'' notifications while you debug your configuration. -\item[\rcitem{notify}{config}] The path to a configuration file that - contains subscription information. This is kept separate from the - main \hgrc\ so that you can maintain it in a repository of its own. - People can then clone that repository, update their subscriptions, - and push the changes back to your server. -\item[\rcitem{notify}{strip}] The number of leading path separator - characters to strip from a repository's path, when deciding whether - a repository has subscribers. For example, if the repositories on - your server live in \dirname{/home/hg/repos}, and \hgext{notify} is - considering a repository named \dirname{/home/hg/repos/shared/test}, - setting \rcitem{notify}{strip} to \texttt{4} will cause - \hgext{notify} to trim the path it considers down to - \dirname{shared/test}, and it will match subscribers against that. -\item[\rcitem{notify}{template}] The template text to use when sending - messages. This specifies both the contents of the message header - and its body. -\item[\rcitem{notify}{maxdiff}] The maximum number of lines of diff - data to append to the end of a message. If a diff is longer than - this, it is truncated. By default, this is set to 300. Set this to - \texttt{0} to omit diffs from notification emails. -\item[\rcitem{notify}{sources}] A list of sources of changesets to - consider. This lets you limit \hgext{notify} to only sending out - email about changes that remote users pushed into this repository - via a server, for example. See section~\ref{sec:hook:sources} for - the sources you can specify here. +%\item[\rcitem{notify}{test}] By default, this hook does not send out +% email at all; instead, it prints the message that it \emph{would} +% send. Set this item to \texttt{false} to allow email to be sent. +% The reason that sending of email is turned off by default is that it +% takes several tries to configure this extension exactly as you would +% like, and it would be bad form to spam subscribers with a number of +% ``broken'' notifications while you debug your configuration. +\item[\rcitem{notify}{test}] デフォルトではこのフックはメールを全く送信し + ない.その代わり,送信されのと同じ内容を表示する.この項目を + \texttt{false}に設定するとメールが送信される.デフォルトでメー + ル送信がオフにされている理由は,意図する通りにこの設定を行う + ためには数回の試行が必要なためである.デバッグ中に講読者に壊 + れた通知を送るのはスパムまがいで好ましくない. + +%\item[\rcitem{notify}{config}] The path to a configuration file that +% contains subscription information. This is kept separate from the +% main \hgrc\ so that you can maintain it in a repository of its own. +% People can then clone that repository, update their subscriptions, +% and push the changes back to your server. +\item[\rcitem{notify}{config}] 講読者情報を含む設定ファイルへのパス.メイ + ンの\hgrc\ と分離することで,リポジトリ毎にリポジトリ内で管 + 理できる.協力者はリポジトリをクローンし,講読者をアップデー + トして変更をサーバにpushできる. + +%\item[\rcitem{notify}{strip}] The number of leading path separator +% characters to strip from a repository's path, when deciding whether +% a repository has subscribers. For example, if the repositories on +% your server live in \dirname{/home/hg/repos}, and \hgext{notify} is +% considering a repository named \dirname{/home/hg/repos/shared/test}, +% setting \rcitem{notify}{strip} to \texttt{4} will cause +% \hgext{notify} to trim the path it considers down to +% \dirname{shared/test}, and it will match subscribers against that. +\item[\rcitem{notify}{strip}] リポジトリに講読者がいるかどうか判定する際 + に,リポジトリのパスから除去する先行部分をパス区切り文字で示 + した数.例えば,サーバでリポジトリ群が + \dirname{/home/hg/repos}に置かれており, \hgext{notify}が + \dirname{/home/hg/repos/shared/test}というリポジトリを対象と + する時,\rcitem{notify}{strip} を \texttt{4}に設定すると + \hgext{notify}はパスを\dirname{shared/test}に短縮し,これを + 用いて講読者のマッチを行う. + +%\item[\rcitem{notify}{template}] The template text to use when sending +% messages. This specifies both the contents of the message header +% and its body. +\item[\rcitem{notify}{template}] メッセージを送信する時に使われるテキス + トのテンプレート.メッセージのヘッダとボディ両方を設定する + ことができる. + +%\item[\rcitem{notify}{maxdiff}] The maximum number of lines of diff +% data to append to the end of a message. If a diff is longer than +% this, it is truncated. By default, this is set to 300. Set this to +% \texttt{0} to omit diffs from notification emails. +\item[\rcitem{notify}{maxdiff}] メッセージの末尾に添付されるdiffデータの + 最大行数.diffがこの値より大きい場合は切り詰められる.デフォ + ルトでは300行.この値を\texttt{0}にすることで通知emailへの + diffの添付を抑制することができる. + +%\item[\rcitem{notify}{sources}] A list of sources of changesets to +% consider. This lets you limit \hgext{notify} to only sending out +% email about changes that remote users pushed into this repository +% via a server, for example. See section~\ref{sec:hook:sources} for +% the sources you can specify here. +\item[\rcitem{notify}{sources}] 対象チェンジセットのソースのリスト.例え + ば,このリストでリモートユーザがサーバ経由でリポジトリへプッ + シュした変更に関してのみ通知を行うように制限することができ + る.ここで指定できるソースについては\ref{sec:hook:sources} + 節を参照のこと. \end{itemize} -If you set the \rcitem{web}{baseurl} item in the \rcsection{web} -section, you can use it in a template; it will be available as -\texttt{webroot}. +%If you set the \rcitem{web}{baseurl} item in the \rcsection{web} +%section, you can use it in a template; it will be available as +%\texttt{webroot}. + +\rcsection{web}セクションの\rcitem{web}{baseurl}項目を設定しているなら, +これを\texttt{webroot}としてテンプレート内で使うことができる. -Here is an example set of \hgext{notify} configuration information. +%Here is an example set of \hgext{notify} configuration information. +\hgext{notify}設定の例を示す. +%\begin{codesample2} +% [notify] +% # really send email +% test = false +% # subscriber data lives in the notify repo +% config = /home/hg/repos/notify/notify.conf +% # repos live in /home/hg/repos on server, so strip 4 "/" chars +% strip = 4 +% template = X-Hg-Repo: \{webroot\} +% Subject: \{webroot\}: \{desc|firstline|strip\} +% From: \{author\} +% +% changeset \{node|short\} in \{root\} +% details: \{baseurl\}\{webroot\}?cmd=changeset;node=\{node|short\} +% description: +% \{desc|tabindent|strip\} +% +% [web] +% baseurl = http://hg.example.com/ +%\end{codesample2} + \begin{codesample2} [notify] - # really send email + # 実際にメールを送信するか test = false - # subscriber data lives in the notify repo + # 講読者データが通知リポジトリ内にある config = /home/hg/repos/notify/notify.conf - # repos live in /home/hg/repos on server, so strip 4 "/" chars + # リポジトリ群はサーバの /home/hg/repos にあるので 4つの "/" 文字をストリップする strip = 4 template = X-Hg-Repo: \{webroot\} Subject: \{webroot\}: \{desc|firstline|strip\} @@ -1547,7 +1696,8 @@ baseurl = http://hg.example.com/ \end{codesample2} -This will produce a message that looks like the following: +%This will produce a message that looks like the following: +生成されるメッセージは次のようになる: \begin{codesample2} X-Hg-Repo: tests/slave Subject: tests/slave: Handle error case when slave has no buffers @@ -1569,10 +1719,16 @@ %\subsubsection{Testing and troubleshooting} \subsubsection{テストと問題解決} -Do not forget that by default, the \hgext{notify} extension \emph{will - not send any mail} until you explicitly configure it to do so, by -setting \rcitem{notify}{test} to \texttt{false}. Until you do that, -it simply prints the message it \emph{would} send. +%Do not forget that by default, the \hgext{notify} extension \emph{will + +% not send any mail} until you explicitly configure it to do so, by +%setting \rcitem{notify}{test} to \texttt{false}. Until you do that, +%it simply prints the message it \emph{would} send. + +デフォルトでは\hgext{notify}エクステンションは\emph{メールを送信しない}こ +とに留意すること.実際に送信させるためには明示的に\rcitem{notify}{test}を +\texttt{false}に設定しなければならない.この設定をしなければ,送信するの +と同じメッセージを表示するだけである. %\section{Information for writers of hooks} \section{フック作製者への情報} @@ -1581,41 +1737,69 @@ %\subsection{In-process hook execution} \subsection{プロセス内フックの実行} -An in-process hook is called with arguments of the following form: +%An in-process hook is called with arguments of the following form: +プロセス内フックは次のような形式の引数を伴って呼び出される: \begin{codesample2} def myhook(ui, repo, **kwargs): pass \end{codesample2} -The \texttt{ui} parameter is a \pymodclass{mercurial.ui}{ui} object. -The \texttt{repo} parameter is a -\pymodclass{mercurial.localrepo}{localrepository} object. The -names and values of the \texttt{**kwargs} parameters depend on the -hook being invoked, with the following common features: +%The \texttt{ui} parameter is a \pymodclass{mercurial.ui}{ui} object. +%The \texttt{repo} parameter is a +%\pymodclass{mercurial.localrepo}{localrepository} object. The +%names and values of the \texttt{**kwargs} parameters depend on the +%hook being invoked, with the following common features: +\texttt{ui}パラメータは\pymodclass{mercurial.ui}{ui}のオブジェクトである. +\texttt{repo}パラメータは +\pymodclass{mercurial.localrepo}{localrepository}のオブジェクトである. +\texttt{**kwargs}パラメータの名前と値は,呼び出されるフックに依存し,次 +のような共通した特徴を持つ. +%\begin{itemize} +%\item If a parameter is named \texttt{node} or +% \texttt{parent\emph{N}}, it will contain a hexadecimal changeset ID. +% The empty string is used to represent ``null changeset ID'' instead +% of a string of zeroes. +%\item If a parameter is named \texttt{url}, it will contain the URL of +% a remote repository, if that can be determined. +%\item Boolean-valued parameters are represented as Python +% \texttt{bool} objects. +%\end{itemize} \begin{itemize} -\item If a parameter is named \texttt{node} or - \texttt{parent\emph{N}}, it will contain a hexadecimal changeset ID. - The empty string is used to represent ``null changeset ID'' instead - of a string of zeroes. -\item If a parameter is named \texttt{url}, it will contain the URL of - a remote repository, if that can be determined. -\item Boolean-valued parameters are represented as Python - \texttt{bool} objects. +\item パラメータが\texttt{node}または\texttt{parent\emph{N}}と名付けられ + た場合,16進数のチェンジセットIDを持つ. ``ヌルチェンジセットID''を + 表すために0ではなく空の文字列が用いられる. +\item パラメータが\texttt{url}と名付けられた場合,リモートリポジトリが特 + 定されるならばそのURLを持つ. +\item ブール値を持つパラメータはPythonの\texttt{bool}オブジェクトとして + 表現される. \end{itemize} -An in-process hook is called without a change to the process's working -directory (unlike external hooks, which are run in the root of the -repository). It must not change the process's working directory, or -it will cause any calls it makes into the Mercurial API to fail. +%An in-process hook is called without a change to the process's working +%directory (unlike external hooks, which are run in the root of the +%repository). It must not change the process's working directory, or +%it will cause any calls it makes into the Mercurial API to fail. + +プロセス内フックは,リポジトリのルートで実行される外部フックと異なりプロ +セスのワーキングディレクトリの変更なしに呼び出される.プロセス内フックは +プロセスワーキングディレクトリを変更してはならない.さもなけれ +ば,Mercurial APIへの呼び出しは全て失敗する. -If a hook returns a boolean ``false'' value, it is considered to have -succeeded. If it returns a boolean ``true'' value or raises an -exception, it is considered to have failed. A useful way to think of -the calling convention is ``tell me if you fail''. +%If a hook returns a boolean ``false'' value, it is considered to have +%succeeded. If it returns a boolean ``true'' value or raises an +%exception, it is considered to have failed. A useful way to think of +%the calling convention is ``tell me if you fail''. + +フックがブール値``false''を返した場合,フックの実行は成功したと見なされ +る.ブール値``true''を返した場合および例外を発生させた場合は失敗したと見 +なされる.呼び出し既約は ``失敗した時は教える''と覚えるとよい. -Note that changeset IDs are passed into Python hooks as hexadecimal -strings, not the binary hashes that Mercurial's APIs normally use. To -convert a hash from hex to binary, use the -\pymodfunc{mercurial.node}{bin} function. +%Note that changeset IDs are passed into Python hooks as hexadecimal +%strings, not the binary hashes that Mercurial's APIs normally use. To +%convert a hash from hex to binary, use the +%\pymodfunc{mercurial.node}{bin} function. + +Pythonフックに渡されるチェンジセットIDは,Mercurial APIが通常用いるバイナ +リハッシュ値ではなく16進数文字列であることに注意.ハッシュ値を16進数文字 +列からバイナリに変換するには\pymodfunc{mercurial.node}{bin}関数を用いる. %\subsection{External hook execution} \subsection{フックの外部実行} @@ -1841,76 +2025,131 @@ \subsection{\hook{precommit}---チェンジセットをコミットする前} \label{sec:hook:precommit} -This hook is run before Mercurial begins to commit a new changeset. -It is run before Mercurial has any of the metadata for the commit, -such as the files to be committed, the commit message, or the commit -date. +%This hook is run before Mercurial begins to commit a new changeset. +%It is run before Mercurial has any of the metadata for the commit, +%such as the files to be committed, the commit message, or the commit +%date. + +このフックはMercurialが新しいチェンジセットをコミットする前に実行される. +実行はMercurialがコミットされるファイル名,コミットメッセージ,コミット日 +時のようなコミットのためのメタデータを持つ前である. -One use for this hook is to disable the ability to commit new -changesets, while still allowing incoming changesets. Another is to -run a build or test, and only allow the commit to begin if the build -or test succeeds. +%One use for this hook is to disable the ability to commit new +%changesets, while still allowing incoming changesets. Another is to +%run a build or test, and only allow the commit to begin if the build +%or test succeeds. + +このフックを使って,外部からのチェンジセットの取り込みを許可する一方で, +新しいチェンジセットをコミットできないようにすることもできる.また,ビル +ドやテストを実行したり,それが成功した時のみコミットを行うようにすること +もできる. -Parameters to this hook: +%Parameters to this hook: +このフックへのパラメータ: +%\begin{itemize} +%\item[\texttt{parent1}] A changeset ID. The changeset ID of the first +% parent of the working directory. +%\item[\texttt{parent2}] A changeset ID. The changeset ID of the second +% parent of the working directory. +%\end{itemize} \begin{itemize} -\item[\texttt{parent1}] A changeset ID. The changeset ID of the first - parent of the working directory. -\item[\texttt{parent2}] A changeset ID. The changeset ID of the second - parent of the working directory. +\item[\texttt{parent1}] チェンジセットID.ワーキングディレクトリの1つ目の + 親のチェンジセットID. +\item[\texttt{parent2}] チェンジセットID.ワーキングディレクトリの2つ目の + 親のチェンジセットID. \end{itemize} -If the commit proceeds, the parents of the working directory will -become the parents of the new changeset. +%If the commit proceeds, the parents of the working directory will +%become the parents of the new changeset. + +コミットが進行するとワーキングディレクトリの親は新しいチェンジセットの親 +となる. -See also: \hook{commit} (section~\ref{sec:hook:commit}), -\hook{pretxncommit} (section~\ref{sec:hook:pretxncommit}) +%See also: \hook{commit} (section~\ref{sec:hook:commit}), +%\hook{pretxncommit} (section~\ref{sec:hook:pretxncommit}) + +参考:\hook{commit} (\ref{sec:hook:commit}節),\hook{pretxncommit} +(\ref{sec:hook:pretxncommit}節) %\subsection{\hook{preoutgoing}---before starting to propagate %changesets} \subsection{\hook{preoutgoing}---チェンジセットを波及させる前に} \label{sec:hook:preoutgoing} -This hook is invoked before Mercurial knows the identities of the -changesets to be transmitted. +%This hook is invoked before Mercurial knows the identities of the +%changesets to be transmitted. + +このフックはMercurialが送信するチェンジセットを識別する前に実行される. + +%One use for this hook is to prevent changes from being transmitted to +%another repository. + +このフックを用いて,他のリポジトリへ変更を送信しないようにすることもでき +る. -One use for this hook is to prevent changes from being transmitted to -another repository. - -Parameters to this hook: +%Parameters to this hook: +このフックへのパラメータ: +%\begin{itemize} +%\item[\texttt{source}] A string. The source of the operation that is +% attempting to obtain changes from this repository (see +% section~\ref{sec:hook:sources}). See the documentation for the +% \texttt{source} parameter to the \hook{outgoing} hook, in +% section~\ref{sec:hook:outgoing}, for possible values of this +% parameter. +%\item[\texttt{url}] A URL. The location of the remote repository, if +% known. See section~\ref{sec:hook:url} for more information. +%\end{itemize} \begin{itemize} -\item[\texttt{source}] A string. The source of the operation that is - attempting to obtain changes from this repository (see - section~\ref{sec:hook:sources}). See the documentation for the - \texttt{source} parameter to the \hook{outgoing} hook, in - section~\ref{sec:hook:outgoing}, for possible values of this - parameter. -\item[\texttt{url}] A URL. The location of the remote repository, if - known. See section~\ref{sec:hook:url} for more information. +\item[\texttt{source}] 文字列.このリポジトリから変更を取得しようとする動 + 作のソース(\ref{sec:hook:sources}を参照).このパラーメタが + 取り得る値については, \ref{sec:hook:outgoing}節の + \hook{outgoing}フックへの\texttt{source}パラメータの項目を参 + 照のこと. +\item[\texttt{url}] URL.リモートリポジトリが特定できる場合はそのアドレ + ス.詳細については\ref{sec:hook:url}を参照のこと. \end{itemize} -See also: \hook{outgoing} (section~\ref{sec:hook:outgoing}) +%See also: \hook{outgoing} (section~\ref{sec:hook:outgoing}) +参考: \hook{outgoing} (\ref{sec:hook:outgoing}節) %\subsection{\hook{pretag}---before tagging a changeset} \subsection{\hook{pretag}---チェンジセットにタグをつける前に} \label{sec:hook:pretag} -This controlling hook is run before a tag is created. If the hook -succeeds, creation of the tag proceeds. If the hook fails, the tag is -not created. +%This controlling hook is run before a tag is created. If the hook +%succeeds, creation of the tag proceeds. If the hook fails, the tag is +%not created. + +この制御フックはタグが作成される前に実行される.フックの実行が成功した場 +合はタグが作成される.フックの実行が失敗した場合はタグは作成されない. -Parameters to this hook: +%Parameters to this hook: +このフックへのパラメータ +%\begin{itemize} +%\item[\texttt{local}] A boolean. Whether the tag is local to this +% repository instance (i.e.~stored in \sfilename{.hg/localtags}) or +% managed by Mercurial (stored in \sfilename{.hgtags}). +%\item[\texttt{node}] A changeset ID. The ID of the changeset to be tagged. +%\item[\texttt{tag}] A string. The name of the tag to be created. +%\end{itemize} + \begin{itemize} -\item[\texttt{local}] A boolean. Whether the tag is local to this - repository instance (i.e.~stored in \sfilename{.hg/localtags}) or - managed by Mercurial (stored in \sfilename{.hgtags}). -\item[\texttt{node}] A changeset ID. The ID of the changeset to be tagged. -\item[\texttt{tag}] A string. The name of the tag to be created. +\item[\texttt{local}] ブール値.新しいタグがリポジトリローカルなもの + (\sfilename{.hg/localtags}に保存される)かMercurialに管理 + されるもの(\sfilename{.hgtags}に保存される)かを示す. +\item[\texttt{node}] チェンジセットID.タグ付けされるチェンジセットのID. +\item[\texttt{tag}] 文字列.生成されたタグの名前. \end{itemize} -If the tag to be created is revision-controlled, the \hook{precommit} -and \hook{pretxncommit} hooks (sections~\ref{sec:hook:commit} -and~\ref{sec:hook:pretxncommit}) will also be run. +%If the tag to be created is revision-controlled, the \hook{precommit} +%and \hook{pretxncommit} hooks (sections~\ref{sec:hook:commit} +%and~\ref{sec:hook:pretxncommit}) will also be run. -See also: \hook{tag} (section~\ref{sec:hook:tag}) +生成されたタグがリビジョンコントロールされている場合,\hook{precommit}フッ +クと\hook{pretxncommit}フック(\ref{sec:hook:commit}節および +\ref{sec:hook:pretxncommit})節)の両方が実行される. + +%See also: \hook{tag} (section~\ref{sec:hook:tag}) +参考: \hook{tag} (\ref{sec:hook:tag}節) %\subsection{\hook{pretxnchangegroup}---before completing addition of %remote changesets} @@ -1918,41 +2157,75 @@ 了する前に} \label{sec:hook:pretxnchangegroup} -This controlling hook is run before a transaction---that manages the -addition of a group of new changesets from outside the -repository---completes. If the hook succeeds, the transaction -completes, and all of the changesets become permanent within this -repository. If the hook fails, the transaction is rolled back, and -the data for the changesets is erased. +%This controlling hook is run before a transaction---that manages the +%addition of a group of new changesets from outside the +%repository---completes. If the hook succeeds, the transaction +%completes, and all of the changesets become permanent within this +%repository. If the hook fails, the transaction is rolled back, and +%the data for the changesets is erased. + +この制御フックは,外部から新しいチェンジセットを追加するトランザクション +が完了する前に実行される.フックの実行が成功した場合,トランザクションは +完了し,全てのチェンジセットはリポジトリ内で永続的になる.フックの実行が +失敗した場合,トランザクションはロールバックされ,チェンジセットのデータ +は消去される. -This hook can access the metadata associated with the almost-added -changesets, but it should not do anything permanent with this data. -It must also not modify the working directory. +%This hook can access the metadata associated with the almost-added +%changesets, but it should not do anything permanent with this data. +%It must also not modify the working directory. + +このフックはトランザクション中のチェンジセットのメタデータにアクセスする +ことができるが,このデータを使って永続的なことは一切してはならない.ワー +キングディレクトリの変更もしてはならない. + +%While this hook is running, if other Mercurial processes access this +%repository, they will be able to see the almost-added changesets as if +%they are permanent. This may lead to race conditions if you do not +%take steps to avoid them. + +このフックの実行中,他のMercurialプロセスがリポジトリにアクセスすると,ト +ランザクション中のチェンジセットを永続的なものと見なす可能性がある.適切 +な回避策を講じなければ,これが競合状態を引き起こす可能性がある. -While this hook is running, if other Mercurial processes access this -repository, they will be able to see the almost-added changesets as if -they are permanent. This may lead to race conditions if you do not -take steps to avoid them. +%This hook can be used to automatically vet a group of changesets. If +%the hook fails, all of the changesets are ``rejected'' when the +%transaction rolls back. -This hook can be used to automatically vet a group of changesets. If -the hook fails, all of the changesets are ``rejected'' when the -transaction rolls back. +このフックは一連のチェンジセットを自動的に排除するために使うこともでき +る.このフックの実行が失敗した場合,トランザクションがロールバックされる +時にチェンジセット全体がリジェクトされる. -Parameters to this hook: +%Parameters to this hook: +%\begin{itemize} +%\item[\texttt{node}] A changeset ID. The changeset ID of the first +% changeset in the group that was added. All changesets between this +% and \index{tags!\texttt{tip}}\texttt{tip}, inclusive, were added by +% a single \hgcmd{pull}, \hgcmd{push} or \hgcmd{unbundle}. +%\item[\texttt{source}] A string. The source of these changes. See +% section~\ref{sec:hook:sources} for details. +%\item[\texttt{url}] A URL. The location of the remote repository, if +% known. See section~\ref{sec:hook:url} for more information. +%\end{itemize} + +このフックへのパラメータ: \begin{itemize} -\item[\texttt{node}] A changeset ID. The changeset ID of the first - changeset in the group that was added. All changesets between this - and \index{tags!\texttt{tip}}\texttt{tip}, inclusive, were added by - a single \hgcmd{pull}, \hgcmd{push} or \hgcmd{unbundle}. -\item[\texttt{source}] A string. The source of these changes. See - section~\ref{sec:hook:sources} for details. -\item[\texttt{url}] A URL. The location of the remote repository, if - known. See section~\ref{sec:hook:url} for more information. +\item[\texttt{node}] チェンジセットID.追加される一連のチェンジセットの + うち,最初のチェンジセットID.これと + \index{tags!\texttt{tip}}\texttt{tip}の間の全てのチェンジセッ + トが一度の\hgcmd{pull}, \hgcmd{push} または +\item[\texttt{source}] 文字列.これらの変更のソース.詳細については + \ref{sec:hook:sources}節を参照のこと. +\item[\texttt{url}] URL.既知のリモートリポジトリの場所.詳細については + \ref{sec:hook:url}節を参照のこと. \end{itemize} -See also: \hook{changegroup} (section~\ref{sec:hook:changegroup}), -\hook{incoming} (section~\ref{sec:hook:incoming}), -\hook{prechangegroup} (section~\ref{sec:hook:prechangegroup}) +%See also: \hook{changegroup} (section~\ref{sec:hook:changegroup}), +%\hook{incoming} (section~\ref{sec:hook:incoming}), +%\hook{prechangegroup} (section~\ref{sec:hook:prechangegroup}) + +参考: \hook{changegroup} (\ref{sec:hook:changegroup}節), +\hook{incoming} (\ref{sec:hook:incoming}節), +\hook{prechangegroup} (\ref{sec:hook:prechangegroup}節) %\subsection{\hook{pretxncommit}---before completing commit of new %changeset} @@ -1960,32 +2233,56 @@ る前に} \label{sec:hook:pretxncommit} -This controlling hook is run before a transaction---that manages a new -commit---completes. If the hook succeeds, the transaction completes -and the changeset becomes permanent within this repository. If the -hook fails, the transaction is rolled back, and the commit data is -erased. +%This controlling hook is run before a transaction---that manages a new +%commit---completes. If the hook succeeds, the transaction completes +%and the changeset becomes permanent within this repository. If the +%hook fails, the transaction is rolled back, and the commit data is +%erased. -This hook can access the metadata associated with the almost-new -changeset, but it should not do anything permanent with this data. It -must also not modify the working directory. +この制御フックは新たなコミットのためのトランザクションの完了前に実行され +る.このフックの実行が成功した場合,トランザクションが完了され,チェンジ +セットはリポジトリ内で永続的になる.フックの実行が失敗した場合はトランザ +クションはロールバックされ,コミットデータは消去される. + +%This hook can access the metadata associated with the almost-new +%changeset, but it should not do anything permanent with this data. It +%must also not modify the working directory. + +このフックはトランザクション中のチェンジセットのメタデータにアクセスする +ことができるが,このデータを使って永続的なことは一切してはならない.ワー +キングディレクトリの変更もしてはならない. -While this hook is running, if other Mercurial processes access this -repository, they will be able to see the almost-new changeset as if it -is permanent. This may lead to race conditions if you do not take -steps to avoid them. +%While this hook is running, if other Mercurial processes access this +%repository, they will be able to see the almost-new changeset as if it +%is permanent. This may lead to race conditions if you do not take +%steps to avoid them. + +このフックの実行中,他のMercurialプロセスがリポジトリにアクセスすると,ト +ランザクション中のチェンジセットを永続的なものと見なす可能性がある.適切 +な回避策を講じなければ,これが競合状態を引き起こす可能性がある. -Parameters to this hook: +%Parameters to this hook: +%\begin{itemize} +%\item[\texttt{node}] A changeset ID. The changeset ID of the newly +% committed changeset. +%\item[\texttt{parent1}] A changeset ID. The changeset ID of the first +% parent of the newly committed changeset. +%\item[\texttt{parent2}] A changeset ID. The changeset ID of the second +% parent of the newly committed changeset. +%\end{itemize} + +このフックへのパラメータ: \begin{itemize} -\item[\texttt{node}] A changeset ID. The changeset ID of the newly - committed changeset. -\item[\texttt{parent1}] A changeset ID. The changeset ID of the first - parent of the newly committed changeset. -\item[\texttt{parent2}] A changeset ID. The changeset ID of the second - parent of the newly committed changeset. +\item[\texttt{node}] チェンジセットID.新たにこ見んとされたチェンジセッ + トのID. +\item[\texttt{parent1}] チェンジセットID.新たにコミットされたチェンジセッ + トの1つ目の親のチェンジセットID. +\item[\texttt{parent2}] チェンジセットID.新たにコミットされたチェンジセッ + トの2つ目の親のチェンジセットID. \end{itemize} -See also: \hook{precommit} (section~\ref{sec:hook:precommit}) +%See also: \hook{precommit} (section~\ref{sec:hook:precommit}) +参考:\hook{precommit} (\ref{sec:hook:precommit}節) %\subsection{\hook{preupdate}---before updating or merging working %directory} @@ -1993,44 +2290,77 @@ はマージの前に} \label{sec:hook:preupdate} -This controlling hook is run before an update or merge of the working -directory begins. It is run only if Mercurial's normal pre-update -checks determine that the update or merge can proceed. If the hook -succeeds, the update or merge may proceed; if it fails, the update or -merge does not start. +%This controlling hook is run before an update or merge of the working +%directory begins. It is run only if Mercurial's normal pre-update +%checks determine that the update or merge can proceed. If the hook +%succeeds, the update or merge may proceed; if it fails, the update or +%merge does not start. + +この制御フックはワーキングディレクトリのアップデートまたはマージが始まる +前に実行される. Mercurialの通常のアップデート前チェックがアップデートま +たはマージを実行できると判断した場合にのみ実行される.フックの実行が成功 +した場合,アップデートまたはマージが行われる.失敗した場合はアップデート +またはマージは開始されない. -Parameters to this hook: +%Parameters to this hook: +%\begin{itemize} +%\item[\texttt{parent1}] A changeset ID. The ID of the parent that the +% working directory is to be updated to. If the working directory is +% being merged, it will not change this parent. +%\item[\texttt{parent2}] A changeset ID. Only set if the working +% directory is being merged. The ID of the revision that the working +% directory is being merged with. +%\end{itemize} + +このフックへのパラメータ: \begin{itemize} -\item[\texttt{parent1}] A changeset ID. The ID of the parent that the - working directory is to be updated to. If the working directory is - being merged, it will not change this parent. -\item[\texttt{parent2}] A changeset ID. Only set if the working - directory is being merged. The ID of the revision that the working - directory is being merged with. +\item[\texttt{parent1}] チェンジセットID.ワーキングディレクトリがアップ + デートされる親ID.ワーキングディレクトリがマージされる場合, + 親IDは変更されない. +\item[\texttt{parent2}] チェンジセットID.ワーキングディレクトリがマージ + される場合のみセットされる.ワーキングディレクトリがマージ + されるリビジョンID. \end{itemize} -See also: \hook{update} (section~\ref{sec:hook:update}) +%See also: \hook{update} (section~\ref{sec:hook:update}) + +参考: \hook{update} (\ref{sec:hook:update}節) %\subsection{\hook{tag}---after tagging a changeset} \subsection{\hook{tag}---チェンジセットにタグ付けした後に} \label{sec:hook:tag} -This hook is run after a tag has been created. +%This hook is run after a tag has been created. +このフックはタグが生成された後に実行される. -Parameters to this hook: +%Parameters to this hook: +%\begin{itemize} +%\item[\texttt{local}] A boolean. Whether the new tag is local to this +% repository instance (i.e.~stored in \sfilename{.hg/localtags}) or +% managed by Mercurial (stored in \sfilename{.hgtags}). +%\item[\texttt{node}] A changeset ID. The ID of the changeset that was +% tagged. +%\item[\texttt{tag}] A string. The name of the tag that was created. +%\end{itemize} + +このフックへのパラメータ: \begin{itemize} -\item[\texttt{local}] A boolean. Whether the new tag is local to this - repository instance (i.e.~stored in \sfilename{.hg/localtags}) or - managed by Mercurial (stored in \sfilename{.hgtags}). -\item[\texttt{node}] A changeset ID. The ID of the changeset that was - tagged. -\item[\texttt{tag}] A string. The name of the tag that was created. +\item[\texttt{local}] ブール値.新しいタグがリポジトリローカルなもの + (\sfilename{.hg/localtags}に保存される)かMercurialに管理 + されるもの(\sfilename{.hgtags}に保存される)かを示す. +\item[\texttt{node}] チェンジセットID.タグ付けされるチェンジセットのID. +\item[\texttt{tag}] 文字列.生成されたタグの名前. \end{itemize} -If the created tag is revision-controlled, the \hook{commit} hook -(section~\ref{sec:hook:commit}) is run before this hook. +%If the created tag is revision-controlled, the \hook{commit} hook +%(section~\ref{sec:hook:commit}) is run before this hook. -See also: \hook{pretag} (section~\ref{sec:hook:pretag}) +生成されたタグがリビジョンコントロールされている場合,\hook{commit}フッ +ク(\ref{sec:hook:commit}節)はこのフックの前に実行される. + +%See also: \hook{pretag} (section~\ref{sec:hook:pretag}) + +参考: \hook{pretag} (\ref{sec:hook:pretag}節) %\subsection{\hook{update}---after updating or merging working %directory} @@ -2038,23 +2368,40 @@ 後に} \label{sec:hook:update} -This hook is run after an update or merge of the working directory -completes. Since a merge can fail (if the external \command{hgmerge} -command fails to resolve conflicts in a file), this hook communicates -whether the update or merge completed cleanly. +%This hook is run after an update or merge of the working directory +%completes. Since a merge can fail (if the external \command{hgmerge} +%command fails to resolve conflicts in a file), this hook communicates +%whether the update or merge completed cleanly. + +このフックはワーキングディレクトリのアップデートまたはマージが完了した後 +に実行される.マージは失敗することもある(外部の\command{hgmerge}コマンド +はファイル内のコンフリクトを解決できないことがある)ので,このフックはアッ +プデートまたはマージが正常に完了したかどうかを問い合わせる. + +%\begin{itemize} +%\item[\texttt{error}] A boolean. Indicates whether the update or +% merge completed successfully. +%\item[\texttt{parent1}] A changeset ID. The ID of the parent that the +% working directory was updated to. If the working directory was +% merged, it will not have changed this parent. +%\item[\texttt{parent2}] A changeset ID. Only set if the working +% directory was merged. The ID of the revision that the working +% directory was merged with. +%\end{itemize} \begin{itemize} -\item[\texttt{error}] A boolean. Indicates whether the update or - merge completed successfully. -\item[\texttt{parent1}] A changeset ID. The ID of the parent that the - working directory was updated to. If the working directory was - merged, it will not have changed this parent. -\item[\texttt{parent2}] A changeset ID. Only set if the working - directory was merged. The ID of the revision that the working - directory was merged with. +\item[\texttt{error}] ブール値.アップデートまたはマージが正常に完了した + かどうかを示す. +\item[\texttt{parent1}] チェンジセットID.ワーキングディレクトリがアップ + デートされる親ID.ワーキングディレクトリがマージされる場合,親 + IDは変化しない.xxx +\item[\texttt{parent2}] チェンジセットID.ワーキングディレクトリがマージ + される時のみセットされる.ワーキングディレクトリがマージされ + るリビジョンID. \end{itemize} -See also: \hook{preupdate} (section~\ref{sec:hook:preupdate}) +%See also: \hook{preupdate} (section~\ref{sec:hook:preupdate}) +参考: \hook{preupdate} (\ref{sec:hook:preupdate}節) %%% Local Variables: %%% mode: yatex diff -r 64858a216741 -r 69923723e7f9 ja/todo.txt --- a/ja/todo.txt Sat Apr 25 00:04:19 2009 +0900 +++ b/ja/todo.txt Mon Apr 27 17:31:54 2009 +0900 @@ -7,9 +7,9 @@ filenames.tex 100% hg_id.tex noneed hgext.tex 100% -hook.tex 50% +hook.tex 80% intro.tex 100% -license.tex +license.tex - mq-collab.tex 100% mq-ref.tex 100% mq.tex 100%