問題タブ [mergeinfo]
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.
git - svn.pushmergeinfo を使用した Git-SVN: 自己参照の mergeinfo 行を回避する方法
git の最近のバージョンでは、構成svn.pushmergeinfo
が導入されました。
設定キー: svn.pushmergeinfo
このオプションにより、可能であれば git-svn が SVN リポジトリの svn:mergeinfo プロパティを自動的に入力しようとします。現在、これは、最初の親を除くすべての親が既に SVN にプッシュされている非早送りマージをコミットしない場合にのみ実行できます。
これを使用して、一部の開発者が SVN を使用し、一部の開発者が Git-SVN を使用する混合環境を実現しています。これは、Git で SVN ブランチを分岐およびマージしgit svn dcommit
てから SVN に戻す場合にうまく機能し、実際にはほとんどすべての場合に mergeinfo プロパティを正しく入力します。ただし、特定の状況では、これが正しく行われません。
これは主に、トランクをそのブランチにマージした後に、ブランチをマスター (トランク) にマージするときに発生します (事実上、SVN の再統合に相当します)。
トランクからブランチへのマージは、(必要に応じて) そのブランチのトランクの mergeinfo 行を追加しますが、ブランチからトランクへの reintegrate-merge は、その行をトランクの mergeinfo にコピーし、トランクの mergeinfo プロパティに自己参照行を効果的に作成します。それは自分自身を指しています。私の知る限り、この自己参照は決して起こらないはずであり、SVN を単独で使用している場合には起こりません。したがって、これは git-svn のバグだと考えています (ここで報告しました)。これにより、他の SVN ユーザーに影響を及ぼし、将来のコミットで mergeinfo が破損するという問題が発生します。
私が探しているのは回避策です:マージされるブランチのmergeinfo行をコピーしないようにgitに簡単に指示するにはどうすればよいですか、またはコミット時にこれらの自己参照を削除するようにSVNに指示するにはどうすればよいですか?自己参照の mergeinfo 行にはなりませんが、git からの自動 svn:mergeinfo 作成の他の品質は維持されます)。
(明確にするために、gitマニュアルを引用したり、「Git-SVNとのマージは危険でサポートされていません」と言ったりする人を探しているわけではありません。問題を解決できるか、別のワークフローを提案できる場合にのみ回答してください。これを解決するためのパッチを作成できるようになる可能性があるため、関連する git コードへのポインターも役立ちます。ありがとう!)
git - svn.pushmergeinfoを使用してマージするためのgit-svnワークフロー
git-svnを使用してsvn追跡ブランチをマージするための正しいワークフローは何ですか。git-svn svn.pushmergeinfo構成キーについて少し読みましたが、注意点は次のとおりです。
http://www.kernel.org/pub/software/scm/git/docs/git-svn.htmlから:
設定キー:svn.pushmergeinfo
このオプションにより、git-svnは、可能な場合、SVNリポジトリのsvn:mergeinfoプロパティに自動的にデータを入力しようとします。現在、これは、最初の親を除くすべての親がすでにSVNにプッシュされている非早送りマージをコミットする場合にのみ実行できます。
したがって、私の通常のワークフローは次のとおりです。
私がSVNブランチを持っていると仮定します^/branchs / feature_branch
次に、^ / trunkをlocal_feature_branchにマージするために、次のようなことをすると思いますか?
svn - SVN はファイルの svn:mergeinfo プロパティを変更せずに変更します
私はsvnに「問題」があります.2つのブランチをマージすると、テキストに変更がないファイルのmergeinfoプロパティで変更が報告されることがある理由を理解できません。
それは正常な動作ですか?
そうでない場合、何が問題になる可能性がありますか?
svn - SVN : リビジョンに関する情報を取得する方法
「svn mergeinfo」コマンドを使用して、ブランチからトランクにマージする必要がある変更に関する情報を取得します。このコマンドは、リビジョンのリストのみを返します。例: r18427 r18428 r18429 ...
これらの変更を svn にコミットする際に追加されたコメントも取得して、そのような出力を準備したいと思います。例: r18427 - 「コードがフォーマットされました」 r18428 - 「プロシージャを ... に追加しました」 r18429 - 「1 つ削除しました」冗長変数」...リビジョンに関する詳細情報を取得する方法を知っていますか?これを実行できるコマンドは何ですか?
助けと提案をありがとう、rafi
svn - 手動でmergeinfoを編集する方法は安全ですか?
私はサブディレクトリのマージがなぜ悪いのかについていくつかの調査を行い、最近、mergeinfoを含むリポジトリ内のサブディレクトリを発見しました。
このマージ情報を手動で削除しようとしていますが、mergeinfoを正しく理解し、正しく実行しているかどうかを確認したいと思います。
ROOTDIR mergeinfo
/ branchs / Iteration53:18065-18126
/ branchs / Iteration54:18150-18204,18210-18231
/ branchs / Iteration55:18341,18348,18353-18355,18357,18364-18365<=====この行は異なります
/ branchs / gdsRework:17329-17457
/ trunk:17869,18085
SUBDIR mergeinfo
/ branchs / Iteration53 / kiwi-web:18065-18126
/ branchs / Iteration54 / kiwi-web:18150-18204,18210-18231
/ branchs / Iteration55 / kiwi-web:18336-18428<=====この行は異なります
/ branchs / gdsRework / kiwi-web:17329-17457
/ trunk / kiwi-web:17869,18085
2つの間で異なる行は1つだけです。また、SUBDIR mergeinfoの範囲18336-18428には、ROOTDIRmergeinfoの同じ行のすべてのリビジョンが含まれていることに気付きました。
したがって、私の計画は、ROOTDIRのその行をSUBDIRの行に置き換え、SUBDIRmergeinfoをすべて一緒に削除することです。
新しいROOTDIRmerginfo
/ branchs / Iteration53:18065-18126
/ branchs / Iteration54:18150-18204,18210-18231
/ branchs / Iteration55:18336-18428 <=====SUBDIRmergeinfoと同じになりました
/ branchs / gdsRework:17329-17457
/ trunk:17869,18085
SUBDIRmergeinfoが削除されます。
これは安全ですか?落とし穴はどこにありますか?前もって感謝します。
svn - svn マージ情報のみをコミットする
トランクからブランチへの変更をマージしています。これを行っている間、マージ情報が記録されます。
ブランチに他の変更がある可能性があるため、マージによって影響を受けるファイルのみをコミットする安全な方法はありますか (他に変更がないことを前提としています)、マージのプロパティ/情報はありますか?
" リビジョン 'r1' をトランクからブランチにマージするとします。'r1' のトランクからブランチにマージします。'r1' の場合、ブランチ フォルダにマージ情報が記録されます。ブランチの svn diff では、「.」が表示されます。が変更され、'r1' がマージ プロパティの一部であることを示しています。'r1' というマージ プロパティとともに、'r1' のみがマージされたために変更されたファイルをコミットするにはどうすればよいですか?」
svn - コミットされていないマージの SVN ログの詳細
最近、ブランチをトランクの最新リビジョンとマージしました。ただし、その時点ではコミットしておらず、どのトランク バージョンとマージしたか覚えていません。現在、マージ中にトランクのリビジョン情報が必要です。svn マージ時にトランクのリビジョン番号にアクセスすることはできますか?
svn - サブツリーのsvnマージ、次に完全なツリー
私の会社では、SVN を使用してトランクのサブツリーをブランチにマージし、その逆も行っています。
たとえば、/Trunk/folderA/ --> /Branch/folderA/ をマージしますが、必ずしも /Trunk/ --> /Branch/ からルート マージを実行するとは限りません。
各フォルダーの mergeinfo がフォルダーの古いマージを追跡していることに気付きました。また、サブツリーの過去のマージで既に適用された変更を svn が「削除」することを期待しています。この機能は、SVN ブックの「サブツリー マージとサブツリー マージ情報」という章で具体的に説明されてい ます。 basicmerging.stayinsync.subtree
問題: ルート マージを実行すると、svn はサブツリーの mergeinfo を無視し、古い変更をサブツリーにマージしようとします。言い換えれば、本で説明されているように、以前のマージを「省略」しません。
なぜそれが起こるのか知っている人はいますか?解決策はありますか?
ありがとう
svn - SVN: 更新されたサーバーでブランチと再統合が機能しない
最近バージョン 1.7 にアップグレードされた Subversion サーバーを使用しています。コマンドライン Linux クライアント 1.7.10 を使用しています。
次のようなブランチを作成しました。
%: svn copy svn+ssh://acme.com/a/b/c/trunk svn+ssh://acme.com/a/b/c/branches/ovm_sequencer -m "Feature branch for ovm_sequencer"
数回編集した後、トランクに再統合しようとしましたが、問題が発生しただけです。
何がうまくいかず、どうすれば修正できますか?