どのように自動的に削除します。origファイルヘッドを次のように表作す

StackOverflow https://stackoverflow.com/questions/1067680

  •  21-08-2019
  •  | 
  •  

質問

中に合併しmercurialです。origファイルを載の未解決のファイルです。その後に手動での課題解決に向け、マーキングファイルを修正削除しません。origファイルです。で自動的に削除されるコマンド?

働いているMacで使用できるようなもの:

find . -iname '*.orig' -exec rm '{}' ';'

との別名でもないと思いものを使っておけば間違いないようにhgでの清掃...

更新:

以来、現在の パージの拡張 が同梱Mercurial、この問題を解決した。

役に立ちましたか?

解決

個人としての利用

$ rm **/*.orig

ま疲れを .orig ファイルです。この作品はZshにBash4走行す shopt -s globstar.

がご利用の場合は別のシェルやしたい内蔵の溶液に、これだけでも常温で長期保存ができるのも パージの拡張 (リンクを更新し2016-08-25).をまとめて見ることができるすべて削除しuntrackedファイル

$ hg purge

ですので削除できすべてのuntrackedれたファイル

$ hg purge --all

有利用 hg purge このままでも清掃活動のディレクトリが空を除去した後、ファイルです。の rm コマンドラインをお持ちいただくだけの空のディレクトリです。

他のヒント

ところで。 findユーティリティは、アクション-deleteを持っています これだけ入力することができます:

find <path-to-files> -name '*.orig' -delete

あなただけの.ORIGファイルを削除し、Windowsコンピュータ上であることが起こるしたい場合は、

は、次のようにうまく動作するようです。

D:\workspace>hg purge -I **/*.orig --all

このは.ORIGで終わるすべての人跡未踏のファイルを削除しますが、他の回答として、の他の人跡未踏のファイルをでしょう削除されません。

あなたは、同様に--printフラグを置くことによって、それを実行する前に、これをテストすることができます。

以下は、あなたの全体の作業コピーの階層に.ORIGファイルを削除しても、スペースを含むパスのために働くだろう。

find . -name *.orig | while read -d $'\n' file; do rm -v "$file"; done;

私は私の.bash_profileにエイリアスを使用します:

alias clearorig='echo "Removing .orig files..."; find . -name *.orig | \
while read -d $'\''\n'\'' file; do rm -v "$file"; done;'

は、 updateフックを使用する必要があります>

  

更新:これは、更新後に実行するか、 にマージされた作業ディレクトリのは、

を終了しました

掲載しているこの答え .ここでまさかの正しい場所にこの答えになります。

明けまして御目出とう御座いますバッチファイルです。

IF "%1%" == "d" (
    del /s *.orig
    del /s *.rej
 ) ELSE ( 
    del /s /p *.rej
    del /s /p *.orig
 )

ヘルプ保存このコンテンツとして orig.バット

  1. orig d 削除するすべての拒否及びナファイルを一度に確認せず
  2. orig 削除ファイルを確認[安全機構】

ことを期待します。

個人的には以下のルートからのレポ-レート:

hg purge -p -I **/*.orig | xargs rm -f

ちょっとりだけを使い、'hgパージ"または"hgパージ--"ができるので、フィルターの特定のファイルの種類に対すが含まれています。

たれぞれ説明:

  • の引数pの版画のリストのファイルのパージ
  • のん引数whitelistィルタのファイルが含ま
  • この結果、リストがパxargs実行をrm-fコマンド

私はPowerShellで働いているし、ここに答えが表示されませんでした。

# NOTE: be in the root of your repository
# fetch all .orig files recursively
$orig = (dir *.orig -recurse) ;

# remove each .orig file
foreach ($item in $orig) { del $($item.FullName) ; }

# afterwards I make sure to remove the references to the .orig files in the repo
# then commit & push
hg addremove ; 
hg commit -m "remove .orig" ;
hg push ;

これは自動的な方法で除いて追加ファイルで簡単なのです。

hg st不明 または な追跡 ファイルです。利用することができ出力引数としてのシステム rm コマンドです。こちらは実際の例だけを行った。

$ # SHOW ONLY THE CRUFT
$ hg status --unknown
? config/settings.rb.orig
? lib/helpers.rb.orig
? routes/main.rb.orig

$ # THE CRUFT WITHOUT THE "?" PREFIX
$ hg status --unknown --no-status
config/settings.rb.orig
lib/helpers.rb.orig
routes/main.rb.orig

$ # SAFELY REMOVE ALL CRUFT
$ rm -- `hg st -un`

場合は空のディレクトリに残し、 -r-drm れます。

として ボーナス, hg status --ignored するのに使用でき掃除をすべて無視されtempファイルなどのスワップからファイルをエディタ(例えば、Vim).

私は掃除のためにLinux上で使用するコマンドは、検索で新鮮な検索を実行する必要性を保存します。

Mercurialのプロジェクト

のルートディレクトリから実行される

これらの必要性

hg status | grep ".orig" | cut -d ' ' -f 2- | xargs rm -f

それとも、すべての未知のファイルをクリアしたい場合。

hg status | cut -d ' ' -f 2- | xargs rm -f

私が選択した答えは好きではありません。これは、プロジェクトのすべてのレベル内のすべてのものを削除しません。私はこれを使用します:

for f in `find . | grep .orig$`; do rm "$f"; done

両方のMacと* nixの上で動作します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top