私はごく最近、Bzr共有リポジトリを使用してプロジェクトを管理し始めました。これは、これまでインクリメンタルコミットを行っていたスタンドアロンリポジトリから分岐することで導き出しました。この新しい共有リポジトリには、「/ trunk、/branchs」レイアウトがあります。
--xxxx_shared
--trunk
--src
--lib
--doc
--branches
そこで、このリポジトリのトランクからのいくつかの変更をメインラインにマージしましたが、後でトランクからさらにいくつかの変更をプッシュしようとすると、2つのブランチが分岐したというエラーが発生しました。私はメインラインへのマージをコミットしていたので、相違がありました。しかし、マージをコミットする必要がある場合、これをどのように回避するのでしょうか。それとも私は物事を真剣に誤解していますか?
この競合を解決するために、メインラインのBACKから共有トランクブランチにマージしました。/ xxxx_shared / trunkのリビジョン履歴が次のようになっているので、これは間違いだったと思います。
------------------------------------------------------------
revno: 74 [merge]
committer: Chris <xxxxxxxx@yahoo.com>
branch nick: trunk
timestamp: Wed 2011-12-14 03:47:49 +0000
message:
Committing merge from parent branch.
------------------------------------------------------------
revno: 71.1.1 [merge]
committer: Chris <xxxxxxxx@yahoo.com>
branch nick: mainline
timestamp: Tue 2011-12-13 21:13:06 +0000
message:
Merged WinAPI toolbar updates from /projects/xxxx_shared/trunk.
------------------------------------------------------------
revno: 73
committer: Chris <xxxxxxxx@yahoo.com>
branch nick: trunk
timestamp: Wed 2011-12-14 03:33:35 +0000
message:
Updated the WinAPI toolbar button code...
したがって、上記の71.1.1はメインラインからマージされており、FROM / projects / xxxx_shared / trunk(共有リポジトリ)からメインラインへのマージを指します。
これがすべて明確であることを願っています。しかし、直線的な開発ラインを回復するために、この問題をどのように解決できますか?そして、将来この種のことを避けるために、Bzrでの保守的な「ベストプラクティス」は何でしょうか?元のスタンドアロンリポジトリの変更されていないコピーがまだあるので、必要に応じていつでもそこに戻って最初からやり直すことができます。