何のための最も簡単な方法はコミットを押し、一つのファイルにちながら、その他の変更のお米"ひとめぼれ"や小

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

質問

私は比較的新しいMercurial、自分のチームがいただけると思い現在の置換え用としてSubversion.

したいのでコミットを押し単一のファイルを他のリポジトリをその他の変更に私の作業ディレクトリ未確定の(または少なくともなに押されるその他のリポジトリ)?

このうちデータベースの移動.いコミットへの移行に伴うソース制御でDBA閲覧および編集することができな取り組んでおりますが、コードの変更によってそのデータベースに移動できません。の変化がなだめていただくことにならないようにしたい。を押します。

にsubversion、今までのように:

svn add my_migration.sql  
# commit only the migration, but not the other files I'm working on
svn commit -m "migration notes" my_mygration.sql

として働き続けます。

ことになりませんmercurialとして感が押しかけるときのその他のリポジトリの変更がある場合をいい、取り壊したい私にして引っ張り、合併し、コミットを融合した、リポジトリを犯した後、合併なきを省略するファイルでの力でコミット全て現地リポジトリ

最も簡単なものが今お付き合いをしているギャラリは、コミットのファイルを自分のリポジトリ、クローンマ地方のリポジトリを取得す新しい変化から、実際にリポジトリ統合し、コミットが合併していただけ押し私が変化する。

hg add my_migration.sql 
hg commit -m "migration notes" my_migration.sql 
cd ..
hg clone project project-clone
cd project-clone
hg fetch http://hg/project
hg push  http://hg/project

この作品をいう感じだい何かが足りないくつかmercurialを無視するファイルが既に私の作業ディレクトリだけを統合送信ファイルです。思mercurialキューできないこともしっかり身につけるた全grok mqます。

役に立ちましたか?

解決

あMercurial機能を実装した陳列棚、unshelveコマンドは、という話に指定の変更を保存してまで、以降時間: 陳列棚.

そのまま hg shelvehg unshelve 一時的に店舗の変更ます。できる"パッチhunk"レベルを選びの陳列棚の距離です。なかなか見陳列棚のファイルが上場のための追加-ファイルのみでのレポ-レートとなります。

ではMercurialとしての"拡張"するだけでおすことができるようにするおhg configファイルです。


注本当に古いバージョンのヘッドを次のように表前の陳列棚に含めていたこ必要はありません):

こちらでお分かりになった三置の指示一部のgooglingので、こちらではのものかを取得するために使用されるので働きたい

取得す:

hg clone http://freehg.org/u/tksoh/hgshelve/ hgshelve

のファイル(現在)のプロジェクトのhgshelve.py ファイルです。

変更~/.hgrcの追加、陳列棚延長を指すクローニングのレポ-レート:

[extensions] 
hgshelve=/Users/ted/Documents/workspace/hgshelve/hgshelve.py

他のヒント

してほぼ2年が経ったたこの質問です。いいえ今申し上げたように、コメント上記の問題。何を思っているのではなくコミット自動ファイルを自分のレポ-レートを使用することができ、hg記録への拡張のみをコミットのファイル):

hg commit -m "commit message" filename

それだけ押します。

hg push

があれば、紛争がその他の変更については、レポ-レートを必要とすることの融合は、更新、修正が"hg親r."わからない場合はどで、私のその他の変更があった2。そこに戻りのシングルファイルのコミットを引き/mergeに変化することです。その後押しの変化

hg push --rev .

押し出しみのひとつのファイルとの合併による改訂される。そのときに頭になった。

このようにくのmqものの可能性を否hunks保全に追跡によるソース。また"hgストリップ"の改定がoffの場合、とされています。

tl;dr:私の説明が複雑そうに見えしていますが、なんとかそれは本当にその利用方法について説明し、パッチキューに挿入しますこの短いバージョン:

$ hg qnew -m "migration notes" -f migration my_migration.sql
$ hg qnew -f working-code
# make some changes to your code
$ hg qrefresh # update the patch with the changes you just made
$ hg qfinish -a # turn all the applied patches into normal hg commits

