問題タブ [branching-and-merging]
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.
tfs - TFS: メインからの変更でブランチを更新する
メインの開発ラインがあり、私がブランチを作成し、開発者 b がブランチを作成します。私たちは両方ともいくつかの仕事をしています。開発者 b は作業を終了し、メインの開発ラインにマージします。私は彼の変更が私に影響を与えることを知っています。後で競合に対処するのではなく、現在メインの開発ラインにある変更でブランチを更新したいので、マージする前にブランチでそれらを処理できます。メインに戻ります。
それ、どうやったら出来るの?
git - Git で「切断された」ブランチをマージ/リベースする
Git に次のような状況があるとします。
edge
ここで、B コミットを少し ( を使用して) 変更してブランチをリベースするedit
ので、次のようになります。
C' と D' は C と D と同じコミットですが、E の上に適用されます (feature
ブランチ内の X が切断されていることに注意してください)。
今、どうすればよいですか:
- ブランチをリベース/マージして
feature
、そのコミットが D' の上に適用されたかのように見えるようにしますか? - ブランチをリベース/マージして
feature
、そのコミットが E の上に適用されたかのように見えるようにしますが、別の「ブランチのマージ ...」コミットは行いません (C' と D' は C'' と D' に書き換えられます)。 ')?
visual-studio-2010 - VisualSVN VS2010 マージの失敗
当社は、VS2005からVS2010へのアップグレードの一環として、VSSからSVNに移行しています。VisualSVN の実装を評価しています。VisualSVN サーバーはリポジトリを管理し、VS2010 内で VisualSVN クライアントを使用しています。私たちの仕事は主に Web アプリケーション プロジェクトです。
ブランチをトランクにマージするのに本当に問題があります
シナリオは次のとおりです (すべての SVN アクションは VS2010 VisualSVN プラグインで実行されます)。
- 特定の WAP で、
/trunk
呼び出されたものからブランチを作成/branches/test
し、VS2010 のローカル IIS で実行するように構成しました。ブランチはリポジトリ (サーバー上) から離れた HDD に保持されます。 - ホームページを編集して、 HELLO WORLDを WAP の default.aspx に
/branches/test
追加し、コミットしました。/branches/test
- トランク バージョンにはHELLO WORLDがないことを VisualSVN ブラウザーで確認できますが、ブランチバージョンにはあります
- VS2010 のトランクに切り替えると、「作業コピーに変更があります。切り替える前にそれらをコミットまたは元に戻すことをお勧めします。」
- 今トランクで、念のためにコミットするものは何もないことを確認します
- 引き続きトランクで、「Merge…」を選択してから「Reintegrate a branch」を選択し、From URL を [path]/branches/test に設定し、Merge Depth を「Working Copy」に設定します。
- 「ローカルで変更された作業コピーに再統合できません」というエラーが表示されます。
ここでの分岐の理解に根本的な間違いがありますか?途中で私のプロセスに欠陥がありますか?それともこれは VisualSVN の機能ですか?
ありがとう
mercurial - Mercurial - 2 つのブランチを 3 つ目の新しいブランチにマージする
あるブランチを別の既存のブランチにマージする代わりに、2 つのブランチを 3 つ目の新しいブランチにマージすることは可能ですか?
tfs - ベースラインを汚染することなくテストを可能にする方法でコードを分岐するにはどうすればよいですか?
TFSを使用すると、次のようになります。
- メインベースライン
- 各開発作業の開発ブランチ。これらはベースラインにマージされます。
- リリースごとに作成されるリリースブランチ。バグ修正はここで行われ、リリースされ、ベースラインにマージされます。
- シェルフセットを使用すると、ベースラインを汚染することなく、必要に応じて開発ブランチ間でコードを共有できます。コードレビューに役立ちます。
- 開発の変更をベースラインに配信すると、自動ビルドが開始され、変更がテストサーバーに自動的に配置されます。
問題は、ビジネスアナリストがテストサーバーにアクセスするまで変更を確認できないことです。現在、テストサーバーで変更を取得する唯一の方法は、変更をベースラインにチェックインすることです。したがって、BAが何か問題を見つけた場合、残念ながら、コードはすでにベースラインにあり、それを元に戻すという問題を経験する必要があります。
ベースラインを汚染することなく、BAが見たいものを取得するために、分岐戦略またはプロセスを変更する方法はありますか?
svn - SVN-リリースブランチとバグ修正
「v1.0」というリリースブランチがあるとしましょう。トランクでの作業は継続されます(将来のバージョンの開発-v1.1)。ここで、v1.0で重大なバグを検出しました。これは今すぐ修正する必要があります。リリースブランチのバグを修正した後も、トランクにはまだ存在しています。リリースブランチで修正したトランクの同じバグを修正するにはどうすればよいですか?
tfs - 2 つのブランチで同時に作業する TFS プロジェクト
実稼働サーバーに .net Framework 1.1 プロジェクトをデプロイしています。.net Framework 4 に移行したいと考えています。一方のチームは引き続き VS2003 で .net1.1 のバグを修正し、もう一方のチームは VS2010 で .net4 への移行に取り組みます。将来のある時点で、2 つのチームは変更をマージする必要があります。次のバージョンの本番環境は .net Framework 4 になることを望んでいます。
TFSの側面でこれを行うための好ましい方法は何ですか?
ありがとう。
svn - まだ手つかずのトランクにブランチをコミットすると、競合が発生するのはなぜですか?
私の最初の大きなディレクトリのマージに苦労し、なぜこれらのエラーが発生するのかについての手がかりを期待していました。
私は1週間前にtrunk/のコードを分岐し、branchs / myBranchのコードに多くの変更を加え、それらをtrunk/にマージするときが来たと判断しました。それ以来、トランク内のコードは変更されていません。新しいコードが分岐したときとまったく同じであるため、競合が発生する可能性はないと思いました。
私が知っているように、新しいコードをトランクにマージしようとすると、多くの競合が発生し、ファイルの欠落が報告されるという誤った仮定があります。誰かがこれが起こっている理由を明確にすることができますか?
これが基本的な事実です:
- コードはリビジョン19466で分岐しました。
- それ以来、トランクは手つかずのままです。変更なし(最終変更Rev:19453)。
- ブランチは(残念ながら?)ローカルで行われ、いくつかの変更が組み込まれました。
- 次のコマンドを使用して、ブランチイントロトランクからの変更をマージしてみました
svn merge -r19466:HEAD branches/myBranch trunk/
。(私がトランクに立って最後の議論をスキップしていたか、または単に上記を行っていたかは関係ありませんでした) Subversionは、ファイルfooDaoが見つからないことについて文句を言います。
! C trunk/fooDao.java
> local missing, incoming edit upon merge
このファイルは、ブランチが作成されたのと同じコミット(19466)で名前が変更されましたが、。を使用して発行されたため、subversionがこれを取得する必要があると思いました
svn move
。ログにはその祖先が表示されます。... /branches/myBranch/fooDao.java(/branches/myBranch/fooDato.java:19452から)
- コードを変更しなくてもリビジョン番号が増えるのはなぜか疑問に思われる場合は、他の多くの(アクティブなプロジェクト)を含む共有リポジトリであるためです。
mercurial - Mercurial:マルチカスタマープロジェクトのリポジトリレイアウト
このWebアプリ製品は複数の顧客に展開されており、svnからMercurialへの切り替えを検討しています。svnでは、トランクをプロジェクトの「コア」と見なし、ブランチは顧客ごとに設定されます。
今、私は最高のレポレイアウトがMercurialで何であるか疑問に思います。
プロジェクトが基本的に3つのメインフォルダで構成されているとしましょう:html
、、。 css
js
内容はお客様間で同じですが、 &/html
にはカスタマイズがあります。
現在、これらのカスタマイズは、などの個別のファイルに存在するため、修正/変更からコア/共通ファイルまで、実際の目的に応じたカスタマイズを明確に伝えることができます。/css
/js
skin.css
次に、SVNを使用すると、顧客のブランチからトランクに変更を部分的にコミットできるため、顧客のプロジェクトに取り組んでいる間にグローバルなものを修正できます。私が理解しているように、部分的なコミットは現在、Mercurialではサポートされていません。
では、この状況に水銀でどのようにアプローチするのが最善でしょうか?1つの中央コアリポジトリ(おそらくリリースブランチを含む)を用意し、顧客プロジェクトを個別の(リモート)リポジトリとして複製する必要がありますか?コアブランチとカスタマーブランチのすべてを1つのリポジトリ内に配置する方がよいでしょうか。
ポインタをありがとう!
git - プロジェクト テンプレートに git を使用するにはどうすればよいですか?
プロジェクト間で再利用するテンプレート/開始点コードがいくつかあります。新しいプロジェクトに取り組んでいる間、私はいつもテンプレートに何かを追加したり変更したりしたいと思っています。プロジェクトと並行してテンプレートを開発すると思います。
私の追加のいくつかはプロジェクト固有のものであり、テンプレートにコミットするべきではありません。他の人はすべきです。
これにはgitを使用できるに違いありませんが、方法がわかりません。テンプレート用の git リポジトリと、各プロジェクト用の git リポジトリがあります。すべてではありませんが、一部のコミットをテンプレートにプッシュバックしたいと考えています。コミットされないファイルのサブセットを作成できますか? 1 つのブランチでプロジェクト固有の作業を行い、マスターでテンプレートを使用する必要がありますか?
どんな洞察も本当に感謝しています。私のgoogle-fuはほとんど得られません。