1

リモートからレポを複製しました。

私はソフトウェアを構築し、約 4 つのファイルを変更し、それらをローカルにコミットしました。そして、それらを表示できるパッチを作成したいと考えています。

私が実行すると:

hg diff -U8p abc efg pqr > patch_file

行った変更が表示されません。hg diff現在のファイルと最後にコミットされたファイルのみを比較しますか?

これを機能させるにはどうすればよいですか?

4

4 に答える 4

3
  1. diff特定のリビジョンに対する作業ディレクトリには、次REVを使用します

    hg diff -r REV 
    
  2. 2 つのリビジョンを相互に比較するには、次を使用します。

    hg diff -r REV1 -r REV2
    
  3. 比較するリビジョンを特定するには、 の出力を調べますhg log。これを頻繁に行う予定で、ベース リビジョンが修正されている場合は、次のように名前を付けます (例: whatipulled )。

    hg tag -r REV whatipulled
    

    whatipulledその後、数値のリビジョン ID (またはハッシュ) の代わりに、リビジョンとして指定できます。

  4. コミットコメントなどを含む、よりリッチな形式で差分をエクスポートするには、この目的のために設計された以下を使用することもできます。

    hg export -r REV
    
  5. hg bundle -r REV同様の情報を含むバイナリ ファイルを生成するもあります。

  6. ただし、変更を親リポジトリに送り返す場合、最善の方法は を使用することhg pushです。変更セットを親に直接伝えます。どの変更セットをプッシュする必要があるかを知る必要さえありません。もちろん、親リポジトリにプッシュする権利が必要です。

    hg push [ parent_repo_url ]
    

    (そこからプルした場合、mercurial は既にパスを認識しているはずなので、省略できます)。

  7. 親リポジトリが bitbucket にあり、pu がない場合は、bitbucket に独自のアカウントを設定し、ローカル リポジトリからそのアカウントにプル/プッシュしてから、プロジェクト リポジトリに「プル リクエスト」を発行して依頼することができます。あなたから引っ張る。

上記のすべてには、動作を制御するオプションがあります。

于 2013-02-27T16:49:17.713 に答える
2

からhg help diff

リビジョンが 1 つだけ指定されている場合、そのリビジョンは作業ディレクトリと比較されます

-r の diff では、古いヒント (最新の「あなたの」変更セットではない) を使用し、比較する前にヒント (最新の変更セット) に更新する必要があります。

変更セットで一部のバイナリ データが変更された場合は、忘れずに -g オプションを使用してください。

hg up & hg diff -r <CSET> -g > some.patch

アクティブな変更セットの差分を改善し、ベースの変更セットを検出するための手作業を必要としません (単一ブランチでの線形履歴 == の場合)

hg diff -r "parent(min(outgoing()))" -r tip

于 2013-02-24T14:16:31.567 に答える
1

デフォルトでhg diffは、現在チェックアウトされているファイルと最後のコミットを比較します。オプションを追加することでこれを変更できます。

  • -r REV現在チェックアウトされているファイルを特定のリビジョンと比較しますREV
  • -c REVリビジョンによる変更を表示しますREV

したがって、あなたの場合hg diff -c 123 ...、コミット123の差分が得られます。

于 2013-02-24T12:35:44.400 に答える
1

私の推測では、それhg outgoingはまさにあなたが望むものです.ローカルでコミットしたものとデフォルトのリモートサーバーにあるものを比較し、それらの変更セットまたは-pコミットのリストを表示します.

ただし、これは各変更セットを個別に表示します。すべての変更を組み合わせて表示したい場合は、 hg diff -r HERE -r THEREor-r HEREがデフォルトであるため、実行する必要があります。hg diff -r THERE

リモートが持っている最後の変更セットがどこにあるのか、「そこに何があるかを知るにはどうすればよいですか」というコメントであなたが尋ねたのを見て、あなたはその答えを得ることができますhg outgoing. hg outgoing変更セット 66、67、および 68 を送信することが示されている場合、hg diff -r 65既存のもの (65) とローカルのもの (68) を比較する必要があります。

于 2013-02-24T19:24:50.557 に答える