名前

svn status — 作業コピーにあるファイルやディレクトリの状態を表示します。

書式

svn status [PATH...]

説明

作業コピーにあるファイルやディレクトリの状態を表示します。引数がない場合、ローカルで修正されたアイテムだけが表示されます (リポジトリに対するアクセスは発生しません)。--show-updates を使うと、作業リビジョンと、 サーバの最新ではない情報も追加します。--verbose を使うと、すべての項目に対する完全なリビジョン情報を表示します。

出力の最初の 6 桁は、それぞれ一文字幅で、各列に作業コピーの項目ごとに、様々な情報を表示します。

1 列目は、項目が追加、削除、変更の、どの状態かをを示します。

' '

変更はありません。

'A'

項目は追加準備されています。

'D'

項目は削除準備されています。

'M'

項目は修正されました。

'R'

項目は作業コピー内で置き換えられました。これは、そのファイルが削除準備され、その場所に同名の新しいファイルが、追加準備されたことを表しています。

'C'

項目の内容 (属性ではなく) は、リポジトリから受け取った更新によって競合状態にあります。

'X'

項目は外部定義で与えられています

'I'

項目は無視されています (例: svn:ignore 属性付き)

'?'

項目はバージョン管理下にありません。

'!'

アイテムは失われました (例: svn を使わずに削除・移動した場合)。また、これはディレクトリが不完全である (チェックアウトや更新が中断された) ことを示しています。

'~'

項目はある種類のオブジェクト (ファイル、ディレクトリ、リンク) としてバージョン管理下にありますが、別の種類のオブジェクトで置き換えられてしまいました。

2 列目は、ファイルやディレクトリの属性の状態を示します。

' '

変更はありません。

'M'

この項目の属性は修正されました。

'C'

この項目の属性は、リポジトリから受け取った属性更新によって競合状態にあります。

3 列目は作業コピーディレクトリがロックされている場合にだけ使われます。(Sometimes You Just Need to Clean Up項 をご覧ください)

' '

項目はロックされていません。

'L'

項目はロックされています。

4 列目は、項目が履歴付き追加準備されている場合にのみ使われます。

' '

コミット準備されている履歴はありません。

'+'

コミット準備されている履歴があります。

5 列目は、項目が親に対して相対的に切り替えられたときにだけ使われます (ブランチの横断項 をご覧ください)。

' '

項目は、その親ディレクトリ以下にあります。

'S'

項目は切り替えられています。

6 列目には、ロック情報を表示します。

' '

--show-updates を指定した場合、ファイルはロックされていません。--show-updates が指定 しない 場合、単にこの作業コピー内でファイルがロックされていないことを示すだけです。

K

ファイルはこの作業コピー内でロックされています。

O

ファイルは、他のユーザあるいは他の作業コピーによって、ロックされています。 これは --show-updates を指定した場合のみ表示します。

T

ファイルはこの作業コピー内でロックされていましたが、「横取りされ」 無効となりました。このファイルは現在リポジトリ内でロックされています。これは --show-updates を指定した時だけ表示します。

B

ファイルはこの作業コピー内でロックされていましたが、「破壊され」 無効となりました。このファイルはもうロック状態ではありません。これは --show-updates を指定した時だけ表示します。

最新状態に関係した情報が、7 列目に表示されます (--show-updates オプションを渡した場合のみ)。

' '

作業コピーの項目は最新です。

'*'

サーバには、項目のもっと新しいリビジョンが存在します。

残りのフィールドは空白で区切られた可変長です。--show-updates オプションか --verbose オプションを渡した場合、作業リビジョンが次のフィールドになります。

--verbose オプションを渡すと、最終コミットリビジョン と最終コミットの作者を続けて表示します。

作業コピーのパスは常に最後のフィールドになるので、空白を含むことができます。

別名

stat, st

変更対象

なし

リポジトリアクセス

--show-updates が指定された場合にのみ

オプション

--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 のもっとたくさんの例は、自分がした変更の概要確認項 にあります。