2

diff を使用してこれを行うさまざまな方法を見てきました。私が試した最初のオプションは次のとおりです。

p4 diff -sa

デポのリビジョンとは異なる、または欠落している開いているファイル。

最初は、これはデポに存在しない書き込み許可ビットが設定されたファイルであると考えました。ただし、最初に考えたように、p4 はモード ビットを使用して開いている/開いていない状態を追跡しないことを知りました。

次に、このオプションが機能すると考えました。

p4 diff -sl

開かれていないすべてのファイルと、デポ内のリビジョンと比較した「same」、「diff」、または「missin」のステータス。

「未開封」に「追跡されていない」ファイルが含まれないことを除いて、これは問題ありません。ただし、これを実行すると、ドキュメントと矛盾するまったく異なるものが生成されました。追跡されたほとんどすべてを出力しますが、追跡されなかったすべてのものも出力しますが、「同じ」とフラグを立てました。多分これは追加されておらず、デポに存在しないことを意味するので、クライアントはデポと同じです...? 私のSVNの偏った意見では、かなり無意味なオプションです。

次に、「opened」オプションがあります。しかし、これはまさにそれを行います。クライアントで開かれたデポ内のすべてのファイルを一覧表示します。そのため、クライアントで変更されたファイルがまだ追加されていません。

SVNとCVSが1つの簡単なコマンドで実行できるように、私がどこかに欠けているオプションはありますか?

$ svn status
A added
M modified
R deleted
? untracked
L locked
C conflict

または:

$ cvs -q up -Pd
4

2 に答える 2

3

よし、'add' コマンドを試してみると、ファイルが現在制御されていない場合、読み取り専用の追加は成功したというメッセージを出力するようです:

$ p4 add -n -f somefile
//source/somefile#1 - opened for add

これを次のコマンドに適用すると、必要なものがほとんど得られます。

$ find . -type f | while read f ; do p4 add -f -n "$f" | grep -e '- opened for add' >/dev/null && echo "A $f"; done
A ./somefile

または、ローカル パスについて気にしない場合は、次のようにします。

$ find . -type f | xargs -l1 p4 add -f -n | grep -e '- opened for add'
//source/somefile#1 - opened for add
于 2013-08-28T16:12:35.747 に答える