マニュアル

リポジトリへの変更のコミット

作業コピーで行った変更を送信することは、変更をコミットすると呼ばれます。しかし、コミットする前に、作業コピーが最新であることを確認する必要があります。 TortoiseSVN更新を直接使用するか、TortoiseSVN変更の確認を最初に使用して、ローカルまたはサーバー上でどのファイルが変更されたかを確認できます。

コミットダイアログ

作業コピーが最新であり、競合がない場合、変更をコミットする準備ができています。コミットしたいファイルやフォルダを選択し、TortoiseSVNコミット...を選択します。

図4.8 コミットダイアログ

The Commit dialog


コミットダイアログには、追加、削除、バージョン管理されていないファイルを含む、すべての変更されたファイルが表示されます。変更されたファイルをコミットしたくない場合は、そのファイルのチェックを外してください。バージョン管理されていないファイルを含めたい場合は、そのファイルをチェックしてコミットに追加してください。

すべてのバージョン管理されたファイルや、すべての変更されたファイルなど、ファイルの種類をすばやくチェックまたはチェック解除するには、表示されている項目リストのすぐ上にあるリンク項目をクリックします。

ステータスに応じた項目の色分けとオーバーレイの詳細については、「ローカルとリモートのステータス」のセクションを参照してください。

別のリポジトリパスに切り替えられた項目も、(s)マーカーを使用して示されます。ブランチで作業中に何かを切り替えて、トランクに戻すのを忘れた可能性があります。これは警告サインです!

ファイルまたはフォルダをコミットしますか?

ファイルをコミットすると、コミットダイアログには選択したファイルのみが表示されます。フォルダをコミットすると、コミットダイアログは変更されたファイルを自動的に選択します。作成した新しいファイルを忘れても、フォルダをコミットするととにかく見つかります。フォルダをコミットすることは、すべてのファイルが変更済みとしてマークされることを意味するものではありません。それは単に、より多くの作業を代わりに行うことで、あなたの生活を楽にするだけです。

コミットダイアログにバージョン管理されていないファイルが多すぎる場合

コミットダイアログにバージョン管理されていないファイル(例:コンパイラによって生成されたファイルまたはエディタのバックアップファイル)が多すぎると感じる場合は、いくつかの対処方法があります。

  • 設定ページの除外するファイルリストにファイル(またはワイルドカード拡張子)を追加できます。これは、すべての作業コピーに影響します。

  • TortoiseSVN無視リストに追加を使用して、svn:ignoreリストにファイルを追加します。これは、svn:ignoreプロパティを設定したディレクトリにのみ影響します。 SVNプロパティダイアログを使用して、ディレクトリのsvn:ignoreプロパティを変更できます。

  • TortoiseSVN無視リストに追加(再帰的)を使用して、svn:global-ignoresリストにファイルを追加します。これは、svn:global-ignoresプロパティを設定したディレクトリと、すべてのサブフォルダにも影響します。

詳細については、「ファイルとディレクトリの無視」のセクションを参照してください。

コミットダイアログで変更されたファイルをダブルクリックすると、外部差分ツールが起動し、変更が表示されます。スクリーンショットに示すように、コンテキストメニューにはさらに多くのオプションがあります。ここからテキストエディタやIDEなどの別のアプリケーションにファイルをドラッグすることもできます。

項目の左側にあるチェックボックスをクリックして、項目を選択または選択解除できます。ディレクトリの場合、Shift+選択を使用して、アクションを再帰的にすることができます。

下部ペインに表示される列はカスタマイズ可能です。任意の列ヘッダーを右クリックすると、表示する列を選択できるコンテキストメニューが表示されます。列の境界線にマウスを移動すると表示されるドラッグハンドルを使用して、列の幅を変更することもできます。これらのカスタマイズは保持されるため、次回も同じ見出しが表示されます。

デフォルトでは、変更をコミットすると、ファイルで保持しているロックは、コミットが成功した後に自動的に解放されます。これらのロックを保持したい場合は、ロックを保持チェックボックスがオンになっていることを確認してください。このチェックボックスのデフォルトの状態は、Subversion構成ファイルのno_unlockオプションから取得されます。 Subversion構成ファイルを編集する方法については、「一般設定」のセクションを参照してください。

タグへのコミット時の警告

通常、コミットはトランクまたはブランチに対して行われますが、タグに対しては行われません。結局のところ、タグは固定されていると考えられ、変更されるべきではありません。

タグURLへのコミットが試行された場合、TortoiseSVNは、これが本当に意図されたものかどうかを確認するための確認ダイアログを最初に表示します。なぜなら、ほとんどの場合、そのようなコミットは誤って行われるからです。

