変更を確認する
このトピックでは、あなたのチームメイトがソースコードにもたらした変更を追跡する方法を説明します。
プロジェクト履歴を確認する
AppCode を使用すると、指定したフィルターに一致するプロジェクトソースに加えられたすべての変更を確認できます。
Git や Mercurial などの分散バージョン管理システムの場合、バージョン管理ツールウィンドウ Alt+9 のログタブでプロジェクト履歴を表示できます(Git リポジトリの変更を調査するを参照)。
Subversion、Perforce、ClearCase などの集中型バージョン管理システムの場合、プロジェクト履歴はバージョン管理ツールウィンドウ Alt+9 のリポジトリタブで利用できます。
エディターでファイルへの変更を追跡する
バージョン管理されているファイルを変更すると、すべての変更がエディターでハイライトされ、変更された行の横のガターに変更マーカーが表示され、リポジトリとの最後の同期以降に導入された変更のタイプが示されます。変更されたファイルをリポジトリにコミットすると、変更マーカーが消えます。
テキストに加えた変更は色分けされています。
行が追加されました。
行が変更されました。
行が削除されました。
専用のツールバーを使って変更を管理できます。呼び出すには、変更マーカーの上にマウスカーソルを置いてクリックします。ツールバーは、変更された行の以前の内容を示す枠と一緒に表示されます。

ツールバーのアクションを使用すると、次または前の変更への移動、変更のロールバック、現在のバージョンとリポジトリバージョンの違いの表示、変更した行の前のバージョンのクリップボードへのコピー、またはコードの違いのハイライトをオンにできます。
ハイライトの変更をオフにする場合は、IDE 設定 Ctrl+Alt+S のバージョン管理 | 確認ページで変更した行をガターでハイライトするオプションのチェックを外します。
ローカルの変更とリポジトリのバージョンを比較する
エディターでファイル内のローカルの変更を移動する以外に、ファイルのベースリビジョンと比較してこれらの変更を確認できます。
差分をプレビューするには、コミットツールウィンドウで変更されたファイルを選択し、ツールバーの をクリックします。
左側のペインには、ベースリビジョンの場合と同じように影響を受けるコードが表示され、右側のページには、ローカルで変更を加えた後の影響を受けるコードが表示されます。

