問題タブ [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.
svn - Subversion - 分岐/マージ
SVN での分岐とマージの基本的な理解があります。分岐し、何をしても、トランクにマージします。
マージしてトランクに戻す必要がありますか?
私のシナリオ:
Linq to SQL を使用して、ASP.NET MVC2 で小さなアプリケーションを作成しています。MVC3 が出たら、MVC3 にアップグレードするか、最初からやり直します (EF 4 を使用)。いずれにせよ、次の「バージョン」は、私が現在持っているものとは大きく異なるものになるでしょう。
SVN部分をどのように扱うべきか疑問に思っています。現在のリポジトリ (/svn/project/trunk/mvc3) のブランチとして SVN に配置するか、新しいリポジトリ (/svn/project_mvc3/trunk) を開始する必要があります。
visual-studio-2010 - VS 2010 で TFS 2008 を使用して変更を新しいブランチとしてチェックインする方法はありますか?
私の質問はかなり単純です。プロジェクトに多くの変更を加えましたが、すぐにメイン ブランチとマージしたくありません。これらの変更を行っている間、これらの変更の開始時にブランチを作成しませんでした。そのため、コードをチェックインするために分岐する方法を見つけようとしましたが、解決策はないようです。これを行うにはどうすればよいですか。また、最善の方法は何ですか。TFS 2008 に接続する Visual Studio 2010 を使用しています。
どうもありがとう。
svn - SVN がマージに失敗し、Mercurial が成功した場合
それが話題になる前に、私はすでにこのトピックに関するいくつかのスレッドを見てきました。
開発グループを (Subversion から) Mercurial に切り替えることを検討しています。その前に、通常の賛否両論のリストを作成しています。
私の「長所」の 1 つは、マージが Mercurial の方が優れていることですが、これまでのところ、説得力のある証拠を見つけることができていません。つまり、HgInit.com で確認できなかった声明があります。
たとえば、関数を少し変更してから別の場所に移動した場合、Subversion はそれらの手順を実際には覚えていないため、マージの時期になると、新しい関数が突然現れたと考える可能性があります。 . Mercurial はこれらのことを個別に記憶します: 関数の変更、関数の移動。つまり、その関数も少し変更した場合、Mercurial が変更を正常にマージする可能性が高くなります。
これは非常に魅力的な機能ですが、私が知る限り、それはただの熱気です。上記の記載については確認できませんでした。
Mercurial リポジトリを作成し、Hello World を実行してからクローンを作成しました。1 つでは、関数を変更し、コミットしてから移動し、コミットしました。もう1つは、関数に別の出力行を追加してコミットしただけです。
マージすると、Subversion を使用した場合と基本的に同じマージ競合が発生します。
Mercurial はファイルの名前変更をより適切に追跡できること、および DVCS にはマージ以外にも利点があることは理解していますが、この例に興味があります。ジョエル・スポルスキーはここに基地外ですか、それとも何か足りないのですか?
私はこの分野の経験はありませんが、Mercurial はより多くの情報を保持しているため、理論的にはマージがうまくいくようです (開発者も頻繁にチェックインを行った場合)。たとえば、Mercurial が複数の変更を比較してコンテキストの変更を取得することは実行可能であると考えています。たとえば、関数を変更し、チェックインし、関数を移動し、チェックインすると、Mercurial はこれら 2 つの部分を関連付けます。
ただし、Mercurial のマージは、追加された情報を実際に利用していないようで、Subversion と同じように動作しているようです。これは正しいです?
tfs - TFSマージはどのように機能しますか?
リリースブランチ(RB、C5から開始)とトランク上のチェンジセット(C10)があり、これらをRBにマージします。
ファイルには、C3(両方に共通)、RB上のCS 7、C9(トランク)に1つ、C10に1つ変更があります。したがって、変更したファイルの履歴は次のようになります。
C10 | C3 | C7
C10をトランクからRBにマージすると、C3が共通の祖先リビジョンであり、C10とC7がそれぞれ2つのブランチの先端であるため、マージウィンドウが表示されると思い
ます。ただし、マージツールで表示されますC10 | C9 | C7
。
私のマージツールはを表示するように構成されて%1(OriginalFile)|%3(BaseFile)|%2(Modified File)
いるので、TFSがベースリビジョンとしてC9を選択したことがわかります。
これはまったく予想外のことであり、MercurialやGitでのマージに使用されている方法とはまったく逆です。何か問題が発生したのでしょうか、それともTFSがマージで私を狂わせようとしているのでしょうか。
これはデフォルトのTFSマージ動作ですか?もしそうなら、なぜ彼らがそれをこのように実装することを選んだのかについての洞察を提供できますか?
クライアントとしてVS2010でTFS2008を使用しています。
mercurial - Mercurial: ブランチ間でマージするときにいくつかの変更セットをスキップする方法についてのアイデアはありますか?
ここでの状況: Mercurial リポジトリに 2 つのブランチがあり、それらをブランチ A とブランチ B と呼びます。
- ブランチ A はコードの安定バージョン用です
- ブランチ B は開発ブランチ用です
ブランチ A で変更されたものはすべてブランチ B にマージされました。ただし、ブランチ B のコードにはブランチ A とのいくつかの違いがある点に到達しました。ブランチ A でいくつかの大きなコード変更を行い、これらの変更をブランチ B にマージしました。本当の苦痛であり、実際にはソリューションの代替実装を行いたいと考えています. ただし、後でブランチ A の変更を継続し、これらの後のマイナーな変更をブランチ B にマージできるようにしたいと考えています。後で A から B にセットを変更しますか? (おそらく、バックアップからのコピーなどを使用して、純粋な Hg ソリューションと回避策なしで...)
ここに到達するものの概要を示します。
事前にアドバイスをありがとう
branching-and-merging - TFS2010 - 特定のファイルをマージから除外する
メインブランチと開発ブランチを備えた単純なブランチプランがあります。開発ブランチには、ソース コードの横に開発プロセスに関連するいくつかのドキュメントがあります。これらのドキュメントは、開発の最新バージョンをメインにマージする際にメイン ブランチにマージしてはなりません。ソース管理の特定のファイルまたはフォルダーをマージのために「無視」としてマークすることは何とか可能ですか?
ご協力いただきありがとうございます。
git - 履歴を上書きせずに、マスターから別のブランチに変更を分離するにはどうすればよいですか?
最近、プロジェクトに新しい実験機能を実装し始めました。残念ながら、開始する前にブランチするのを忘れて、共有リポジトリサーバーのマスターブランチにいくつかのコミットをプッシュしました。他の人がすでに私のコミットをチェックアウトしている可能性があるので、サーバーの履歴を上書きしないようにしたいと思います。
私の変更により、マスターは現在不安定ですが、これも良くありません。したがって、マスターに加えられた変更を元に戻し、これらの変更を含む別のブランチを作成し、十分に安定した後でもマスターに再導入(マージ)できるようにしたいと思います。
git - Git:リベースを使用してトピックブランチを適用します(マージなし)
マスターの上に適用したい小さなトピックブランチ(寄稿者のリモートリポジトリ上)があります。これを行うための標準的な方法は次のとおりです。
ただし、マージコミットを生成するのではなく、コミットを1つずつ適用したいと思います。
トピックブランチが私のアップストリームであるかのように、マスターをトピックブランチに適用するため、単純に実行してgit rebase contributor/topic-branch
も明らかに機能しません。だから私はこれを試しました:
そして、これは私が望むことを行いますが、今は分離されたHEADがあり、マスターブランチを修正してHEADを指すようにする必要があります(を使用してbranch -f
)。もちろん、これを自動的に行うBash関数を作成することもできますが、使用せずにトピックブランチをプルする「適切な」方法はありmerge
ますか?
svn - svn ブランチが再統合されたかどうかをテストするにはどうすればよいですか?
この本は、コミットを受け入れることができないため、再統合されたブランチを使用すべきではないと述べており、実際には削除することをお勧めします。
覚えていない場合、ブランチがすでに再統合されているかどうかをテストするにはどうすればよいですか?
mercurial - 別のリポジトリからの Mercurial ブランチのマージ
別のリポジトリから現在のリポジトリにブランチをマージする方法を理解しようとしています。
私は次のものを持っています:
PJT1 - ブランチ default および foodog が含まれています
PJT2 - ブランチのデフォルトを含む
PJT2 から、次のことを行います。
PJT2 を見ると、正しいファイルと変更が表示されます。ただし、hg branches
そうすると、次のようになります。
そしてhg branch
、次のことを明らかにします。
foodog
PJT1 のブランチから PJT2 のブランチにコンテンツを取得するにはどうすればよいdefault
ですか?