追跡されていないすべてのファイルを作業ディレクトリから削除することはできますか?一連のファイルを作業ディレクトリに追加し、「hg add」を介してそれらを追加せず、これらの新しいファイルを完全に削除したいとしますか?
私はWindowsを使用していますが、PowerShellを使用しているため、ここで組み合わせたソリューションも可能です。
追跡されていないすべてのファイルを作業ディレクトリから削除することはできますか?一連のファイルを作業ディレクトリに追加し、「hg add」を介してそれらを追加せず、これらの新しいファイルを完全に削除したいとしますか?
私はWindowsを使用していますが、PowerShellを使用しているため、ここで組み合わせたソリューションも可能です。
回答:
purgeというMercurial拡張機能を追加します。Mercurialから配布されています。
この拡張機能は、「purge」コマンドを「hg」に追加して、Mercurialが認識していないファイルを削除します。つまり、追跡されていないファイル。だからあなたのコマンドは、
hg purge
追加するのを忘れたファイルを誤って削除するのを防ぐために、デフォルトでは有効になっていません。
この拡張機能をインストールするには、これをMercurial設定ファイル(UNIXでは.hgrc、WindowsではMercurial.ini)に追加します。
[extensions]
purge =
この拡張機能を一時的に有効にするには、次を使用できます
hg purge --config extensions.purge=
hg purge --config extensions.purge=
パージなしの適切な方法は次のとおりです。
hg st -un0 | xargs -0 rm
rm -rf *
を含むドットファイルとドットディレクトリをスキップするため、機能します.hg/
。同様に、他のdotfile(たとえば.evil-settings)も存続し、パージの方が優れています。
ありがとう!これはPowershellでも私にとってうまくいきました:
hg st -un | rm
以下を試してください:
hg st -un | xargs rm
* nixシステムを使用しているとすると、次のように実行できます。
rm `hg st | awk '/\?/ {print $2}'`
Mercurialリポジトリのルートから。
私は同じことを達成するための標準的な水銀コマンドを知りませんが、これを行うためのコマンドラインオプションは他にもたくさんあると思います。「より良い」解決策があると私は確信しており、他の提案を聞きたいと思います。
このコマンドは十分にテストされていなかったため、注意して使用してください。
hg purge --all
追跡されず無視されたファイルをすべて削除します。これは、ソース内ビルドのクリーンアップに役立ちます