Mercurialキューでこのようなものは簡単でより複雑な操作のチェンジセットが可能です。できます。

この状況で初めましょう保存したいから現在のディレクトリの前に押しに変更:

# create a patch called migration containing your migration
$ hg qnew -m "migration notes" -f migration.patch my_migration.sql
$ hg qseries -v # the current state of the patch queue, A means applied
0 A migration.patch
$ hg qnew -f working-code.patch # put the rest of the code in a patch
$ hg qseries -v
0 A migration.patch
1 A working-code.patch

今ましょういくつかの追加作業の労働コードです。"笑う門には福来て qseries であることの明示的にはまさしくその通りなのだが、構築、メンタルモデルのパッチをお探しなければいけませんただの一覧です。

$ hg qtop # show the patch we're currently editing
working-code.patch
$ ...hack, hack, hack...
$ hg diff # show the changes that have not been incorporated into the patch
blah, blah
$ hg qrefresh # update the patch with the changes you just made
$ hg qdiff # show the top patch's diff

ですべての作品を保存し、パッチキューでunapply変化と回復しんだ後は、引のリモート変化します。通常はunapplyすべてのパッチだけでな hg qpop -a.だけの効果のパッチキューょっとポップなしをしています。

$ hg qpop # unapply the top patch, U means unapplied
$ hg qseries -v
0 A migration.patch
1 U working-code.patch
$ hg qtop
migration.patch
$ hg qpop
$ hg qseries -v
0 U migration.patch
1 U working-code.patch

この点で変化がなければ、おンをクリックします。いの hg fetch.今まで押しパッチキューの変更、および合併している場合がある。これは概念的に同gitのrebase.

$ hg qpush # put the first patch back on
$ hg qseries -v
0 A migration.patch
1 U working-code.patch
$ hg qfinish -a # turn all the applied patches into normal hg commits
$ hg qseries -v
0 U working-code.patch
$ hg out
migration.patch commit info... blah, blah
$ hg push # push out your changes

ここで、これまで押し、移動をし、その他の地域変化します。他の変更にパッチをキューに挿入します私も私の個人的開発用パッチキューを構成で変わります。したい場合にパッチキューへ戻り、通常のスタイルできない輸出のご変更やら逆輸入している"通常の"mercurial.

$ hg qpush
$ hg qseries -v
0 A working-code.patch
$ hg export qtip > temp.diff
$ rm -r .hg/patches # get rid of mq from the repository entirely
$ hg import --no-commit temp.diff # apply the changes to the working directory
$ rm temp.diff

私は大麻パッチキューの開発 mq でも実装できます。-する機能をクラフト数の変化を同時に本当にそうな改善が実際にどういったものか清潔なお犯ます。には時間がかかることがあり慣れるのに、そこにもなければいけないところDVCSワークフロー.

別のオプションをしたいという場合などに依存拡張子はクローンの上流のリポジトリの現地でのみ利用のためにこのような統合事ができます。

おとえば、単にプル/mergeご変更の統合/upstreamリポジトリを押しでの直接のリモートサーバーです。

何を使う一般的には使用にコミットを単一のファイル:

 hg commit -m "commit message" filename

場合以降、統合の紛争というものがありましたなコミットの準備の私の変更は、以下の手順を実行します。

1)をパッチファイルです。

hg diff > changes.patch

2)に戻すべての優れた未確定の変更のみが確認できた後パッチファイルです。

hg revert --all

3)引き出し、更新及び合併による最新の改定

hg pull -u
hg merge
hg commit -m "local merge"

4)そのインポートパッチの後お変わります。

hg import --no-commit changes.patch

忘れずに利用なコミットフラグから自動車を殺変わります。

できれば、私はしばしば使用 hg commit -i (--対話の場合においても、犯全体のファイルです。と --interactive できるだけで、このファイルを選択し、(s)のいくタイピング全体のパス(s)にョンをインストールして下さい。として追加ボーナスもできるので選択するようになりますので除外すチャンク内のファイルです。

しか hg push を押すと新規作成されたコミットする

いのしおりを利用 hg commit --interactive この答え: https://stackoverflow.com/a/47931672/255961

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