私は (ややぎこちなく) TFS を使用して OS X 上の iOS プロジェクトのソース管理を行っていますが、チェックインする前に新しいファイル (新しいグラフィック アセットなど) をワークスペースに追加するのを常に忘れていることに気付きました。一般的ですが、まだソース管理に追加されていないファイルの UI はありません (私が見つけたものです)。
フォルダー階層を手動で検索せずに、新しいファイルを見つけて追加するにはどうすればよいですか?
私は (ややぎこちなく) TFS を使用して OS X 上の iOS プロジェクトのソース管理を行っていますが、チェックインする前に新しいファイル (新しいグラフィック アセットなど) をワークスペースに追加するのを常に忘れていることに気付きました。一般的ですが、まだソース管理に追加されていないファイルの UI はありません (私が見つけたものです)。
フォルダー階層を手動で検索せずに、新しいファイルを見つけて追加するにはどうすればよいですか?
tf
ユーティリティ (TEE の CLI 部分)を使用して、このワンライナーを考え出しました。
find . -perm +0222 -and -type f -and -not -iname .DS_Store -print0 | xargs -0t -L 1 tf add
既に追加およびチェックアウトされている (またはロック解除されている) ファイルは、無害な例外をスローしますが、新しいファイルは関連するワークスペースに追加されます。ディスク上のローカル ワークスペースのルートで実行します。
(注:書かれているように、これにはクレデンシャルをキャッシュする必要があります。自分で追加するか、次を追加してキャッシュします:
export TF_AUTO_SAVE_CREDENTIALS=yes
... *sh~/.profile
ファイルに。次に、いくつかのミューテーション操作 [チェックアウトなど] を実行し、信用情報を提供します。TFS はそれらをローカルにキャッシュします。)
エクストラ:
特にiOSプロジェクトのユーザーデータを無視したい場合(xcuserdata
ファイル内のすべて。ロックを解除して常にチェックアウトするのは非常に面倒です)、次を使用できます。
find . -name xcuserdata -prune -o -perm +0222 -and -type f -and -not -iname .DS_Store -print0 | xargs -0t -L 1 tf add
-prune
アクションは、名前がxcuserdata
.
また、 TFS で正しくチェックアウトされなかったロック解除されたファイルに対して、これと同じスキャンを実行するようにadd
置き換えることもできます。checkout
同じ取引: 追加されたファイルと既にチェックアウトされたファイルは重要でない例外をスローしますが、こっそりロック解除されたファイルはチェックアウトされます。
2012 より前のバージョンの TFS では、online
コマンドを TEE コマンド ライン クライアントに使用するだけで、ローカル ファイルシステムの変更をスキャンして保留します。例えば:
tf online -adds
ローカル ファイル システムに追加されたが、TFS への追加として保留されていないファイルを検出します。