svn status — 作業コピーにあるファイルやディレクトリの状態を表示します。
作業コピーにあるファイルやディレクトリの状態を表示します。引数がない場合、ローカルで修正されたアイテムだけが表示されます (リポジトリに対するアクセスは発生しません)。--show-updates
を使うと、作業リビジョンと、 サーバの最新ではない情報も追加します。--verbose
を使うと、すべての項目に対する完全なリビジョン情報を表示します。
出力の最初の 6 桁は、それぞれ一文字幅で、各列に作業コピーの項目ごとに、様々な情報を表示します。
1 列目は、項目が追加、削除、変更の、どの状態かをを示します。
変更はありません。
項目は追加準備されています。
項目は削除準備されています。
項目は修正されました。
項目は作業コピー内で置き換えられました。これは、そのファイルが削除準備され、その場所に同名の新しいファイルが、追加準備されたことを表しています。
項目の内容 (属性ではなく) は、リポジトリから受け取った更新によって競合状態にあります。
項目は外部定義で与えられています
項目は無視されています (例: svn:ignore
属性付き)
項目はバージョン管理下にありません。
アイテムは失われました (例: svn を使わずに削除・移動した場合)。また、これはディレクトリが不完全である (チェックアウトや更新が中断された) ことを示しています。
項目はある種類のオブジェクト (ファイル、ディレクトリ、リンク) としてバージョン管理下にありますが、別の種類のオブジェクトで置き換えられてしまいました。
2 列目は、ファイルやディレクトリの属性の状態を示します。
変更はありません。
この項目の属性は修正されました。
この項目の属性は、リポジトリから受け取った属性更新によって競合状態にあります。
3 列目は作業コピーディレクトリがロックされている場合にだけ使われます。(Sometimes You Just Need to Clean Up項 をご覧ください)
項目はロックされていません。
項目はロックされています。
4 列目は、項目が履歴付き追加準備されている場合にのみ使われます。
コミット準備されている履歴はありません。
コミット準備されている履歴があります。
5 列目は、項目が親に対して相対的に切り替えられたときにだけ使われます (ブランチの横断項 をご覧ください)。
項目は、その親ディレクトリ以下にあります。
項目は切り替えられています。
6 列目には、ロック情報を表示します。
--show-updates
を指定した場合、ファイルはロックされていません。--show-updates
が指定 しない 場合、単にこの作業コピー内でファイルがロックされていないことを示すだけです。
ファイルはこの作業コピー内でロックされています。
ファイルは、他のユーザあるいは他の作業コピーによって、ロックされています。 これは --show-updates
を指定した場合のみ表示します。
ファイルはこの作業コピー内でロックされていましたが、「横取りされ」 無効となりました。このファイルは現在リポジトリ内でロックされています。これは --show-updates
を指定した時だけ表示します。
ファイルはこの作業コピー内でロックされていましたが、「破壊され」 無効となりました。このファイルはもうロック状態ではありません。これは --show-updates
を指定した時だけ表示します。
最新状態に関係した情報が、7 列目に表示されます (--show-updates
オプションを渡した場合のみ)。
作業コピーの項目は最新です。
サーバには、項目のもっと新しいリビジョンが存在します。
残りのフィールドは空白で区切られた可変長です。--show-updates
オプションか --verbose
オプションを渡した場合、作業リビジョンが次のフィールドになります。
--verbose
オプションを渡すと、最終コミットリビジョン と最終コミットの作者を続けて表示します。
作業コピーのパスは常に最後のフィールドになるので、空白を含むことができます。
--show-updates (-u) --verbose (-v) --non-recursive (-N) --quiet (-q) --no-ignore --username USER --password PASS --no-auth-cache --non-interactive --config-dir DIR --ignore-externals
作業コピーにした変更点を調べる、一番簡単な方法は以下の通りです。
$ svn status wc M wc/bar.c A + wc/qax.c
作業コピー内で、どのファイルが最新でないかを知りたい場合、--show-updates
スイッチを指定してください(これは 作業コピーの内容を決して変更しません)。 最後に自分の作業コピーを更新してからリポジトリのwc/foo.c
に変更があったときには 次のようになります:
$ svn status --show-updates wc M 965 wc/bar.c * 965 wc/foo.c A + 965 wc/qax.c 状態の背景となるリビジョン: 981
--show-updates
は、最新ではない項目 (つまり、svn update 実行時にリポジトリの情報で更新される項目) の隣にアスタリスクを置くだけ です。--show-updates
は、項目のリポジトリにあるバージョンを反映させて状態一覧を表示するわけではありません (しかし --verbose
オプションを渡すと、リポジトリにあるリビジョン番号を参照できます)。
最後に、status サブコマンドで一番たくさんの情報を得るには、以下のようにしてください。
$ svn status --show-updates --verbose wc M 965 938 sally wc/bar.c * 965 922 harry wc/foo.c A + 965 687 harry wc/qax.c 965 687 harry wc/zig.c Head リビジョン: 981
svn status のもっとたくさんの例は、自分がした変更の概要確認項 にあります。