ただし、このチェックは、リポジトリレイアウトが推奨されるレイアウトの1つである場合にのみ機能します。つまり、trunkbranchestagsという名前を使用して、3つの主要な領域をマークしている場合です。セットアップが異なる場合、タグ/ブランチ/トランク(分類パターンとも呼ばれます)の検出は、設定ダイアログで構成できます:「リビジョングラフの設定」のセクション

ドラッグアンドドロップ

作業コピーが同じリポジトリからチェックアウトされている限り、コミットダイアログに他の場所からファイルをドラッグできます。たとえば、階層の遠いフォルダを見るために複数のエクスプローラウィンドウが開いている巨大な作業コピーがある場合があります。トップレベルフォルダからコミットするのを避けたい場合(変更を確認するための長いフォルダクロールが必要な場合)、1つのフォルダのコミットダイアログを開き、他のウィンドウから項目をドラッグして、同じアトミックコミットに含めることができます。

作業コピー内にあるバージョン管理されていないファイルをコミットダイアログにドラッグすると、それらは自動的にSVNに追加されます。

コミットダイアログの下部にあるリストからログメッセージ編集ボックスにファイルをドラッグすると、パスがプレーンテキストとしてその編集ボックスに挿入されます。これは、コミットによって影響を受けるパスをログメッセージに書き込みたい場合に役立ちます。

外部リネームの修復

ファイルがSubversionの外部でリネームされ、ファイルリストに欠落ファイルとバージョン管理されていないファイルとして表示されることがあります。履歴を失わないようにするには、Subversionに接続を通知する必要があります。古い名前(欠落)と新しい名前(バージョン管理されていない)の両方を選択し、コンテキストメニュー移動を修復を使用して、2つのファイルをリネームとしてペアリングします。

外部コピーの修復

ファイルのコピーを作成したが、Subversionコマンドを使用してコピーするのを忘れた場合、そのコピーを修復して、新しいファイルが履歴を失わないようにすることができます。古い名前(通常または変更済み)と新しい名前(バージョン管理されていない)の両方を選択し、コンテキストメニューコピーを修復を使用して、2つのファイルをコピーとしてペアリングします。

チェンジリスト

コミットダイアログは、関連するファイルをグループ化するのに役立つSubversionのチェンジリスト機能をサポートしています。この機能の詳細については、「チェンジリスト」のセクションを参照してください。

ファイルの一部のみをコミットする

ファイルに行った変更の一部のみをコミットしたい場合があります。そのような状況は通常、何か作業をしているときに緊急の修正をコミットする必要があり、その修正が作業中のファイルにある場合に発生します。

ファイルを右クリックし、コンテキストメニューコミット後に復元を使用します。これにより、ファイルが現状のコピーとして作成されます。次に、テキストエディタなどでファイルを編集し、コミットしたくない変更をすべて元に戻すことができます。これらの変更を保存した後、ファイルをコミットできます。

TortoiseMergeの使用

TortoiseMergeを使用してファイルを編集する場合は、通常どおり変更を編集するか、含めたい変更をすべてマークできます。変更されたブロックを右クリックし、コンテキストメニューこの変更をマークを使用して、その変更を含めます。最後に右クリックし、コンテキストメニューマークされた変更のみを残すを使用して、右側のビューを以前にマークした変更のみを含めるように変更し、マークしていない変更を元に戻します。

コミットが完了すると、ファイルのコピーが自動的に復元され、コミットされなかったすべての変更を含むファイルが戻ります。

コミットリストから項目を除外する

頻繁に変更されるが、実際にはコミットしたくないバージョン管理されたファイルがある場合があります。これは、ビルドプロセスに欠陥があることを示している場合があります。なぜこれらのファイルはバージョン管理されているのですか?テンプレートファイルを使用する必要がありますか?しかし、時折、それは避けられません。古典的な理由は、IDEがビルドするたびにプロジェクトファイルのタイムスタンプを変更することです。プロジェクトファイルにはすべてのビルド設定が含まれているため、バージョン管理する必要がありますが、タイムスタンプが変更されただけでコミットする必要はありません。

このような厄介なケースを支援するために、ignore-on-commitという名前のチェンジリストを予約しました。このチェンジリストに追加されたファイルは、コミットダイアログで自動的にチェックが外されます。変更をコミットすることはできますが、コミットダイアログで手動で選択する必要があります。

コミットログメッセージ

コミットする変更内容を説明するログメッセージを必ず入力してください。これにより、後日プロジェクトログメッセージを閲覧するときに、何がいつ発生したかを確認するのに役立ちます。メッセージは、好きなだけ長くても短くてもかまいません。多くのプロジェクトには、含めるべき内容、使用する言語、場合によっては厳密な形式に関するガイドラインがあります。

