問題タブ [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 - svn - マージ後に「ブランチが更新された」ファイルへの更新を確認しますか?
私はSVNの機能ブランチに取り組んでおり、トランクから頻繁に変更を取り入れようとしているので、時代遅れになりすぎないようにしています。
私はコマンドを使用しています:svn merge ^/parent/branch/path
両方のファイルの明確なリストを取得するにはどうすればよいですか:
- 親ブランチが更新したファイル。
- ブランチを作成してから、ある時点で変更したファイル。
問題は、作業コピーに ~3k のソース ファイルがあることです。私のブランチの変更は、最大 50 個のファイルしかカバーしていません。
マージ コマンドは、私の仕事に関係のないファイルに多くの更新をもたらします。これで結構です。私はSVNがそれらをうまく更新できると信じています。
ただし、ブランチで作業したファイルへのマージを手動で確認したいと考えています。
これどうやってするの?
svn - トランクからブランチへの SVN マージにより、ツリーの競合が発生する
trunk
ブランチが 1 つと 1 つあると仮定します( COKE
)。(私は SVN で Git を実行し、Git ではなく svnとマージしtrunk
ます)COKE
- ブランチ
FILE1 on trunk
に必要な変更がありました。COKE
- 私たちは からマージし
trunk
、私は でマージをコミットしCOKE branch
ます。 - その後
FILE1
から削除されtrunk
、 でその変更が必要ですCOKE
。 - でマージすると、 でツリーの競合が発生し
FILE1
ますCOKE branch
。
このツリー競合は(2)のマージでコミットが原因で発生するのでしょうか?
この 3 つの競合を解決するにはどうすればよいでしょうか?
svn resolve --accept theirs-full /path/FILE1
うまくいかない、「働く」だけがうまくいくと言います。
svn-merge - subversion:すでにマージされたコード(rev Aの場合)でsvn mergeコマンド(rev Bを使用)を使用するのは正しいですか?
コードをリビジョン用のブランチ(たとえばX)とマージしましたが、もう一方のブランチにコミットがあり、マージされたコード(まだコミットされていません)でそれらの変更を行いたいと思います。これで、すでに変更されたファイルに対してsvn mergeコマンド(つまり、リビジョンY)を実行できますか。
私のリポジトリにsrcファイルがあると仮定します(たとえば、tmp1.c。tm2.c)
コード:
今、問題は私が再びできるかということです
svn - SVN MERGE: 非祖先ブランチからトランクへ
ブランチ フォルダーにコミットされたばかりの (実際にはブランチされていない) ブランチをトランクにマージしたいと考えています。詳細はこちら。
Magento1.7 は実際には幹 mymagento から分岐していませんでした。アイデアは、アップグレードされるように、Magento1.7 の変更を mymagento に移行することです。
これまでにこれらのsvn Mergeフォームを試しました:
私は多くのパラメータを試しました--accept theirs-full
--reintegrate
--ignore-ancestry
(もちろん適切な構文で)
しかし、どれも正しく機能していません。最大で、svn プロパティの変更が Merged にマークされます。ただし、Magento1.7 からのファイルの実際の変更ではありません
差分取得に関するマージされたコマンドの後、SVN は次の情報を報告します。
この場合、どうすればよいか教えてください。あなたの時間と努力に感謝します。
svn - SVN マージの問題
いくつかのブランチからローカル ワークスペースに svn merge を実行しようとしています。
マージしようとすると、時間がかかり、突然停止します。
2 回目は、Windows タスク マネージャーを開き、マージ手順を再度開始しました。マージを開始してから数分後に、PF の使用率が大幅に上昇し、システムが非常に遅くなり、PF メモリが不足することがわかりました。したがって、プログラムがクラッシュします。
次に、「--dry-run」オプションと「--ignore-ancestry」オプションを一緒に試してみましたが、正常に完了しました。ただし、 --dry-run オプションを削除すると、アプリケーションがクラッシュするという同じ話が再び発生します。
Windows OS で svn 1.6.0 クライアントを使用しています。
リポジトリや構造に何か関係があるのではないかと疑っています。何か不足している場合は、私に提案してください。
svn - 他のブランチが分岐しているブランチをトランクにマージしても安全ですか?
標準レイアウトがあります
ただし、トランクにはコードがありません。トランクは使用されたことがありません。代わりに、すべての作業がブランチで行われ、そのブランチが行われたと見なされると、新しいブランチが作成されます。これ以降、すべてのリリース可能なコードはトランクに常駐します。これは、他のすべてのプロジェクトがセットアップされる方法であり、インストールパッケージをビルドするときにTeamCityがすべての最新のリリース可能なプロジェクトをフェッチしてビルドする方法です。
ブランチの下には、1.0ブランチと1.0ブランチから分岐したfooブランチがあります。
fooは現在開発中であり、1.0には最新のリリースされたコードが含まれています。私のアイデアは、1.0をトランクとマージし、fooが完了したら、それをトランクとマージすることでした。1.0に基づいているので、問題が発生しますか?トランクにも影響があり、トランクにはfooに存在しない他の変更が含まれている可能性がありますか?
また、どの時点で1.0ブランチを削除しても安全だと考えられますか?1.0がトランクにマージされた直後、またはfooもマージされた直後ですか?
svn - svn revert after merge
I've done an svn merge between two branches -- not checked in -- and now I want to "un-merge" some of the files in my working copy. Something like the following:
(Note: I want to use svn merge
, and not just copy the files from a working copy of bar
, because (1) there are some legit merges, i.e. unrelated changes made on foo
and bar
to the same files, and (2) some files have been deleted in bar
and I when I check in I want to delete them from foo
as well.)
I want to check in most of the merged files, but some of them, I want to throw out the changes from bar
branch and keep the existing file from foo
branch. So I try:
This does nothing. qux.quux
still has the changes from bar
branch. I try svn status
; it's blank. I try copying over from a prestine copy of foo
branch: the file now has the right content, but svn diff
now shows the bar < foo
diffs. svn revert
again: now we've got the bar
changes back. Let's try svn info
:
So how do I get back to foo
's version of qux.quux
? And how do I clear up the "bad" state information in my working copy?
I have the feeling I'm fundamentally misunderstanding svn merge
somehow.
svn - ある SVN ブランチから別の SVN ブランチへのすべてではなく一部の変更のマージ
私の特定の 質問は UR DOIN IT WRONG を生み出すように見えるので、問題をレイアウトして、誰かが解決策を提案できるかどうか見てみましょう。
v1、v2など、いくつかの順序付けられたブランチを持つトランクレスSVNリポジトリがあります。「下位」ブランチからの変更は、「上位」ブランチに自動的に伝播されます。おそらく、もうここで働いていないsvn merge
誰かによって、何人かの perl スクリプトが一緒にまとめられました。これにより競合が発生する場合、変更は反映されません。代わりに、開発者は電子メールを受け取り、「より高い」ブランチで手動で修正することになっています。彼らは通常これを行いますが、常にではありません。
(注:この「ブランチ」構造がどれほど正気でないかについて私に教えないでください。私はそれをよく知っています。それは確かに私の考えではありませんでした。)
私たちは (「私たち」と言っていますが、私の考えではありませんでした) 「最上位」のブランチを放棄し、そのブランチから次のブランチに変更を移すことにしました。ただし、コードの一部の領域では「より高い」差分は必要ないことはわかっています。手動で修正する必要がある競合が発生するものもあります。他のものは、バージョン番号のみが変更されています (「下位」バージョンのままにしたい)。変更の一部は削除または移動であるため、上位バージョンのファイルを下位バージョンのツリーにコピーして完了と呼ぶことはできません。そして、私は仕事に行き詰まっています。
では、ブランチnからブランチn-1への変更のすべてではなく一部を移動するにはどうすればよいですか?
svn - --reintegrateを使用したsvnmergeは範囲の欠落について文句を言いますが、mergeinfoは正しいようです
次のような構造のプロジェクトがあります
ここで、現在のHEADはリビジョン1048です。ブランチはr523のトランクからコピーされました。トランクはmybranchにマージされ、結果はr1048になります。上のmergeinfo^/project/branches/mybranch
は
トランクのmergeinfoには、から何も言及していないレコードがあり^/project/branches/mybranch
ます。実際には、トランクとブランチの両方がブランチからのmergeinfoを並列に保持しますmybranch
が、これらのmergeinfoは両方の出力で完全に同一であるように見えます。
今、私はトランクの作業コピーに入り、発行しようとします
次のようなエラーメッセージが表示されます。
私のブランチフォルダのmergeinfoは、523-1047がトランクからブランチに正しくマージされたことを示しているので、これは奇妙です。そのサブフォルダーとの取引は何ですか?src
トランクとブランチの両方に明らかに存在するディレクトリです。
それは何かが怪しいところだと思います。mybranch / srcのmergeinfoを調べてsvn pg svn:mergeinfo ^/project/branches/mybranch/src@HEAD
も、何も得られません。ただし、trunk / srcを見ると(svn pg svn:mergeinfo ^/project/trunk/src@HEAD
)
だから、誰かがそこの枝から幹までチェリーピックをしたようです。ただし、これはトランクフォルダ自体には表示されません。
そこに問題がありますか?そして最も重要なのは、どうすればそれを治すことができるかということです。