問題タブ [transplant]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mercurial - 1 つの変更セットへの移植
いくつかの変更セットから他のブランチの 1 つの変更セットに変更を移動しようとしています。その間にスキップしたい他の変更があるため、単純にすべてをマージしたくありません。
hg transplant
変更を正しく移動しますが、今は単一のコミットにフラット化したいと思います。どうやってやるの?
version-control - hg では、別のレポからリベースおよび/または移植するときにブランチ名を削除するにはどうすればよいですか?
基本的に、私が試したいのは、実験リポジトリのブランチからメインラインのクローンに hg リビジョンをプルすることです。しかし、サーバー側のメインライン リポジトリに直接プッシュできるように、ブランチ名を破棄したいと考えています。簡単な例を挙げるのがおそらく最善です:
ご覧のとおり、メインラインには「branch: bar_branch」を含むリビジョンが含まれています。このリビジョンにブランチを持たせたくありません (つまり、デフォルトにする必要があります)。
これがrebase、移植、または別のツールで履歴を書き換える必要がある場合は問題ありません。私はこれらの両方を試しましたが、うまくいきませんでした。最新のリビジョン ハッシュは、2 つのリポジトリ間で異なる場合があります。
したがって、hg_mainline の最上位リビジョンを次のようにしたいと考えています。
名前付きブランチなし。
繰り返しますが、ハッシュが hg_experimental から保存されていなくても問題ありません。
現在、Ubuntu PPA から hg 1.6.2+55-18e1e7520b67 を使用しています。
編集:
1.3.1も使用しました。両方で以下をテストしましたが、ここでの結果は同じです。
grep -v
移植で動作しましたが、クラッジでのみ動作しました。
と:
hg export は、適切な grep の有無にかかわらず機能しませんでした。
変更セットのパッチは次のようになります。
私は実験からエクスポートしました:
そして、メインラインにインポートしようとしました:
次のエラーで失敗します。
編集2:
前述のように、エクスポート メソッドは、ファイルが空だったという理由だけで失敗しました。--git
空でないファイルでも正しく動作します。
mercurial - コミットせずにワークスペースに移植
コミットせずに単一の変更セットを移植する方法はありますか? コミットする前に変更を確認できるようにしたいと思います。
svn - svnにパッチを移植する方法
rebase
以前は、異なるブランチ間で機能を移植するために git を使用してrebase --onto
いcherry-pick
ました。しかし今、私はsvnで作業する必要があります。私は svn の組み込みコマンドを使いたくありませんmerge
。これは、すべてのコミットを 1 つの "マージ コミット" に結合するためです。に r100 から r110 までの範囲のコミットがあるとします。今度はbranchA
、この機能を に移植し、branchB
これらbranchC
のコミットを同じコミット コメントで 1 つずつ再生します (その間の競合を解決します)。これを行うことができる自動ツールはありますか?
mercurial - Mercurialでは、移植中にマージする方法はありますか?
移植が行うことは、チェンジセットからパッチを作成し、それをターゲットの上に適用することであるように思われqimport -r
ますqpush
。
したがって、一部のハンクが適用に失敗すると、ファイルが拒否され、手動で「マージを修正」する必要があります。
のようなビジュアルマージを実行する方法はありrebase
ますか?
言うまでもなく、私はすべての子孫のチェンジセットを含めたくないので、リベースの代わりに移植を使用する必要があります。つまり、私はチェリーピッキングです。
私が考えている自己回答を投稿しますが、簡単でより良い方法があるのではないかと思います。
mercurial - Mercurial - 新しいコード ヒントの上に古いコードのブランチをリベースし、古いコードとのブランチのマージを無視する
Adiumの ソース コードをいじっていたところ、adium-1.4
XMPP を使用して Facebook チャットの統合を修正するfacebook-xmpp
. すべてがうまくいき、それを遵守し、機能します。
問題は、最新の Adium 1.5 で同じ機能を持ちたい場合、そのコードは約 2 年前に古いバージョンから分割された (古いバージョンからのいくつかの変更セットが時々移植されている) ことです。ブランチを構成する変更セットの範囲全体をどうにかしてリベースし、それを新しいブランチfacebook-xmpp
の先端に適用する必要があります。adium-1.5
ほとんどが新しいコードを追加しているように見えるので、これはうまくいくかもしれないと思ったfacebook-xmpp
ので、最新の開発コードと簡単に統合できるはずです。
ただし、facebook-xmpp
ブランチがadium-1.4
何度かマージされたため、リベースすると、マージされた変更がadium-1.4
上からも取り込まadium-1.5
れ、多くのマージ競合が発生することがわかりました。
adium-1.5
質問は、ブランチに追加されたチェンジセットのみに移植しfacebook-xmpp
、マージされたチェンジセットを除外する方法はありadium-1.4
ますか?
git - アップストリームとマージするときに「浮かぶ」gitでプライベートブランチを実現するにはどうすればよいですか?
私は別の組織のリポジトリのフォークを持っています。私はレポの最新のタグにいますが、これはヘッドではありません。そのタグから、上流にプッシュされることのないブランチを作成しました。そのため、私はブランチを非公開と考えています。
私は自分のプライベート ブランチにコミットし、そのコードを本番環境で使用しています。アップストリーム リポジトリに新しいタグが作成されたときに、その変更をプルできるようにしたいと考えています。
ただし、コミットを常に最後のタグの上にきちんとスタックしておきたいと思います。私のコミットは履歴のはるか昔にさかのぼってしまい、リポジトリで特定のツールを使用するときに簡単に作業できるように、それらを一番上に表示したいので、マージしたくありません。
つまり、アップストリームの変更をリポジトリに持ち込んだときに任意のポイントに移植できる「フローティング」ブランチが必要です。
[編集] ただし、履歴を書き換える操作であるため、リベースを使用できるとは思いません。ご覧のとおり、私は開発用と本番用の 2 つのマシンでリポジトリを使用しています。開発マシンでコミットを行い、github にプッシュしてから、本番環境にプルします。これらはすべて、私が最初にフォークしたアップストリーム リポジトリの変更とは何の関係もありません。
移植、チェリーピッキング、またはその他のツールが適しているかどうかは完全にはわかりません。ただし、どのツールであっても、歴史を書き換えるべきではないと私は考えています。私の読書から、プッシュ時にレポ履歴を書き換えることはできないことがわかります。したがって、履歴を書き換えずにブランチを移植するコマンドを使用する必要があるかどうかはわかりません。
Mercurial を使用していた場合、バージョン管理された mq のようなものを検討するかもしれません。git の類似のソリューションがあるかどうか、または git により適した別のツールがあるかどうかはわかりません。
[編集]
ここで得た回答を評価した後、最終的にチェリー ピッキングが正しい答えであると判断しました。すべての場合において、リベースは履歴を削除します。これは共有リポジトリであるため、少なくとも私が読んだすべてのソースによると、履歴の削除は受け入れられません。
ただし、チェリーピッキングは、コミットを元の場所から削除せずに作業ツリーにコピーします。そのため、最新のタグの上に変更のコピーを植えて、きれいな山にまとめることができます。
記録のために、hg を使用して git リポジトリのクローンを作成できる hg-git 拡張機能を使用して、Mercurial でもこれを実行しようとしました。これにはプラスとマイナスがありました。一番のマイナスは、使い終わったら押せなくなったことです。hg-git はその時点まで問題なく動作し、その後、hg 1.9 ではプッシュしないことが通知されます。控えめに言っても、偽物です。もう 1 つの欠点は、大量の変更セットの複製とプルが非常に遅いことです。ただし、mq と TortoiseHg のマージ競合解決ツールは、git cherry-pick と Smartgit のマージ競合解決よりも大幅に改善されています。hg-git が機能していればよかったのに。
最終的に、「フローティング」という表現は、変更ブランチを移動するのではなく、コピーすることになるため、私の変更ブランチの適切な説明ではなかったと思います。おそらく説明が不十分で申し訳ありませんが、オプションが何であるかを正確に把握していました。助けてくれてありがとう。
module - prestashop1.4移植ホーム注目のモジュールを新しいフックに
私は次のように「newdiv」の列divの外に家の注目の製品を移動しようとしています:
これを行うには、FrontController.phpを編集して、フッターを表示するためのフックを追加しました('HOOK_FEATURED_HOME' => Module :: hookExec('homeFeatured')):
ファイルfooter.tplにフックを追加しました:
DBに追加しました
module / homefeatured / homefeatured.phpに追加しました:
そしてクラスの終わりに
divnewdivには何も表示されませんでした。
モジュールをバックオフィスの新しいフックに移植しようとすると、次のようになります。
c# - C#のHexBinaryAdapter?
Javaで書かれたエンコーディング関数をC#で実装したいのですが、見たことのないコードがあります。
C# に同様の API またはメソッドはありますか、それとも実装する必要がありますか?