web-dev-qa-db-ja.com

bzrでブランチをマージする方法は?

私はUbuntuApp Showdownコンテストに参加していて、フィードバックを受け取りました https://myapps.developer.ubuntu.com/dev/apps/1183/feedback/ そしてmerge M.Hallのbzrブランチから私のメインブランチへ。

問題を起こしたくないので、どうすればこれを正しく行うことができますか...

編集:私はこれを見つけました アプリレビューボードから提案された修正をアプリに適用するにはどうすればよいですか?

しかし、私は問題があります

chris@chris-Aspire-5732Z ~/Projects/MangaR/mangar $ bzr merge lp:~mhall119/ubuntu-app-reviews/mangar
bzr: ERROR: Branches have no common ancestor, and no merge base revision was specified.
1
Clepto

エラーメッセージは、2つのブランチが完全に無関係であることを意味します。これは、GnomeプロジェクトをKDEプロジェクトにマージしようとするようなものです。

2つの選択肢があると思います。

  1. mhallの変更をコードのパッチとして適用します。

    bzr branch lp:~yourbranch mangar
    bzr branch lp:~mhall119/ubuntu-app-reviews/mangar mhall-mangar
    bzr diff -r300..-1 mhall-mangar | (cd mangar; patch -p0)
    

    リビジョン300の代わりに、mhallのコミットの直前にリビジョン番号を使用します。実際に彼がコミットを1回だけ行った場合は、-c-1の代わりに-rを使用できます。

  2. mhallのバージョンをコードの上にコピーします。

    bzr branch lp:~yourbranch mangar
    bzr branch lp:~mhall119/ubuntu-app-reviews/mangar mhall-mangar
    cp -r mhall-mangar/* mangar/
    

    この後、違いを確認します。ほとんどの場合、元に戻し、mhallによって行われた変更のみを保持します。

0
janos

-r0..-1オプションをbzr mergeとともに使用します

例:

 bzr merge lp:~mhall119/ubuntu-app-reviews/mangar -r0..-1

私はこの答えを見つけました ここ

私はこのソリューションが現在受け入れられている答えよりも好きです。なぜなら、今でもアップストリームから将来の変更をマージできるはずであり、「正しく機能する」はずだからです。

また、既存のプロジェクトから分岐し、すべてをサブディレクトリに移動し、コミットしてから、その新しい分岐から-r0..-1でマージすると便利な場合があります。

例:

 cd ..
 bzr branch lp:~mhall119/ubuntu-app-reviews/mangar mangar_branch
 cd mangar_branch
 mkdir mangar
 bzr add mangar
 bzr mv * mangar
 bzr commit
 cd ../${YOUR_TARGET_BRANCH}
 bzr merge ../mangar_branch -r0..-1
3
Dave Butler