ツールバーボタンとコントロールを使用して変更間を移動し、詳細を変更ペインまたは差分ビューアーの外観を構成します。
項目 | ツールチップとショートカット | 説明 |
---|---|---|
| 前の違い / 次の違い Shift+F7 F7 | 次または前の違いに移動します。 最後または最初の違いに達すると、AppCode は、矢印ボタンをクリックするか、F7/Shift+F7 をもう一度押して、ローカルで変更された他のファイルを比較することを提案します。この動作は、差分ビューアーの設定の最後の変更の後に次のファイルに移動するオプションによって異なります。 |
| ソースに移動 F4 | 選択したファイルをエディターで開きます。キャレットは差分ビューアーと同じ位置に配置されます。 |
| 前 / 次のファイルを比較する Alt+LeftAlt+Right | 前または次のファイルのローカルコピーをサーバーからの更新と比較します。 |
| 変更ファイルに移動 Ctrl+N | 現在の変更セット内のすべての変更されたファイルを表示し、それらに移動します。このアクションは、複数のファイルへの変更を確認する場合にのみ使用できます。 |
ビューアー | ビューアーモードを選択します: 横並びまたは統合。横並びモードには 2 つのパネルがあり、統合モードには 1 つのパネルがあります。 コードを編集して、両方のビューアーで受諾、追加、前回保存した状態に戻すアクションを実行できます。 テキストを変更できるのは、横並びビューアーの右側の部分か、統合ビューアーの下部の行のみです。 ファイルのローカルバージョンのみを編集できます。読み取り専用ステータスのファイルは編集できません。 | |
空白 | 差分ビューアーが空白を処理する方法を定義します。
| |
ハイライトモード | 差分の粒度がハイライトされる方法を選択します。 利用可能なオプションは以下のとおりです。
| |
| 変更されていないフラグメントを縮小 | 両方のファイルのすべての変更されていないフラグメントを折りたたみます。折りたたみできない変更されていない行の量は、差分 & マージ設定ページで構成できます。差分 & マージページを開くには、Ctrl+Alt+S を押して設定を開き、 に移動します。 |
| スクロールの同期 | このボタンをクリックして、両方の差分ペインを同時にスクロールします。このボタンを離すと、各ペインを個別にスクロールできます。 |
| 設定 | 利用可能な設定のリストを開きます。 これらのコマンドは、差分ビューアーガターのコンテキストメニューからも利用できます。 |
| 外部ツールで差分を表示 | 外部差分ツール設定ページで指定された外部差分ビューアーを呼び出します。 このボタンは、外部差分ツール設定ページで外部差分ツールを使用するオプションが有効になっている場合にのみツールバーで使用できます。 |
| ヘルプ F1 | ブラウザーを開き、対応するヘルプページを表示します。 |
GitBlame でアノテーションを付ける | このオプションはガターのコンテキストメニューからのみ利用可能です。 このオプションを使用して、誰がいつファイルのリポジトリバージョンに変更を加えたかを調べます。アノテーションビューでは、コードの各行の詳細情報(この行の元のバージョン、この行をコミットしたユーザーの ID、コミット日など)を確認できます。 アノテーションの詳細については、VCS アノテーションを参照してください。 |
最も便利なショートカットは次のとおりです。
ショートカット | 説明 |
---|---|
Ctrl+Shift+D | このキーボードショートカットを使用して、最も一般的に使用される diff コマンドのポップアップメニューを表示します。 |
Ctrl+Shift+Tab | このキーボードショートカットを使用して、左右のペインを切り替えます。 |
Ctrl+Z / Ctrl+Shift+Z | このキーボードショートカットを使用して、マージ操作を元に戻す / やり直すことができます。衝突はテキストと同期され続けます。 |
ファイルまたは選択の変更履歴を表示する
AppCode を使用すると、ファイルまたはソースコードの断片に加えられた変更を確認することができます。履歴の表示と選択範囲の履歴を表示コマンドは、メインの VCS メニューとファイルのコンテキストメニューから利用できます。
ファイルの変更履歴は、バージョン管理ツールウィンドウ Alt+9 の専用ヒストリータブに表示されます。
ファイルの履歴を表示
エディターでファイルを開くか、プロジェクトツールウィンドウで選択してコンテキストメニューから <VCS> | 履歴の表示を選択します。
選択したファイルのヒストリータブがバージョン管理ツールウィンドウ Alt+9 に表示され、ファイルの名前がタブのタイトルバーに表示されます。
ツールバーボタンを使用して、選択したリビジョンをローカルバージョンと比較したり、選択したリビジョンのクラスを比較したり、VCS から選択したリビジョンをチェックアウトしたり、選択したリビジョンにアノテーションを付けたりすることができます。
項目 | ツールチップとショートカット | 説明 |
---|---|---|
| リフレッシュ | このボタンをクリックして現在の情報をリフレッシュします。 |
| 差分の表示 Ctrl+D | このボタンをクリックして、ファイルの選択されたリビジョンを差分ビューアーの前のリビジョンと比較します。 |
| 影響を受けたファイルをすべて表示 Alt+Shift+A | このボタンをクリックして改訂の影響を受けるパスダイアログを開き、選択したリビジョンで修正されたすべてのファイルを表示できます。 |
| すべてのブランチを表示 | このボタンをクリックすると、現在のブランチ以外のブランチの変更が表示されます。 |
| 表示設定 | ヒストリービューに表示する情報の量をクリックして選択します。AppCode に変更が作成された時刻の代わりにコミットタイムスタンプを表示する場合は、コミットのタイムスタンプを表示オプションを選択することもできます。 |
| レイアウトの構成 | 表示する情報の種類をクリックして選択します。
|
| GitHub で開く | このボタンをクリックして、GitHub(英語) で選択されたコミットに対応するページを開きます。 |
選択の履歴を表示
エディターで、ソースコードのフラグメントを選択するか、履歴を追跡する行にキャレットを配置します。
メイン <VCS> | 選択範囲の履歴を表示を選択します。
メニューまたは選択のコンテキストメニューから
選択したフラグメントの履歴が別ウィンドウで開きます。何も選択されていない場合は、現在の行の履歴が表示されます。
ファイルの状態を確認する
AppCode を使用すると、リポジトリに対するプロジェクトファイルのステータスを確認できます。ファイルステータスには、前回リポジトリと同期してからファイルに対して実行された操作が表示されます。
ファイル名をハイライトするために使用される色によって、任意のインターフェース要素(たとえば、エディター、さまざまなツールウィンドウ)でファイルのステータスを確認できます。
色とフォント設定ページでファイルステータスのデフォルトカラーをカスタマイズできます。
VCS ファイルのステータスの色は、IDE 設定 Ctrl+Alt+S のバージョン管理 | ファイルステータスの色ページで構成できます。
以下の表は、いくつかのカラースキームにおけるデフォルトのファイルステータスの色とその意味を示しています。
色 | ファイルステータス | 説明 |
---|---|---|
| 追加済み | アクティブな変更リストのファイルは、リポジトリへの追加がスケジュールされています。 |
| 非アクティブ変更リスト内の追加対象 | 非アクティブ変更リスト内のファイルは、リポジトリへの追加が予定されています。このファイルステータスは、非アクティブな変更リストからファイルをハイライトするオプションが有効になっている場合に利用可能です。 で |
| 変更リストの競合 | 非アクティブな変更リストのファイルは、アクティブな変更リストで変更されています。この場合、新しいダイアログが開き、変更リストの競合を解決するように求められます。このファイルステータスは、 ですべてのオプションが有効になっている場合に使用できます。 |
| コピー | ファイルが別のファイルのコピーである場合、そのメタデータが追跡され、そのようなファイルはコピー済みとしてマークされます。 |
| 削除 | ファイルはリポジトリから削除される予定です。 |
| ファイルシステムから削除 | ファイルはローカルに削除されましたが、削除のスケジュールは設定されておらず、まだリポジトリに存在しています。 |
| 変更された子孫あり | ファイルが変更されると、IDE はそのファイルを含むすべてのディレクトリを再帰的にハイライトします。このステータスは、プロジェクトツリー内の変更ファイルを含むディレクトリをハイライトするオプションが有効になっている場合に利用可能です。 で |
| 即時変更された子あり | ファイルが変更されると、IDE はその親ディレクトリをハイライトします。このステータスは、プロジェクトツリー内の変更ファイルを含むディレクトリをハイライトするオプションが有効になっている場合に利用可能です。 で |
| ハイジャック | [Perforce, ClearCase, VSS] ファイルはチェックアウトせずに変更されています。 |
| 無視 | ファイルは VCS によって意図的に追跡されていません。 |
| マージ済み | ファイルはアップデートの結果として VCS によってマージされます。 |
| 競合のあるマージ | 最後の更新中に、ファイルは競合とマージされました。 |
| プロパティ競合のマージ | 前回の更新中に、IDE はローカルファイルのプロパティとそのサーバーバージョンの違いを検出しました。 |
| テキストおよびプロパティ競合のマージ | テキストとプロパティの競合は、2 人以上の開発者がファイルの同じ行と同じファイルプロパティを変更すると発生します。 |
| 変更 | 最後の同期以降にファイルが変更されました。 |
| 非アクティブな変更リストで変更 | 無効な変更リスト内のファイルが変更されます。このファイルステータスは、非アクティブな変更リストからファイルをハイライトするオプションが有効になっている場合に利用可能です。 で |
| 廃止 | このファイルはもうリポジトリの作業コピーに含まれていないはずです。 |
| 名前変更 | 最後の更新以降、ファイルの名前は変更されました。 |
| 切り替え | [SVN] ファイルは、プロジェクト全体とは異なるブランチから取得されます。 |
| (不明)バージョン管理外 | ファイルはローカルに存在しますが、リポジトリにはなく、追加もスケジュールされていません。 |
| 最新 | ファイルは変更されていません。 |
色 | ファイルステータス | 説明 |
---|---|---|
| 追加済み | アクティブな変更リストのファイルは、リポジトリへの追加がスケジュールされています。 |
| 非アクティブ変更リスト内の追加対象 | 非アクティブ変更リスト内のファイルは、リポジトリへの追加が予定されています。このファイルステータスは、非アクティブな変更リストからファイルをハイライトするオプションが有効になっている場合に利用可能です。 で |
| 変更リストの競合 | 非アクティブな変更リストのファイルは、アクティブな変更リストで変更されています。この場合、新しいダイアログが開き、変更リストの競合を解決するように求められます。このファイルステータスは、 ですべてのオプションが有効になっている場合に使用できます。 |
| コピー | ファイルが別のファイルのコピーである場合、そのメタデータが追跡され、そのようなファイルはコピー済みとしてマークされます。 |
| 削除 | ファイルはリポジトリから削除される予定です。 |
| ファイルシステムから削除 | ファイルはローカルに削除されましたが、削除のスケジュールは設定されておらず、まだリポジトリに存在しています。 |
| 変更された子孫あり | ファイルが変更されると、IDE はそのファイルを含むすべてのディレクトリを再帰的にハイライトします。このステータスは、プロジェクトツリー内の変更ファイルを含むディレクトリをハイライトするオプションが有効になっている場合に利用可能です。 で |
| 即時変更された子あり | ファイルが変更されると、IDE はその親ディレクトリをハイライトします。このステータスは、プロジェクトツリー内の変更ファイルを含むディレクトリをハイライトするオプションが有効になっている場合に利用可能です。 で |
| ハイジャック | [Perforce, ClearCase, VSS] ファイルはチェックアウトせずに変更されています。 |
| 無視 | ファイルは VCS によって意図的に追跡されていません。 |
| マージ済み | ファイルはアップデートの結果として VCS によってマージされます。 |
| 競合のあるマージ | 最後の更新中に、ファイルは競合とマージされました。 |
| プロパティ競合のマージ | 前回の更新中に、IDE はローカルファイルのプロパティとそのサーバーバージョンの違いを検出しました。 |
| テキストおよびプロパティ競合のマージ | テキストとプロパティの競合は、2 人以上の開発者がファイルの同じ行と同じファイルプロパティを変更すると発生します。 |
| 変更 | 最後の同期以降にファイルが変更されました。 |
| 非アクティブな変更リストで変更 | 無効な変更リスト内のファイルが変更されます。このファイルステータスは、非アクティブな変更リストからファイルをハイライトするオプションが有効になっている場合に利用可能です。 で |
| 廃止 | このファイルはもうリポジトリの作業コピーに含まれていないはずです。 |
| 名前変更 | 最後の更新以降、ファイルの名前は変更されました。 |
| 切り替え | [SVN] ファイルは、プロジェクト全体とは異なるブランチから取得されます。 |
| (不明)バージョン管理外 | ファイルはローカルに存在しますが、リポジトリにはなく、追加もスケジュールされていません。 |
| 最新 | ファイルは変更されていません。 |
色 | ファイルステータス | 説明 |
---|---|---|
| 追加済み | アクティブな変更リストのファイルは、リポジトリへの追加がスケジュールされています。 |
| 非アクティブ変更リスト内の追加対象 | 非アクティブ変更リスト内のファイルは、リポジトリへの追加が予定されています。このファイルステータスは、非アクティブな変更リストからファイルをハイライトするオプションが有効になっている場合に利用可能です。 で |
| 変更リストの競合 | 非アクティブな変更リストのファイルは、アクティブな変更リストで変更されています。この場合、新しいダイアログが開き、変更リストの競合を解決するように求められます。このファイルステータスは、 ですべてのオプションが有効になっている場合に使用できます。 |
| コピー | ファイルが別のファイルのコピーである場合、そのメタデータが追跡され、そのようなファイルはコピー済みとしてマークされます。 |
| 削除 | ファイルはリポジトリから削除される予定です。 |
| ファイルシステムから削除 | ファイルはローカルに削除されましたが、削除のスケジュールは設定されておらず、まだリポジトリに存在しています。 |
| 変更された子孫あり | ファイルが変更されると、IDE はそのファイルを含むすべてのディレクトリを再帰的にハイライトします。このステータスは、プロジェクトツリー内の変更ファイルを含むディレクトリをハイライトするオプションが有効になっている場合に利用可能です。 で |
| 即時変更された子あり | ファイルが変更されると、IDE はその親ディレクトリをハイライトします。このステータスは、プロジェクトツリー内の変更ファイルを含むディレクトリをハイライトするオプションが有効になっている場合に利用可能です。 で |
| ハイジャック | [Perforce, ClearCase, VSS] ファイルはチェックアウトせずに変更されています。 |
| 無視 | ファイルは VCS によって意図的に追跡されていません。 |
| マージ済み | ファイルはアップデートの結果として VCS によってマージされます。 |
| 競合のあるマージ | 最後の更新中に、ファイルは競合とマージされました。 |
| プロパティ競合のマージ | 前回の更新中に、IDE はローカルファイルのプロパティとそのサーバーバージョンの違いを検出しました。 |
| テキストおよびプロパティ競合のマージ | テキストとプロパティの競合は、2 人以上の開発者がファイルの同じ行と同じファイルプロパティを変更すると発生します。 |
| 変更 | 最後の同期以降にファイルが変更されました。 |
| 非アクティブな変更リストで変更 | 無効な変更リスト内のファイルが変更されます。このファイルステータスは、非アクティブな変更リストからファイルをハイライトするオプションが有効になっている場合に利用可能です。 で |
| 廃止 | このファイルはもうリポジトリの作業コピーに含まれていないはずです。 |
| 名前変更 | 最後の更新以降、ファイルの名前は変更されました。 |
| 切り替え | [SVN] ファイルは、プロジェクト全体とは異なるブランチから取得されます。 |
| (不明)バージョン管理外 | ファイルはローカルに存在しますが、リポジトリにはなく、追加もスケジュールされていません。 |
| 最新 | ファイルは変更されていません。 |
VCS アノテーション
VCS のアノテーションとは何ですか?
アノテーションは、コードの各行の詳細情報を表示するファイル表示の形式です。特に、各行について、この行の発信元のバージョン、この行をコミットした人のユーザー ID、コミット日を確認できます。アノテーション付きのビューは、誰がいつ何をしたかを調べ、変更をさかのぼるのに役立ちます。
ClearCase、Mercurial、Git、Perforce、Subversion では、コード行にアノテーションを付けることができます。
アノテーションコマンドは、バージョン管理メニューの VCS 固有のノード、エディターのガターのコンテキストメニュー、ファイルのコンテキストメニュー、ファイル履歴ビューから使用できます。
アノテーションが有効な場合、ガターは次の例のようになります。

