2014/08/09 17:23:48 (r25753)
目次
図の一覧
表の一覧
複数の眼がソースコードを検査してくれるオープンソースプロジェクトや、ソースコードをコンポーネントと共に販売する商用プロジェクトのどちらでも、プロジェクトで作業する際には、バグを発見したり、プロジェクトの改良をしたい人、顧客がいることでしょう。彼らはパッチを送ってくれるので、そのパッチを検査し、適用するかどうか判断しなければなりません。
TortoiseMerge は次のどちらの作業でも利用できます。
パッチのレビュー
パッチの適用
また TortoiseMerge は、ソース管理システムやその他で、同じファイルに対して作業したことにより発生する、競合したファイルを整理する助けにもなります。
TortoiseMerge はフリーです。お金を払う必要はありませんし、どんな用途にも使用できます。 GNU Public License(GPL)のもとで開発されています。
TortoiseMerge はオープンソースプロジェクトです。つまり、あなたはこのプログラムのソースコードに対して完全な読み取りアクセス権を持っています。ソースコードは、 http://code.google.com/p/tortoisesvn/source/browse/ から閲覧することができます。開発中の最新版は /trunk/
以下にあり、リリースされた版は /tags/
以下にあります。
TortoiseMerge はフリーでオープンソースのアプリケーションです。テキストファイルの差分を表示したり、変更点をマージしたり、 パッチ と呼ばれる Unified 差分ファイルを検査したり適用したりすることができます。
任意のプログラム言語のソースファイルや、ドキュメントや Web サイトの html/xml ファイルといったテキストファイルで作業していると、そのファイルの異なるバージョンと比較したくなる状況があるでしょう。他の誰かが行ったバージョンとの差分を得たり、自分がどのような変更を行ったか見るといったことです。
Subversion のようなバージョン管理システムを使用して作業を行っていると、作業コピーを更新する時に 競合 が発生することがあります。これは、作業コピーに変更を加えた部分と同じ部分に対して、他の誰かが別の変更を加えたことによって発生します。競合は手作業で解決しなければなりません。 TortoiseMerge はこの作業を助けてくれます。
競合時のファイルの関係を、以下の図に示します。
古くなってしまったパッチファイルを適用しようとしたときにも、競合が発生します。この場合 TortoiseMerge を使用しなければ、現在のバージョンに対するパッチファイルがないか人に尋ねたり、パッチファイルを手作業で適用してみたりする必要があるでしょう。
しかし TortoiseMerge を使えば、もうこのようなことは必要ありません(少なくとも Subversion のようなバージョン管理システムを使用していないのであれば)。 TortoiseMerge はパッチを作成したリビジョン・バージョンを解析し、バージョン管理システムから特定のバージョンを自動的に取得します。その後パッチを適用し、自分の行った変更と他人の行った変更の両方を確認できるようにします。これにより、変更点を保持するかどうか決めることができます。
TortoiseSVN の作業をしていると、プロジェクトの拡張やバグの修正のためのパッチを送ってもらったときにはいつも、そのパッチを適用するのに大量の作業を行わなければなりませんでした。また多くの場合、既にファイルを更新してしまっていたために、そのパッチは時代遅れになっており、コマンドラインパッチツール http://unxutils.sourceforge.net/ では適用できませんでした。
また、 TortoiseSVN がもともと
→ を実装していなかった主な理由でもあるのですが、パッチの適用が簡単だったので、私たちはユーザーがファイル全体を送ってくれるのを歓迎していました。長時間を費やしてパッチファイルを適用することができる GUI ツールをインターネットで探しましたが、そのようなツールは存在しないということが分かっただけでした。その後は省略しますが、そのようなツールを提供してくれる人がいないのであれば、自分たちで作らなければならないと思い立ちました。そうして TortoiseMerge が生まれました。
TortoiseSVN は既にすばらしい差分エンジンを内蔵した Subversion のライブラリを使用していたので、 GNU diff の代わりにこのライブラリを使用するのは自然なことでした。
TortoiseMerge は次のような様々な用途に使用できます。
2つのファイルの差分を表示し、変更点をマージしたり、不要な変更を削除したりすることができます。
ローカルな変更と、更新で取得した Subversion のリポジトリにある変更との競合の編集を行うことができます。
パッチファイルを適用することができます。これが TortoiseMerge を作成した理由だったりします :)
このモードでは、2つのファイルを比較できます。左画面のファイルはオリジナルファイル(Theirs とも呼ばれる)として扱われ、右画面のファイルは変更後のファイル(Mine とも呼ばれる)として扱います。
右画面にあるファイルに対しては、単なる行単位の変更に加え、次のような操作を行うことができます。
変更された行を、左画面に表示されているテキストに戻す。
Mine の前に Theirs を配置したり、 Theirs の前に Mine を配置したりして、両方のブロックを結合する。
また、右画面のファイルはテキストエディターのように編集することもできます。その行は鉛筆アイコンで印がつけられます。なお、前述の行単位やブロック単位の変更を行うつもりなら、編集する前に行っておく方がよいでしょう。編集してしまうと、 TortoiseMerge が オリジナルファイルとの関連を追跡できなくなります。
これは3方向マージと呼ばれ、3画面表示になります。しかし、実際には4つのファイルが関係しています。現在競合している2つのファイルの共通の祖先である、共通のベースファイルは表示されません。3つのファイルの関係は、以下の図で説明します。
ベースファイル(Base)は、 自分 と 他人 がそのファイルに対して変更を始めた、最も古いバージョンを表します。 Mine は Base ファイルに対して自分が変更した結果を表します。また、 Theirs は 他人 が変更した結果を表します。左画面には、ベースファイルに対する Theirs の変更が表示されます。また、右画面には、ベースファイルに対する Mine の変更を表示します。下画面には、競合を解決した結果を出力するファイルが表示されます。
競合の解決画面では、 Mine や Theirs もしくは両方から、採用するブロックを選択できます。この場合、変更結果は下の画面に表示されます。
パッチファイルは Subversion の Unified 差分ファイルで、変更を適用するファイルの一覧が含まれています。パッチは、あなたが変更点を確認してからコミットできるように、他の開発者によって作成されたかもしれません。また、 TortoiseSVN が2つのフォルダーを比較する際に、内部的に作成したかもしれません。これは、リポジトリのリビジョンと作業コピーのフォルダーを比較したり、リポジトリ内の2つのリビジョンを比較したり、2つの異なるリポジトリパスを比較したりすると発生します。
いずれの場合も、パッチに含まれるファイルの一覧が、小さいウィンドウで表示されます。その中のファイルをダブルクリックすると、関連するファイルが取得され、変更が適用されます。左画面にはパッチ適用前の、右画面にはパッチ適用後のファイルの内容が表示されます。
比較・編集モードと同様に、右画面のファイルを編集することができます。
TortoiseMerge は、1画面表示、2画面表示、3画面表示の3つの表示モードを持っています。1・2画面表示は変更を表示するために、3画面表示は競合を解決するために使用します。
2画面表示には、1画面表示にはない次のような特徴があります。
変更のあった行内の変更点が、違う色で表示されます。文字列が追加された部分は明るい色になりますが、もちろんここで使用する色は設定できます。削除された部分は暗い茶色表示され、文字列に取り消し線が入ります。どのように動作するかは、上のスクリーンショットで確認してください。
コードを再編成すると、ホワイトスペース(空白、タブ、改行)を大量に変更しても、コードには実質的に変更がないことがあります。例えば、非常に長い行を数行に分割したり、短い複数の行をひとつにまとめたりした場合です。
このような変更は、画面の左端に白い円が表示されます。このような白い円がある場合には、実質的にはその部分のコードに変更がなく、変更箇所のチェックを行う必要がないことがすぐにわかります。
2画面表示では、右画面のファイルを手作業で編集できます。変更した場所には鉛筆マークが表示されます。
3つのファイルを比較・マージする場合、 TortoiseMerge は3画面表示で差分を表示します。ファイルの競合を解決する必要があるときにも便利です。
左画面には Their ファイルと Base ファイルの差異が表示され、右画面には Mine ファイルと Base ファイルの差異が表示されます。下画面には、 Base、 Mine、 Theirs をマージした結果が発生しうる競合と共に表示されます。
画面のタイトル部分にマウスを置くと、どちらの画面でも差分を取っているファイル名がツールチップに表示されます。
TortoiseMerge がパッチファイルを解釈すると、そのパッチファイルで変更されるファイルを表示する、小さなウィンドウが表示されます。
ファイル名が黒で表示されている場合、問題なくパッチを当てることができます。これはパッチがそのファイルに対して古くなっているわけではないということを表します。しかし、ファイル名が赤で表示されている場合、既にファイルが変更されているため、直接パッチを当てることができません。
でもご心配なく。 Subversion で作業していれば、古いバージョンのファイルを取り出し、競合を解決できます。実際、 TortoiseMerge は自動的に古いバージョンのファイルを取り出し、 Base
(古いバージョンのファイル)、 Mine
(現在作業コピーにあるファイル)、 Theirs
(古いバージョンのファイルにパッチが当たったファイル)の3ファイル間の差分を表示します。ここから手作業で競合を解決できます。
パッチファイルウィンドウにはコンテキストメニューがあり、現在のファイルにパッチを適用した結果をプレビュー(保存せず適用)したり、選択したファイルのみ適用して保存したり、一覧にあるファイルすべてに適用・保存を行うといった操作ができます。ダブルクリックするとプレビューします。
TortoiseMerge がパッチを直接適用できるか、適用前に古いバージョンを取得するかによって、2画面表示(直接適用)か3画面表示(古いバージョンの取得後に取得)で表示されます。
メニューバーの下にツールバーがあります。ここで、次のようなよく使用される共通の機能に簡単にアクセスできます。
「ファイルを開く」ダイアログにアクセスしますが何か?
行った変更を保存します。
TortoiseMerge で行った変更を取り消し、ファイルをディスクから再度読み込みます。
TortoiseMerge で行った変更を元に戻します。マルチレベルアンドゥを実装しています。
次のファイルの相違点に直接ジャンプします。ファイルの変更されていない部分を飛ばして、スクロール操作を節約します。
2画面表示モードの場合、画面下部の詳細バーには、マウスの場所に関係なく先頭行にある差分が表示されます。
ファイルの相違点のうち、次の競合しており解決する必要のある点に直接ジャンプします。
左右のどちらのテキストブロックを使用するか選択します。変更と競合の編集に関する詳細は、次節をご覧ください。
は、競合したファイルで変更を結合する際に使用します。変更と競合の編集に関する詳細は、次節をご覧ください。
競合をすべて解決して変更を保存したら、エクスプローラーに戻って解決済みにしなくても、 TortoiseMerge で解決済みにできます。
空白に変更があることが分かるように、空白やタブ文字をシンボルで表示するかどうかを切り替えます。
は、画面の右端で行を折り返すかどうかをを切り替えます。オンにした場合、画面をはみ出すような長い行は折り返され、複数行に分割されます。
は、行内差分の表示方法を切り換えます。単語単位モードでは、1文字でも変更されていると、その単語全体が強調表示されます。文字単位モードでは、変更のあった文字ごとに強調表示されます。
デフォルトは単語単位で、ほとんどの場合こちらの方が良いでしょう。例えば、変数名を変更した場合、単語単位モードでは、その変数名全体が強調表示されます。ところが、文字単位モードでは、文字の追加削除でごちゃごちゃし、混乱しやすくなります。しかし、十六進ファイルのようなきちんとした単語にならない内容の場合は、文字単位の表示の方が便利です。
は、インデントや行内の空白が追加・削除された行が、すべて表示されます(これは Subversion の扱いと同じです)。
は、空白の数や種類だけの変更(例えばインデントの変更や、タブとスペースの変更など)が非表示になります。何もないところに空白が追加したり、空白が完全に除去されたりした場合は変更として表示されます。
は、空白のみの差異を非表示にします。
は、1画面表示と2画面表示を切り替えます。3画面表示では無効です。
「オリジナル/ベース」ファイルと見なして左画面にすればよいのか判断できません。逆に表示された場合、これで簡単に表示を切り替えられます。
2画面表示で左右の画面を入れ替えます。2つの異なるツリーで比較を行っている場合、同じファイルの2つのリビジョン間で比較するのとは異なり、 TortoiseSVN はどちらをTortoiseMerge にパッチリストがある場合、このボタンで非表示にしたり(両方のウィンドウが見えます)、表示したり(ファイルリストを確認できます)できます。
は、変更されていない部分を1行に折りたたみ、変更された部分のみが表示される最小の表示にします。折りたたまれた部分は、ダブルクリックすることで展開できますが、再度の折りたたみはファイルを読み込みなおさない限りできません。
TortoiseMerge の設定ダイアログを表示します。
はもちろん、 TortoiseMerge のヘルプファイルを開きます。
ウィンドウの左側にはロケーターバーがあります。これによって、ファイル中のどこに変更があるのかを概観することができます。ロケーターバーは3列あります。左の列は左画面を、右の列は右画面を、中央の列は(表示されている場合)下画面を表しています。1画面表示時は左の列のみ表示されます。ロケーターバーは、各画面を同時にスクロールさせるスクロールバーとしても使用できます。
単語をダブルクリックすると、文書中の単語の出現位置が、メイン画面とロケーターバーの両方で強調表示されます。強調表示を解除するには、もう一度単語をダブルクリックします。
左マージンをクリックしたり、行をトリプルクリックしたりすると、行全体を選択することができます。
下部ウィンドウの下には、ステータスバーがあります。 Theirs
と Mine
の追加・削除行数や、解決されていない競合数を表示します。また、使用されている改行スタイルや、 TortoiseMerge が仮定した文字のエンコード(ASCII、 UTF-8、 など)、 UTF-8 のファイルのバイトオーダマーク(BOM)の有無も表示します。ステータスバーの左側は、マウスでコントロールを指した時にヒントが表示されます。
変更された行は、どのような変更が行われたかがアイコンで表示されます。
追加された行です。
削除された行です。
変更を取りやめ、元の内容に戻された行です。
この行は空白しか変更されていません。マークが連続している箇所では、段落の折り返し位置が変更されて、単語が隣の行に移動しているかもしれません。
TortoiseMerge をテキストエディターとして使用して、手作業で編集された行です。
競合のある行です。
競合がありますが、空白や改行の設定により効果が見えない行です。
TortoiseMerge はファイルの差分を 表示 するだけでなく、競合を解決したり変更を適用したりすることができます。
2画面表示の場合、右画面(Mine
)のみ編集できます。左のファイル(Theirs
)に変更を加えるには、変更する行で右クリックし、 → を選択してください。そうすれば、左のファイルからの変更が右のファイルに加えられます。
時には、両方のテキストブロックが必要になる場合があります。その場合は、
→ や → を使用してください。また、テキストエディターのように出力ファイルを編集することもできます。その行は鉛筆アイコンで印がつけられます。なお、前述の行/ブロックベースの変更を行うつもりなら、編集する前に行っておいた方がよいでしょう。編集してしまうと、TortoiseMerge が オリジナルファイルとの関連を追跡できなくなります。
3画面表示( マージビュー とも呼ばれる)の場合、下画面にあるファイル(マージ後
)のみ編集できます。2画面表示と同様に、競合した行で 右クリック し、 → と → のどちらかを選択してください。さらに両方のブロックを使用したい場合は、 → と → のどちらかを選択してください。選択したコマンドの結果が、マージ後
ファイルに反映されます。
時には、TortoiseMerge では競合していないのに、Subversion で競合が発生したと印がつけられることがあります。これは、選択した空白の扱いによるものかもしれません。行末や空白の変更を無視するようにした場合、その行は 競合無視 アイコンを用いて印がつけられます。競合を解決するために、どのバージョンを採用するか選択する必要があります。
競合によっては、 Theirs
と Mine
から選択するだけで解決することができず、手作業で編集しなければならないことがあります。まず簡単な変更を TortoiseMerge で処理してしまってから保存し、手作業で編集して解決しなければならない難しい変更のみを残すようにするといいでしょう。
同じファイルで再度 TortoiseMerge を使用すると、 TortoiseMerge で変更したか手作業で編集したかにかかわらず、作業コピーに行った変更が 取り消され 、競合の編集を行い始めた状態のファイルになるので注意してください。
コマンドラインスイッチを指定せずに TortoiseMerge を起動した場合は、
→ を使用して手作業でファイルを開いてください。まず始めにあなたがすることは、ファイルの比較・マージをしたいのか、パッチを適用したいのかを決めることです。その選択により、該当するエディットボックスやブラウズボタンが有効になります。
ファイルの比較・マージを行う際には、Base
, Mine
, Theirs
の3つのうち、少なくとも2つのパスを設定しなければなりません。2つのファイルだけを指定すると、その2つのファイルの差分が2画面か1画面のどちらかで表示されます。
3つのファイルをマージする場合、3画面表示で差分が表示されます。この表示は通常、ファイルの競合を解決する必要があるときに使用されます。この場合、出力ファイルには名前が付かないので、結果を保存するには
→ を使う必要があります。ほとんどのオプションは読めばわかりますが、いくつか要点を示してしておきます。
オリジナルファイルをバックアップする 変更したバージョンを保存する前に、作業コピーにあるファイルが filename.bak
に名前が変更されます。
改行コードを無視する 改行コードの違いがないかのように違いを隠します。
大文字/小文字の変更は無視する テキストファイル中、大文字/小文字しか違わない変更を隠します。 Visual Basic のような、警告なしで変数の大文字/小文字を変更してしまうようなアプリでは便利です。
行内の変更された部分に色付けする を使用すると、メイン画面内にある行内の変更を、差分バーと同様に色分けします。大きく変更された行は、この方法で表示すると分かりづらくなります。この場合、行が置き換えられたように(古い行の削除と新しい行の追加として)表示されます。
空白を比較 インデントや行内の空白の変更を、行が追加・削除された場合と同様に扱います(Subversion と同様の扱い)。
空白の変更を無視する 空白の種類や数しか変わらない変更(例えばインデントの変更や、タブとスペースの変更など)を隠します。但し、何もないところへの空白の追加や、空白の完全削除は変更として表示します。
空白を無視する 空白のみの変更を隠します。
このダイアログで、変更がある行がハイライト表示される背景色を選択できます。
キーボードのショートカットとコマンドの一覧です。
プログラムを終了する
選択したテキストをクリップボードへコピーする
選択したテキストを切り取ってクリップボードに入れる
クリップボードから選択したテキストを貼り付ける
最後の変更を元に戻す
文字列検索用に検索ダイアログを開く
差分・マージ用にファイルを開く
変更を保存
名前を付けて保存 ...
次の相違点へ移動
前の相違点へ移動
次の競合点へ移動
前の競合点へ移動
1画面表示と2画面表示を切り替え
ファイルを再読込し、すべての変更の取り消し
空白の表示・非表示を切り替え
未変更箇所を折りたたむかどうかを切り替え
行の折り返しの有無を切り替え
左右の表示をスクロールする
TortoiseMerge は、コマンドラインパラメーターを指定すると、ファイルを選択する開くダイアログを表示せずに起動できます。TortoiseMerge を他のアプリケーションから使用する際に便利です。
ほとんどのスイッチには、パスやその他の文字列などの追加情報が必要です。この場合、スイッチの後に「:」に続けて文字列やパスを指定してください。例えば、次のように指定します。
/base:"c:\folder\my base file.txt"
表B.1 有効なコマンドラインオプションの一覧
コマンド | 説明 |
---|---|
/? | 主要なコマンドラインスイッチをダイアログで表示します。 |
/help | ? と同様です。 |
/base | 3方向差分で使用する base ファイルを指定します。画面には表示されませんが、これが共通の祖先になります。2方向差分ならば左ファイルになります。 |
/basename | base ファイルの名前です。ファイルパスの代わりに、画面のタイトルに表示されます。3方向差分では、画面のタイトル部のツールチップに表示されます。 |
/theirs | 3方向差分で使用される theirs ファイルを指定します。左画面に表示されます。 |
/theirsname | theirs ファイルの名前です。ファイルパスの代わりに、画面のタイトルに表示されます。 |
/mine | 3方向差分で使用される mine ファイルを指定します。右画面に表示されます。2方向差分では右ファイルになります。 |
/minename | mine ファイルの名前です。ファイルパスの代わりに、画面のタイトルに表示されます。 |
/merged | 3方向差分の結果を出力する 結合 ファイルを指定します。マージや競合を解決した結果を保存するファイルパスです。設定しない場合、TortoiseMerge は結果をどこに保存するかをユーザーに尋ねます。 |
/mergedname | merged ファイルの名前です。ファイルパスの代わりに、画面のタイトルに表示されます。 |
/patchpath | 適用するパッチファイルのパスです。このパスを設定しない場合、 TortoiseMerge はパッチファイルのあるパスと一致するパスから探そうとしますが、これには 非常に長い時間 がかかります。 |
/patchoriginal | パッチを当てるオリジナルファイルの名前です。画面のタイトルに使われます。 |
/patchpatched | パッチを当てたファイルの名前です。画面のタイトルに使われます。 |
/diff | ディレクトリに適用するパッチ・差分ファイルへのパスです。 |
/oneway | ユーザーの設定に関わらず、 TortoiseMerge を強制的に1画面表示で起動します。 |
/reversedpatch | 差分を取るために指定した2ファイルの左右の画面を入れ替えます。 |
/createunifieddiff | /origfile:"<変更前ファイルへのパス>" と /modifiedfile:"<変更後ファイルへのパス>" で指定したファイルから、 Unified 差分ファイル(パッチファイル)を作成します。ターゲットパスは /outfile:"<結果のパッチファイルへのパス>" で指定します。 /outfile を指定しない場合、パッチファイルを保存する場所を指定するためにファイルの保存ダイアログが表示されます。 /createunifieddiff を指定した場合、それ以外のパラメーターはすべて無視されることに注意してください。 |
/line | ファイルを読み込んだ後にジャンプする行番号を指定します。 |
/readonly | ファイルが編集されるのを防止します。つまり、 TortoiseMerge の編集機能が無効になります。 |
他の差分プログラムとの互換のため、コマンドラインにはファイル名だけを渡すこともできるようになっています。略式のコマンドラインは、
TortoiseMerge <baseファイルパス> <mineファイルパス> [ <theirsファイルパス> ]
という書式です。2つのファイルを与えると、互いに比較します。3つのファイルを与えると、最初のファイルをベースファイルとして、他の2つと比較する3方向差分になります。
ファイルやディレクトリをリポジトリに追加する Subversion コマンドです。新しい項目は、コミットした際にリポジトリに追加されます。
作業コピー にあるファイルやフォルダーの現在のベースリビジョンで、最後にチェックアウト、更新、コミットを実行したときの、ファイルやフォルダーのリビジョンです。 BASE リビジョンは、通常は HEAD リビジョンと同じではありません。
このコマンドはテキストファイル専用で、それぞれの行が最後に変更された時の、リポジトリのリビジョンと作者を注釈表示します。私たちの GUI の実装は TortoiseBlame と呼ばれ、リビジョン番号の上にマウスを置くと、コミット日時やログメッセージも表示します。
Berkeley DB 。実績のあるリポジトリ用データベースバックエンドですが、ネットワークフォルダー上では使用できません。1.2以前のリポジトリのデフォルトです。
バージョン管理システムでよく使用される用語で、ある時点で開発が2つの独立したパスに分岐したことをと表します。メインの開発ラインからブランチを作成すれば、メインラインを不安定にせずに新機能の開発を行うことができます。また、今後バグフィックスのみを行うための安定版リリースのブランチを作成すれば、新機能の開発は不安定なトランクで行うことができます。 Subversion のブランチは、「簡易コピー」 として実装されています。
空のディレクトリに、リポジトリからバージョン管理下のファイルをダウンロードし、ローカルの作業コピーを作成する Subversion のコマンドです。
Subversion book から引用します。「作業コピーの再帰的なクリーンアップ(ロックの解除、未完操作の回復)を行います。 作業コピーがロックされています というエラーが出続ける場合、このコマンドを実行し、古くなったロックを削除し、作業コピーをまた使えるようにします。」ここで言う ロック とは、ファイルシステムのロックを指しており、リポジトリのロックではないことに注意してください。
ローカルの作業コピーの変更点をリポジトリに渡し、リポジトリのリビジョンを新しく作成するのに使用する Subversion のコマンドです。
リポジトリの変更がローカルにマージされる際、時には同じ行に変更がある場合があります。この場合、 Subversion はどちらを使用するか自動的に決定できません。これを競合と呼びます。それ以降の変更をコミットする前には、ファイルを手作業で編集し競合を解決しなければなりません。
Subversion リポジトリでは、単一ファイルやツリー全体のコピーを作成できます。これは、領域を消費しないように、オリジナルへのリンクに少し似ている 「簡易コピー」 で実装されています。コピーの作成ではコピー内に履歴を保存します。そのためコピーされる前についても追跡できます。
バージョン管理下のファイルを削除(してコミット)すると、リポジトリ内のそのコミットを行ったバージョン以降、その項目はもう存在しなくなります。しかしもちろん、それ以前のリポジトリのリビジョンには、まだ存在していますから、まだそれにアクセスできます。必要なら削除した項目をコピーし、履歴を含め完全に「復活」できます。
「差分の表示」の略。どのような変更が行われたのか正確に見たいときに便利です。
このコマンドは、作業コピーのようにバージョン管理下のフォルダーをコピーしますが、 .svn
は作成しません。
Subversion が持つリポジトリ用のファイルシステムバックエンドです。ネットワークフォルダー上で使用することができます。1.2以降のリポジトリのデフォルトです。
グループポリシーオブジェクト。
リポジトリにあるファイルやフォルダーの最新リビジョンです。
単一のリビジョンで、フォルダー階層の内容をリポジトリにインポートする Subversion のコマンドです。
バージョン管理下の項目のロックを取得すると、その作業コピーを除いて、ロックが解除されるまでリポジトリにコミット不可の印が付きます。
ファイルやフォルダーのリビジョンの歴史を表します。「履歴」とも呼びます。
ファイルやフォルダーのリビジョンの歴史を表します。「ログ」とも呼びます。
リポジトリに追加された変更を、ローカルで行った変更を壊さないように、作業コピーに追加するプロセスです。時には自動的に調整できず、作業コピーが競合と呼ばれる状態になります。
作業コピーを更新する際に、自動的にマージが行われます。また、 TortoiseSVN のマージコマンドを使用して、別のブランチにある変更を指定してマージすることもできます。
作業コピーの変更がテキストファイルのみである場合、 Subversion の Diff コマンドを使用すると、変更内容を Unified 差分ファイルとして単一ファイルに出力することができます。この種のファイルはよく「パッチ」と呼ばれており、他の誰か(やメーリングリスト)にメールで送ったり、他の作業コピーに適用したりすることができます。コミットのアクセス権を持たない人は、変更を作成し、パッチファイルをコミット権限を持つ人に送ることができます。また、変更に自信がない場合、他の人にパッチを送ってレビューしてもらうこともできます。
ディレクトリやファイルのバージョン管理をするのに加えて、 Subversion はバージョン管理されたメタデータを追加できます。これは、バージョン管理下のディレクトリやファイルごとに「プロパティ」として参照されます。プロパティには、レジストリキーと同じように、それぞれ名前と値があります。 Subversion には、 svn:eol-style
のような内部で使用する特殊なプロパティがいくつかあります。 TortoiseSVN にも tsvn:logminsize
のような特殊なプロパティがあります。任意の名前と値を持つプロパティの追加もできます。
サーバー上の異なるディレクトリに移動したり、ドメイン名が変更されたりして、リポジトリが移動した場合、作業コピーを「再配置」すれば、作業コピーのリポジトリのURLが新しい場所を指すようになります。
【注意】このコマンドは、作業コピーが指している同じリポジトリの同じ場所を指し、そのリポジトリが移動されてしまったときのみに使用してください。その他の場合には、代わりに「切り替え」コマンドを使用する必要があります。
データを集中して格納し保守する場所。複数のデータベースやファイルをネットワーク上に分散して置くこともでき、ネットワークに出ずに直接アクセスできる場所に置くこともできます。
作業コピーのファイルが、マージ後に競合状態になったままになった場合、人間がエディター(または TortoiseMerge)で競合を整理しなければなりません。このプロセスは「競合の解決」と言われています。競合したファイルを解決済みにすると、コミットできるようになります。
作業コピーを最後に更新したとき、 Subversion はそれぞれのファイルの「当時の」 コピーをローカルに保持しています。変更を行った後で、その変更を取り消したい場合は、「変更の取り消し」 コマンドを使用して当時のコピーに戻せます。
変更セットをコミットするたびに、新しい「リビジョン」がリポジトリに作成されます。各リビジョンは、履歴の決まった時点のリポジトリツリーの状態を表します。過去にさかのぼる場合は、リビジョン N のような形でリポジトリを調べられます。
言い換えるとリビジョンは、リビジョンが作成された時に行われた変更を示しています。
ファイルがプロパティを持てるように、リポジトリの各リビジョンもプロパティを持つことができます。リビジョンが作成されるときに、 svn:date svn:author svn:log
といった特殊なリビジョンプロパティが自動的に作成され、それぞれコミット日時、コミットした人、ログメッセージを表しています。これらのプロパティは編集できますが、バージョン管理できません。そのため変更は永続的で元に戻せません。
Subversion のよく使われる省略表現。
「svnserve」リポジトリサーバーで使われる、 Subversion カスタムプロトコルの名前。
ちょうど「特定リビジョンへ更新」が履歴上の別の位置へ、作業コピーの時間ウィンドウを変更するように、「切り替え」はリポジトリの別の位置へ、作業コピーの場所ウィンドウを変更します。トランクとブランチの違いが少ない時、それぞれの作業する際に役に立ちます。その2つの間で作業コピーを切り替えると、差異のあるファイルのみが転送されます。
リポジトリから作業コピーへ最新の変更点を取得するコマンド。作業コピーの変更点に、他の人が行った変更をマージします。
ローカルの「サンドボックス」で、バージョン管理ファイルに対して作業を行う場所です。また通常ローカルのハードディスクに記録されています。リポジトリからの「チェックアウト」で作業コピーを作成し、「コミット」で変更点をリポジトリに反映します。