# HG changeset patch # User Yoshiki Yazawa # Date 1245319896 -32400 # Node ID 7107b79427a34c74b1964f05d7bd7e580bffeb08 # Parent 09c1609f9bb2c9d29d3aa92d263da28397be8fd6 Propagate 4e23c220d1b0 Update chapter 2 diff -r 09c1609f9bb2 -r 7107b79427a3 ja/tour-merge.tex --- a/ja/tour-merge.tex Thu Jun 18 16:45:47 2009 +0900 +++ b/ja/tour-merge.tex Thu Jun 18 19:11:36 2009 +0900 @@ -132,7 +132,7 @@ %Mercurial is telling us that the \hgcmd{update} command won't do a %merge; it won't update the working directory when it thinks we might -%be wanting to do a merge, unless we force it to do so. Instead, we +%want to do a merge, unless we force it to do so. Instead, we %use the \hgcmd{merge} command to merge the two heads. %\interaction{tour.merge.merge} @@ -142,16 +142,6 @@ 一方,\hgcmd{merge}コマンドは2つのヘッドのマージを行う. \interaction{tour.merge.merge} -\begin{figure}[ht] - \centering - \grafix{tour-merge-merge} -% \caption{Working directory and repository during merge, and -% following commit} - \caption{マージ中のワーキングディレクトリとリポジトリおよび後続のコミッ - ト} - \label{fig:tour-merge:merge} -\end{figure} - %This updates the working directory so that it contains changes from %\emph{both} heads, which is reflected in both the output of %\hgcmd{parents} and the contents of \filename{hello.c}. @@ -191,19 +181,39 @@ マージの間,ワーキングディレクトリは2つの親チェンジセットを持ち,これらは 新しいチェンジセットの両親となる. +\begin{figure}[ht] + \centering + \grafix{tour-merge-merge} +% \caption{Working directory and repository during merge, and +% following commit} + \caption{マージ中のワーキングディレクトリとリポジトリおよび後続のコミッ + ト} + \label{fig:tour-merge:merge} +\end{figure} + +%We sometimes talk about a merge having \emph{sides}: the left side is +%the first parent in the output of \hgcmd{parents}, and the right side is +%the second. If the working directory was at e.g. revision 5 before we +%began a merge, that revision will become the left side of the merge. + +マージにより\emph{サイド}ができることがある.左のサイドは\hgcmd{parents} +の出力の最初の親で,右のサイドが2番目の親である.例えば,マージ前にワーキ +ングディレクトリがリビジョン5であったとすると,マージの左のサイドがこの +リビジョンになる. + %\section{Merging conflicting changes} \section{コンフリクトのある変更をマージする} %Most merges are simple affairs, but sometimes you'll find yourself -%merging changes where each modifies the same portions of the same +%merging changes where each side modifies the same portions of the same %files. Unless both modifications are identical, this results in a %\emph{conflict}, where you have to decide how to reconcile the %different changes into something coherent. -大半のマージはシンプルなものだが,場合によっては同じファイルの同じ箇所を -変更しているチェンジセットをマージしなければならないことがある.複数の変 -更が同じ内容でない限り,結果は\emph{conflict}となるため,相異なる変更を整 -合させるように修正する必要がある. +大半のマージはシンプルなものだが,同じファイルの同じ箇所を変更するチェン +ジセットをマージしなければならないこともある.各々の変更が同じ内容でない +限り,結果は\emph{conflict}となるため,変更を整合させるように修正する必要 +がある. \begin{figure}[ht] \centering @@ -227,23 +237,21 @@ トを解決するため,ファイルがどうあるべきかを明らかにしよう. %Mercurial doesn't have a built-in facility for handling conflicts. -%Instead, it runs an external program called \command{hgmerge}. This -%is a shell script that is bundled with Mercurial; you can change it to -%behave however you please. What it does by default is try to find one -%of several different merging tools that are likely to be installed on -%your system. It first tries a few fully automatic merging tools; if -%these don't succeed (because the resolution process requires human -%guidance) or aren't present, the script tries a few different +%Instead, it runs an external program, usually one that displays some +%kind of graphical conflict resolution interface. By default, Mercurial +%tries to find one of several different merging tools that are likely to +%be installed on your system. It first tries a few fully automatic +%merging tools; if these don't succeed (because the resolution process +%requires human guidance) or aren't present, it tries a few different %graphical merging tools. -Mercurialは内蔵のコンフリクト解決機構を持たない.その代わ -り,\command{hgmerge}という外部コマンドを起動する.これはMercurialに同梱 -されたシェルスクリプトで,挙動を変更することも可能である. -デフォルトでこのコマンドが行うことは,システムにインストールされている可 -能性の高いいくつかの異なったマージツールの1つを捜し出すことである. -最初に2,3の全自動のマージツールを試す.これでうまくいかない場合(解決プ -ロセスに人のガイドが必要なため)やツールが存在しない場合,スクリプトは -別の2,3のグラフィカルマージツールを試す. +Mercurialは内蔵のコンフリクト解決機構を持たない.その代わり,何らかのグラ +フィカルなコンフリクト解決インタフェースを表示する外部コマンドを起動す +る.デフォルトでMercurialはシステムにインストールされている可能性の高いい +くつかのマージツールを捜す.Mercurialは最初に2,3の全自動のマージツールを +試す.これでうまくいかない場合(解決プロセスに人のガイドが必要な場合)や +ツールが存在しない場合,スクリプトは別の2,3のグラフィカルマージツールを試 +す. %It's also possible to get Mercurial to run another program or script %instead of \command{hgmerge}, by setting the \envar{HGMERGE} @@ -363,29 +371,15 @@ ファイルに2つの別のバージョンを作り,マージを行うのに的下環境を設定する. \interaction{tour-merge-conflict.pull} -%In this example, I won't use Mercurial's normal \command{hgmerge} -%program to do the merge, because it would drop my nice automated -%example-running tool into a graphical user interface. Instead, I'll -%set \envar{HGMERGE} to tell Mercurial to use the non-interactive -%\command{merge} command. This is bundled with many Unix-like systems. -%If you're following this example on your computer, don't bother -%setting \envar{HGMERGE}. -%\interaction{tour-merge-conflict.merge} -%Because \command{merge} can't resolve the conflicting changes, it -%leaves \emph{merge markers} inside the file that has conflicts, -%indicating which lines have conflicts, and whether they came from our -%version of the file or theirs. +%In this example, I'll set \envar{HGMERGE} to tell Mercurial to use the +%non-interactive \command{merge} command. This is bundled with many +%Unix-like systems. (If you're following this example on your computer, +%don't bother setting \envar{HGMERGE}.) -この例ではマージにMercurialの通常コマンドである\command{hgmerge}は使わな -い.このコマンドは自動化されたグラフィカルユーザインターフェイスのマージ -ツールを起動してしまうからである.その代わり\envar{HGMERGE}を設定し -て,Mercurialに非対話的な\command{merge}コマンドを起動させる.これは多く -のUnix系システムにバンドルされているコマンドである.この例を手元のマシン -で実行する時には\envar{HGMERGE}を設定する必要はない. -\interaction{tour-merge-conflict.merge} \command{merge}コマンドはチェンジ -セットのコンフリクトを解決することはできず,\emph{merge markers}をコンフ -リクトのあるファイル内に残し,どの行にコンフリクトがあるのか,コンフリク -トが手元の変更と他の人の変更のいずれから来ているのかを示す. +この例では\envar{HGMERGE}を設定して,Mercurialに非対話的な +\command{merge}コマンドを起動させる.これは多くのUnix系システムにバンドル +されているコマンドである.(この例を手元のマシンで実行する時には +\envar{HGMERGE}を設定する必要はない.) %Mercurial can tell from the way \command{merge} exits that it wasn't %able to merge successfully, so it tells us what commands we'll need to @@ -418,7 +412,7 @@ つのコマンドを順に用いる必要があった. \begin{codesample2} - hg pull + hg pull -u hg merge hg commit -m 'Merged remote changes' \end{codesample2} @@ -449,36 +443,37 @@ %The \hgext{fetch} extension adds a new command called, not %surprisingly, \hgcmd{fetch}. This extension acts as a combination of -%\hgcmd{pull}, \hgcmd{update} and \hgcmd{merge}. It begins by pulling +%\hgopt{pull}{-u}, \hgcmd{merge} and \hgcmd{commit}. It begins by pulling %changes from another repository into the current repository. If it -%finds that the changes added a new head to the repository, it begins a -%merge, then commits the result of the merge with an -%automatically-generated commit message. If no new heads were added, -%it updates the working directory to the new tip changeset. +%finds that the changes added a new head to the repository, it +%begins a merge, then (if the merge succeeded) commits the result +%of the merge with an automatically-generated commit message. If +%no new heads were added, it updates the working directory to the +%new tip changeset. \hgext{fetch}エクステンションはその名の通りの新しいコマンド\hgcmd{fetch} -を追加する.このエクステンションは\hgcmd{pull}と\hgcmd{update}および -\hgcmd{merge}を組み合わせた働きをする.このエクステンションはまず他のリポ -ジトリから変更をpullし,リポジトリに新しいヘッドが追加された場合はマージ -を行い,マージ結果を自動的に生成されたコミットメッセージと共にコミットす -る.新たなヘッドが追加されなかった場合は新たなtipチェンジセットへワーキン -グディレクトリを更新する. +を追加する.このエクステンションは\hgopt{pull}{-u}と\hgcmd{merge}および +\hgcmd{commit}を組み合わせた働きをする.このエクステンションはまず他のリ +ポジトリから変更をpullし,リポジトリに新しいヘッドが追加された場合はマー +ジを行い,(マージが成功した場合)マージ結果を自動的に生成されたコミット +メッセージと共にコミットする.新たなヘッドが追加されなかった場合は新たな +tipチェンジセットへワーキングディレクトリを更新する. -%Enabling the \hgext{fetch} extension is easy. Edit your -%\sfilename{.hgrc}, and either go to the \rcsection{extensions} section -%or create an \rcsection{extensions} section. Then add a line that -%simply reads ``\Verb+fetch +''. -簡単に\hgext{fetch}エクステンションを有効にすることができ -る.\sfilename{.hgrc}ファイルの\rcsection{extensions}セクションを編集(存 -在しなければ追加する)し,``\Verb+fetch +''という行を追加すればよい. +%Enabling the \hgext{fetch} extension is easy. Edit the +%\sfilename{.hgrc} in your home directory, and either go to the +%\rcsection{extensions} section or create an \rcsection{extensions} +%section. Then add a line that simply reads ``\Verb+fetch +''. + +\hgext{fetch}エクステンションは簡単に有効にすることができる.ホームディレ +クトリの\sfilename{.hgrc}ファイルを編集し,\rcsection{extensions}セクショ +ンに``\Verb+fetch +''という行を追加すればよい. \begin{codesample2} [extensions] fetch = \end{codesample2} -%(Normally, on the right-hand side of the ``\texttt{=}'' would appear -%the location of the extension, but since the \hgext{fetch} extension -%is in the standard distribution, Mercurial knows where to search for -%it.) +%(Normally, the right-hand side of the ``\texttt{=}'' would indicate +%where to find the extension, but since the \hgext{fetch} extension is in +%the standard distribution, Mercurial knows where to search for it.) (通常,右辺の``\texttt{=}''はエクステンションの置かれた場所を表す が,\hgext{fetch}エクステンションは標準配布物に含まれるため,Mercurialは その所在をすでに知っている.)