2012-03-17 15 views
0
私はMercurialのを使用してい

をチェックして、私は、このコマンドの差分感謝を持っている:hg diffMercurialの - 正気パッチ

はここに私の差分(例)です:

diff -r 17899716342e config.js 
--- a/config.js Sat Mar 17 14:01:53 2012 +0100 
+++ b/config.js Sat Mar 17 18:15:16 2012 +0100 
@@ -8,6 +8,6 @@ 
]; 

config.hostname = 'localhost'; 
-config.port = '3000'; 
+config.port = '8080'; 

-module.exports = canfig; 
+module.exports = config; 

別のリポジトリには、私がしたいですテストはこのdiffを適用できます。私はhg importが私の現在のリポジトリに差分をインポートすることができることを知っています。

男性から

-f --force     skip check for outstanding uncommitted changes 
    --no-commit    don't commit, just update the working directory 
    --bypass     apply patch without touching the working 
          directory 

をしかし、パッチは、私のリポジトリ(と私の作業ツリー)を変更せずにを適用できるかどうかだけをチェックする引数はありません。

どうすればいいですか?

答えて

2

私は地元のスローアウェイクローンを作り、あなたの現在の作業ディレクトリまたはリポジトリを変更したくない場合は、それにパッチを適用することをお勧めします。私はそれ以外の方法ではないと思います。あなたは、現在の変更を棚上げパッチを適用し、元の親、unshelve変化にクリーンな更新ができ拡張子を持つ

。クローニングはもっと簡単です。

+0

を元に戻しますShareExtension)を使用して、ローカルクローンを作成するコストをさらに削減します。 –

+0

私はあなたが「分け前」の(ごくわずかな)利点を誤解していると思います。あなたのシステムにハードリンクがあれば、スペースや時間をローカルクローンで節約することはできません。 https://gist.github.com/2089965あなたの答えのため –

0

私が最も@マークTolonenの答えが好き - Mercurialの中に新しいローカルのクローンは、ほぼ瞬間的であるとによるハードリンクの使用にほとんどスペースを取りません。あなただけそう我慢できない場合

しかし、その後、--no-コミットオプションを使用して、元に戻します。

  1. hg import --no-commit the.diff#チェックそれは
  2. hg revert --all#を成功したか失敗した場合にも、[共有](http://mercurial.selenic.com/wiki/の使用を検討することができ未遂輸入
+0

感謝。問題は、自分の作業ツリーの中に私のパッチとは独立していくつかの変更があった場合、私はそれを緩めるでしょう:-( –

+0

うん、それで私はとにかくやりたいことですクローンを作るべきです。あなたのプロジェクトがコミットする必要があるすべてのコンパイルが必要な場合、後でそれらを崩壊させるのは簡単です。 –

関連する問題