電子メールで使用されている規則と同様の規則を使用して、ログメッセージに簡単な書式設定を適用できます。textにスタイルを適用するには、太字には*text*、下線には_text_、斜体には^text^を使用します。

図4.9 コミットダイアログのスペルチェッカー

The Commit Dialog Spellchecker


TortoiseSVNには、ログメッセージを正しく入力するのに役立つスペルチェッカーが含まれています。これにより、スペルミスの単語が強調表示されます。コンテキストメニューを使用して、提案された修正にアクセスします。もちろん、あなたの知っているすべての技術用語を知っているわけではないため、正しくスペルされた単語がエラーとして表示されることがあります。しかし、心配しないでください。コンテキストメニューを使用して、それらを個人辞書に追加するだけです。

ログメッセージウィンドウには、ファイル名と関数の自動補完機能も含まれています。これは、正規表現を使用して、コミットしている(テキスト)ファイルからクラス名と関数名、およびファイル名自体を抽出します。入力している単語がリスト内のいずれかの単語と一致する場合(少なくとも3文字入力するか、Ctrl+Spaceを押した後)、ドロップダウンが表示され、フルネームを選択できます。 TortoiseSVNに付属の正規表現は、TortoiseSVNインストールbinフォルダに保持されています。独自の正規表現を定義して、%APPDATA%\TortoiseSVN\autolist.txtに保存することもできます。もちろん、TortoiseSVNのインストールを更新しても、プライベートautolistは上書きされません。正規表現に慣れていない場合は、 https://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE の紹介と、 https://regular-expressions.dokyumento.jp/ のオンラインドキュメントとチュートリアルをご覧ください。

正規表現を適切に調整するのは難しい場合があるため、適切な式を整理するのに役立つように、式を入力してからファイル名を入力してテストできるテストダイアログがあります。コマンドプロンプトからコマンドTortoiseProc.exe /command:autotexttestを使用して起動します。

ログメッセージウィンドウには、コミットメッセージスニペット機能も含まれています。これらのスニペットは、スニペットショートカットを入力するとオートコンプリートドロップダウンに表示され、オートコンプリートドロップダウンでスニペットを選択すると、スニペットの全文が挿入されます。 TortoiseSVNに付属のスニペットは、TortoiseSVNインストールbinフォルダに保持されています。独自のsnippetを定義して、%APPDATA%\TortoiseSVN\snippet.txtに保存することもできます。#はコメント文字です。改行は、\n\rのようにエスケープすることで挿入できます。バックスラッシュを挿入するには、\\のようにエスケープします。

以前に入力したログメッセージを再利用できます。最近のメッセージをクリックして、この作業コピーに入力した最後の数件のメッセージのリストを表示するだけです。保存されるメッセージの数は、TortoiseSVN設定ダイアログでカスタマイズできます。

TortoiseSVNの設定の保存されたデータページから、保存されているすべてのコミットメッセージをクリアするか、Deleteキーを使用して、最近のメッセージダイアログ内から個々のメッセージをクリアできます。

ログメッセージにチェックされたパスを含めたい場合は、編集コントロールでコンテキストメニューファイル名リストを貼り付けコマンドを使用できます。

ログメッセージにパスを挿入する別の方法は、ファイルリストから編集コントロールにファイルをドラッグするだけです。

特別なフォルダプロパティ

コミットログメッセージのフォーマットとスペルチェッカーモジュールで使用される言語をより詳細に制御するために使用できる、いくつかの特別なフォルダプロパティがあります。詳細については、「プロジェクト設定」のセクションを参照してください。

バグ追跡ツールとの統合

バグ追跡システムを有効にしている場合は、バグID / Issue-Nr:テキストボックスに1つ以上のIssueを設定できます。複数のIssueはコンマで区切る必要があります。または、正規表現ベースのバグ追跡サポートを使用している場合は、ログメッセージの一部としてIssue参照を追加するだけです。詳細については、「バグ追跡システム/ Issueトラッカーとの統合」のセクションを参照してください。

コミットの進行状況

OKを押すと、コミットの進行状況を表示するダイアログが表示されます。

図4.10 コミットの進行状況を示す進行状況ダイアログ

The Progress dialog showing a commit in progress


進行状況ダイアログは、コミットアクションを色分けして強調表示します

変更のコミット。

新しい追加のコミット。

濃い赤

削除または置換のコミット。

その他すべての項目。

これはデフォルトの配色ですが、設定ダイアログを使用してこれらの色をカスタマイズできます。詳細については、「TortoiseSVNの色設定」のセクションを参照してください。

TortoiseSVNホームページ