したがって、バージョン管理システムhgに記載されている不足しているファイルを定期的に削除します。私が気づいたのは、私のスクリプトが文字列を適切にエスケープしていないことです。
hg status | grep ! | colrm 1 2 | sed 's/ /\\ /g' | xargs hg remove
多くの場合、うまくいきますが、いくつかの奇妙な文字列が動作を停止するrecognition-systems2013/20110531-information-fusion.key/\!\(\*-4.pdf
可能性があります。ところで、hgはこの文字列が「Windowsの安全性」ではないと言います。
誰でも「!」とリストされているファイルを削除するより良い方法を見つけることができますか?それとも行方不明ですか?
ベストアンサー1
私は使用する:
hg addremove
そのためお支払いディレクトリから残っているアイテムをすべて削除した後(またはファイルにパターンを追加した後.hgignore
)。
hg addremove -h
あなたに言う:
Add all new files and remove all missing files from the repository.
Mercurialは*
ファイル名について文句を言います。これは予約されている文字なので、Windowsではファイル名には使用できません。ただし、メッセージ自体はstderr
パイプラインの機能には影響しません。
もう一つの方法は、次を使用することです。
hg remove --after
削除されたファイルを表示しますが、すべてのファイル(まだ存在するファイルと削除されたファイル)に対してコメントを付け、--quiet
オプションに反応しないようです。