現在のリビジョンで変更された行のアノテーションは、太字とアスタリスクでマークされています。
アノテーションを有効にする
エディターまたは差分ビューアーでガターを右クリックし、コンテキストメニューから Git Blame でアノテーションを付けるを選択します。
アノテーションコマンドにカスタムショートカットを割り当てることができます。IDE 設定 Ctrl+Alt+S のキーマップページに移動し、バージョン管理システム | Git | アノテーションを探します。
アノテーションに表示される情報量を設定する
アノテーションビューに表示する情報量を選択できます。
アノテーションガターを右クリックして表示を選択し、この変更の起点となった改訂、日付、さまざまな形式の作者の名前、コミット番号など、表示したい情報の種類を選択します。
色でハイライトを設定することもできます。
アノテーションオプションを設定する
アノテーションガターを右クリックして、コンテキストメニューからオプションを選択します。
空白を無視 : 空白文字は無視されます(git
blame -w
)。これは、アノテーションが以前の意味のあるコミットを指すことを意味します。ファイル内の移動を検出 : コミットが同じファイル内で行を移動またはコピーするとき、そのような変更は無視されます(git
blame -M
)。これは、アノテーションが以前の意味のあるコミットを指すことを意味します。ファイル間の移動を検出 : コミットが同じコミットで変更された他のファイルから行を移動またはコピーするとき、そのような変更は無視されます(git
blame -C
)。これは、アノテーションが以前の意味のあるコミットを指すことを意味します。コミットのタイムスタンプを表示 : 変更が作成された時刻ではなく、アノテーションビューで AppCode にコミットタイムスタンプを表示する場合は、このオプションを選択します。
日付形式をカスタマイズする
Ctrl+Alt+S を押して IDE 設定を開き、
を選択します。VCS アノテーションの横にある日時パターンフィールドをクリックし、VCS アノテーションに使用する日付形式を指定します。パターンリファレンスを参照してください(英語)。
以前のリビジョンにアノテーションを追加
AppCode では、現在のファイルリビジョンだけでなく、以前のリビジョンにアノテーションを付けることができます。アノテーションガターのコンテキストメニューから、次のオプションを選択できます。
リビジョンにアノテーションを追加 : このオプションは、特定の変更がコミットされた後にファイルがどのように見えるかを確認したい場合に役立ちます。これを行うには、この変更を右クリックして、コンテキストメニューからリビジョンにアノテーションを追加を選択します。
以前のリビジョンにアノテーションを追加 : このオプションは、特定の行の最後の変更が無意味な場合に自分自身が見つかった場合、たとえば変更されたものがすべてコードのフォーマットである場合などに便利です。この場合、ファイルの以前のリビジョンがどのように見えたかを確認できます。これを行うには、変更を右クリックしてコンテキストメニューから以前のリビジョンにアノテーションを追加を選択します。
ファイル履歴ビューから特定のファイルにアノテーションを付けることもできます。履歴タブで、確認するファイルバージョンを選択し、対応する行を右クリックして、コンテキストメニューから を選択します。
リビジョン間の違いを見る
ファイルのアノテーション付きバージョンと以前のバージョンの違いを確認するには、キャレットをアノテーションに配置し、右クリックして差分の表示を選択します。AppCode はファイルの差分ビューアーを開きます:

