問題タブ [svn-merge]
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.
svn - SmartSVN で 2 つのディレクトリをインポートしてマージする方法は?
私はそのような状況を持っています:
- コードがSVNでホストされていないWebサイトがあります。
- このウェブサイトに変更を加えました。
- クライアント(私たちのチームメンバーではない)に雇われたフリーランサーが並行して変更を加えました。協力する可能性はありません。
- そのため、SVN の「trunk」と「branch」のように、ハード ドライブに 2 つのフォルダーがあり、同じサイトの 2 つのバージョンが並行して変更されています。
問題は、Web サイトの両方のバージョンを SVN リポジトリにインポートし、1 つをトランクとして、もう 1 つをブランチとしてインポートし、SVN の相違点のリストから取得して、変更されたファイルを編集し、競合を解決することは可能ですか? このような問題を解決するために特別に作成された SVN のように見えますが、解決方法を調査することはできません。
- トランクに 1 つのバージョンをインポートしました。
- ブランチに別のバージョンをインポートしました。
- SmartSVNで「マージ」を選択しましたが、変更されたファイルはすべて「ファイルの変更」ではなく「ツリーの競合」として認識されるため、「ファイルは変更されていません」と書かれているため、組み込みの競合解決ツールを使用できません。しかし同時に「ファイルはツリー競合」状態です。
テストのために、私はそのような方法でさえ作成しました:完全に同じファイルをブランチとトランクに置き、「マージ」をクリックすると、それらが完全に同一であることを知っていても、すべてのファイルが「ツリー競合」としてマークされます。偽の紛争報告をします。
svn - トランクのサブディレクトリがマージされているのに、SVN がトランクをマージしないのはなぜですか?
で本当に厄介な問題に直面していSVN merge
ます。トランクをブランチにマージしたい。通常はかなり単純ですが、今回は大きな変更があったため、段階的に処理する必要があり、SVN はそれを評価していないようです。
リビジョンAでブランチを作成し、リポジトリがリビジョンBになったとします。トランクには、S1、S2などのサブディレクトリがほとんど含まれていません。複雑さを理解するために、B は A の後に約 1000 回のリビジョンがあり、トランクに多くの変更が加えられています。多くの競合とツリーの競合がありました。
段階的に処理するために、最初に S1 をマージし、次に S2 をマージすることを選択し、B のマージがすぐに行われることを望みました。コマンドを使用しましたsvn merge https://myrepo/trunk/S1 myBranchWorkingCopy/S1
S1 マージは苦労しましたが成功しました。S2も同様。
希望に満ちた のドライランを開始し、svn merge --dry-run https://myrepo/trunk myBranchWorkingCopy
更新されたプロパティのみが表示されるのを待ちます。私は熱心すぎました...その代わりに、S1またはS2で解決したすべての競合(ツリーまたはテキスト)を再度解決する必要があります...
私の結論は
トランクに S1 + S2 が含まれる場合、merged(S1) + merged(S2) != merged(trunk) ?!?
私は何か見落としてますか?すべてのサブディレクトリがマージされ、トランクを即座にマージする必要があることをSVNに伝えるにはどうすればよいですか?
ありがとう
svn - SVNは、変更されていなくても、コミットまたはマージごとにファイルを追加します
ファイルが変更されていない場合でも、SVN に特定のファイルを毎回コミット/マージさせることはできますか?
ファイルを無視できることは知っていますが、「常にコミット」オプションなどはどうでしょうか?
1 つのファイルでリビジョン番号 SVN タグ$Revision$
を使用しています。ファイルを解析し、そのリビジョン番号を変数として使用します。これは、マージ前に手動でこれを行うことを排除したかったためです。コミットされたとおりにリビジョン番号を更新したかっただけです。唯一の問題は、これを手動で行う必要があることです。これを自動化したいと思いますか?
svn - Araxisマージは、マージ時にファイル名を表示しません
Araxisマージと統合されたsvnコマンドラインクライアントがあり、競合が検出されない場合でも手動でマージしたいと思います。たとえば、実行すると、〜/ .subversion/configファイルでdiff3外部エディターを設定します。
しかし、私が走るとき
Araxisマージでは、パネルタイトルに実際のファイル名が表示されないため、実際にマージしているファイルがわかりません。
araxisマージに完全なファイル名を表示させる方法を知っている人はいますか?
svn - Subversion のマージ動作
私の質問を示すために簡単な例を作成しました。以下のログから、次のことがわかります。
- r1 - 作成されたトランク
- r2 - 作成されたブランチ
- r3 - トランクに foo.txt を追加
- r4 - 作成された QA ブランチ
- r5 - 英国支社を設立
- r6 - 作成された TEAM ブランチ
- r7 - foo.txt を更新し、TEAM ブランチにバーを追加しました
- r8 - TEAM を QA に統合
- r9 - QA をトランクに統合
だから私の質問は、svn merge -r9:HEAD ^/trunk from within UK directory I don't get the r9 changes これは予想される動作ですか?
svn - SVNNetbeans-競合を解決します-両方のバージョンを保持します
最新のNetbeansでSVNを使用しています。競合を解決するときに両方の変更を保持することは可能ですか?netbeansまたはsvnコマンドラインを使用していますか?
私には2つのブランチがあり、どちらにもファイルmain.javaがあります。1人の開発者がブランチ1に関数funA()を追加し、他の開発者がブランチ2にfunB()を追加します。次に、両方のブランチをトランクにマージし、main.javaで競合が発生しますが、1つだけでなく両方の関数を保存したいと思います。
svn - Subversion のマージ情報、重要度は?
Subversion のマージ情報がどのように使用されているか、マージ情報が正しくない場合にどのような問題が発生する可能性があるかについて、少し興味がありますか?
たとえば、私はbranch1
とbranch2
から分岐しましたtrunk
。また、subbranch1
と にsubbranch2
由来する がありbranch1
ます。で開発を行ったbranch2
後、 を使用してトランクに再統合したとしsvn merge --reintegrate ^/branch2
ます。subbranch1
次に、これらの変更をにも追加し ( からプルtrunk
)、コマンドを誤って使用したかったsvn merge --reintegrate ^/trunk
(したがって、 の直接の祖先ではない--reintegrate
にもかかわらず、ここでもマージ コマンドにフラグを追加します)。subbranch1
trunk
これにより、将来どのような問題が発生する可能性がありますか?
svn - コマンド ラインから svn のみを使用して特定のリビジョンをマージする
トランクにコミットした変更のリストをブランチにマージするにはどうすればよいですか?
リビジョンのリストは私の変更のすべてであり、これらはブランチにマージしたい唯一のリビジョンです (.)
私はこれを試しましたが、役に立ちませんでした。
svn マージ -r498,509,514,516,518,520,523,527,529,539,543,563,565,568,590,591,597 https://svn.ayrshireminis.com/svn/MINI/trunk/ .
svn - SVNでファイルの一部をマージするにはどうすればよいですか?
ファイルに複数の変更を加えたが、それらの変更のいくつかだけをトランクにコミットしたいとします。つまり、行 10 ~ 20 をコミットする必要がありますが、SVN でこれを行う方法はありますか? 理想的には Tortoise SVN を使用します。
トランクからのチェックアウトだけで、ブランチでは作業していません。私は、開発に関係のないいくつかの明らかな修正をコミットしているだけで、主にメイクファイルの奇妙なビットです。
svn - SVN - TRUNK から古いブランチにコードを追加する
ファイルをトランクにコミットしました。コミット後、これらのファイルを古いブランチにも適用する必要があることに気付きました。私が取った手順は次のとおりです。
マイコピー(トランク使用:アプリバージョン5)
svn commit -m "blah" : リビジョン 123
古いブランチ (アプリケーション バージョン 3)
svn マージ -r 122:123 svnpath
問題は、「ローカル削除、マージ時の受信編集」ツリーの競合が発生することです。問題のフォルダーは、古いブランチにはまったく存在しませんでした。しかし、作業ブランチで解決すると、トランク内のそのフォルダーのすべてのコンテンツが削除されるのではないかと心配しています。ただし、ローカル コピーがそのフォルダー内のすべてのファイルを受信することも望ましくありません。
私は明らかにここで何かを誤解しています。(コミットする必要があるかどうかさえわかりませんが、次のコミットがそれらのファイルでスタックしたくありません。)コミットされた変更を古いブランチに取得するにはどうすればよいですか? 変更されたファイルのほとんどは同じである必要があります。
以前の目標を明確にするための非常に遅い編集。(これは解決済みですが、もっと明確にする必要があると思います。)
1) トランク (バージョン) 32 に加えられた変更。
2) ブランチ (バージョン) 26 にマージされた変更。
3) 26 のマージ競合を解決し、26 から 28 から 30 から 32 にマージしたいと考えていました。
4) 今後のその他の変更は、26 からトランクまでずっとマージされます。これは、競合によってトランク内のフォルダー ファイルを削除できないことを意味します。