SVN の結果コードは何を意味しますか? クイックリファレンスが必要です。
9 に答える
詳細については、SVNBook: "Status of working copy files and directory" を参照してください。
一般的なステータス:
U : 作業ファイルが更新されました
G : リポジトリの変更は作業コピーに自動的にマージされました
M : 作業コピーが変更されました
C : このファイルはリポジトリのバージョンと競合しています
? : このファイルはバージョン管理されていません
! : このファイルはバージョン管理されていますが、見つからないか不完全です
A : このファイルはバージョン管理に追加されます (コミット後)。
A+ : このファイルは移動されます (コミット後)
D : このファイルは削除されます (コミット後)
S : これは、ファイルまたはディレクトリが (svn スイッチを使用して) 作業コピーの残りのパスからブランチに切り替えられたことを示します
I : 無視
X : 外部定義
~ : タイプが変更されました
R : アイテムは作業コピーで置き換えられました。これは、ファイルが削除されるようにスケジュールされ、その後、同じ名前の新しいファイルがその場所に追加されるようにスケジュールされたことを意味します。
L : アイテムはロックされています
E : svn update によって作成されたはずの項目が存在しました。
また、2 列目の結果コードがファイルのプロパティを参照していることにも注意してください。例えば:
U filename.1
U filename.2
UU filename.3
filename.1: ファイルが更新されました
filename.2: ファイルのプロパティ (svn:keywords など) が更新されました
filename.3: ファイルとそのプロパティの両方が更新されました
次のコマンドを実行すると、いつでもリストを取得できます。
svn status --help
「G」ステータスについて一言言いたいのですが、
G: リポジトリの変更は自動的に作業コピーにマージされました
上記の定義は明確ではないと思います。すべてのファイルが自動的に作業コピーにマージされるため、少し混乱する可能性があります。正しいファイルは次のようになります。
U = リポジトリ バージョンに更新されたアイテム (U)
G = リポジトリと mer(G)ed されたアイテムのローカル変更
C = アイテムのローカル変更 (C) リポジトリと衝突
D = アイテム (D) が作業コピーから削除されました
A = 項目 (A) 作業コピーに追加
「E」ステータスもあります
E = 更新前に存在していたファイル
これは、更新を実行して作成されたはずのフォルダーを手動で作成した場合に発生する可能性があります。
SVN ステータス列
$ svn status
L index.html
コマンドの出力は 6 つの列に分割されますが、列が空の場合があるため、明確ではありません。おそらく、空の列をダッシュで示す方がより理にかなっているでしょうls -l
。次に、たとえば のL index.html
ようになります--L--- index.html
。これにより、3 番目の列にあるロックに関する情報のみが明らかになります。とにかく、それがより理にかなっていることを知ったら。
SVN ステータスの最初の列: A、D、M、R、C、X、I、?、!、~
最初の列は、アイテムが追加、削除、または変更されたことを示します。
変更なし。
A
アイテム追加予定です。
D
アイテムは削除予定です。
M
アイテムが変更されました。
R
アイテムは作業コピーで置き換えられました。これは、ファイルが削除されるようにスケジュールされ、その後、同じ名前の新しいファイルがその場所に追加されるようにスケジュールされたことを意味します。
C
アイテムのコンテンツ (プロパティではなく) が、リポジトリから受信した更新と競合しています。
X
アイテムは外部定義に関連しています。
I
アイテムが無視されています (例: svn:ignore プロパティを使用)。
?
アイテムはバージョン管理されていません。
!
アイテムがありません (svn を使用せずにアイテムを移動または削除したなど)。これは、ディレクトリが不完全であることも示します (チェックアウトまたは更新が中断されました)。
~
アイテムは 1 種類のオブジェクト (ファイル、ディレクトリ、リンク) としてバージョン管理されていますが、別の種類のオブジェクトに置き換えられています。
SVN ステータス 2 列目: M、C
2 番目の列は、ファイルまたはディレクトリのプロパティのステータスを示します。
変更なし。
M
このアイテムのプロパティが変更されました。
C
このアイテムのプロパティは、リポジトリから受信したプロパティの更新と競合しています。
SVN ステータス 3 列目: L
3 番目の列は、作業コピー ディレクトリがロックされている場合にのみ入力されます (通常、svn のクリーンアップでクリアできます)。
アイテムはロックされていません。
L
アイテムはロックされています。
SVN ステータス 4 列目: +
4 番目の列は、項目が履歴付きの追加にスケジュールされている場合にのみ入力されます。
commit でスケジュールされた履歴はありません。
+
commit でスケジュールされた履歴。
SVN ステータス 5 列目: S
5 番目の列は、項目の作業コピーがその親に対して切り替えられた場合にのみ入力されます
アイテムはその親ディレクトリの子です。
S
項目が切り替わります。
SVN ステータス 6 列目: K、O、T、B
6 番目の列には、ロック情報が入力されます。
–show-updates を使用すると、ファイルはロックされません。–show-updates が使用されていない場合、これは単にファイルがこの作業コピーでロックされていないことを意味します。
K
ファイルはこの作業コピーでロックされています。
O
ファイルは別のユーザーによってロックされているか、別の作業コピーでロックされています。これは、–show-updates が使用されている場合にのみ表示されます。
T
ファイルはこの作業コピーでロックされていましたが、ロックが盗まれて無効になっています。ファイルは現在、リポジトリでロックされています。これは、–show-updates が使用されている場合にのみ表示されます。
B
ファイルはこの作業コピーでロックされていましたが、ロックが壊れていて無効です。ファイルはロックされていません これは、–show-updates が使用された場合にのみ表示されます。
SVN ステータス 7 列目: *
古い情報が 7 列目に表示されます (–show-updates スイッチを指定した場合のみ)。これは、SVN を初めて使用する人が、ファイルの現在の状態と最後の更新時にサーバーから取得した情報を比較するだけであることを理解していないため、コマンドが実行することを期待していることです。
作業コピーのアイテムは最新です。
*
アイテムの新しいリビジョンがサーバーに存在します。
私は通常、IDE またはクライアントのいずれかで、GUI を介して svn を使用します。そのため、コマンド ラインに頼らなければならないときにコードを思い出すことができません。
このチート シートが非常に役立つと思います: Subversion チート シート
Subversion Bookのリファレンスをご覧ください:「作業中のコピーファイルとディレクトリのステータス」
SVNでほとんど何でもする人に強くお勧めします。
ドキュメント ( SVNBook ) にアクセスできないときはいつでも、次のように入力します (Linux):
svn help status | grep \'\?\'
svn help status | grep \'\!\'
svn help status | grep \'\YOUR_SYMBOL_HERE\'
または、次のように ~/.bashrc ファイルに次の関数を挿入します。
svncode() {
symbol=$1
[ $symbol ] && svn help status | grep \'$(echo $symbol)\' || \
echo "usage: svncode <symbol>"
}