VCS Operations Popup Alt+` を呼び出して
を選択することもできます。ログに移動する
バージョン管理に Git を使用している場合、バージョン管理ツールウィンドウ Alt+9 のログタブで、アノテーションビューから対応するコミットに移動することもできます。
これを行うには、キャレットをアノテーションに配置し、右クリックして、コンテキストメニューから Git ログで選択を選択します。リビジョン番号のコピーコマンドを使用して、ログ内のリビジョンを見つけることもできます。
https://github.com/(英語) でホストされているプロジェクトの場合は、GitHub で開くコマンドを使用して対応するコミットに移動することもできます。
関連ページ:

Git リポジトリの変更を調査する
AppCode では、プロジェクト内のすべての変更を追跡できます。これにより、変更の作成者を特定し、ファイルバージョンまたはコミット間の違いを確認し、必要に応じて変更を安全にロールバックして元に戻すことができます。プロジェクト履歴を確認する:指定したフィルターに一致するプロジェクトソースに加えられたすべての変更を確認できます。プロジェクト履歴を表示するには、Git ツールウィンドウのログタブを開きます。すべてのブランチおよびリモートリポジトリにコミットされたすべての変更が表示されます。マルチリ...

リポジトリと受信タブ
リポジトリタブと受信タブは、非分散バージョン管理システム(つまり、Git と Mercurial を除く AppCode でサポートされているすべての VCS)でのみ使用できます。リポジトリタブには、現在のプロジェクト内の VCS ルートのリポジトリにコミットされた変更が表示されます。受信タブには、他のチームメンバーによってリポジトリにコミットされ、まだローカルにチェックアウトされていない変更が表示されます。どちらのタブにも、履歴キャッシュに保存されている情報が表示されます。表示される変更リスト...

色とフォント
開発者として、エディターのソースコード、検索結果、デバッガー情報、コンソールの入出力など、多くのテキストリソースを使用します。色とフォントスタイルは、このテキストのフォーマットに使用され、一目で理解しやすくなります。AppCode では、IDE テキストで使用される色とフォントを定義する構成可能な配色から選択できます。事前定義された配色を使用するか、あなたの好みに合わせてカスタマイズすることができます。スキームを共有することも可能です。配色を選択を押して IDE 設定を開き、を選択します。配色を...

競合の解決
バージョン管理システムによっては、状況によっては競合が発生することがあります。チームで作業をしているとき、誰かが現在取り組んでいるファイルへの変更をコミットするという状況に遭遇するかもしれません。これらの変更が重複しない場合(つまり、異なるコード行に変更が加えられた場合)、競合するファイルは自動的にマージされます。ただし、同じ行が影響を受けると、バージョン管理システムはランダムに片側を選択することができず、競合を解決するように求められます。ブランチをマージ、リベースまたはチェリーピックするときに...