1

私は、各グループがメインの mercurial リポジトリのサーバー側のクローンを持つように設定されたプロジェクトに取り組んでいます。私たちが使用してきたワークフローには、ラップトップで開発し、コミットしてサーバー側のクローン リポジトリにプッシュし、それらの変更を強力なリモート マシンにプルしてテストを実行することが含まれます。変更をグループの他のメンバーと共有する準備が整うと、メインのサーバー側のクローンがローカル リポジトリにプルされ、ローカル リポジトリがメインのクローンに対してリベースされます。その後、変更をメインのリモート クローンにプッシュすると、履歴が線形履歴として表示されます。

問題は、個人のサーバー側のクローンがリベースされていないため、ローカル リポジトリと完全に同期していないことです。適切なブランチを使用していないため、マージ + リベースと移植 / 移植は、リポジトリの同期を取り戻すために使用するものではないようです。

サーバー側のクローンは、ローカル リポジトリと同じ履歴を持っている必要があります。そうしないと、すべての変更セットをプルおよびプッシュし、存在しない競合を解決するのに時間がかかります。メインからストリッピングしてプルすることなく、サーバー側のクローンにメインおよびローカルリポジトリと同じ履歴を持たせるにはどうすればよいでしょうか? 理想的には、サーバーにログインする必要はありません。

4

2 に答える 2

2

「メイン」リポジトリからプルしてその履歴を取得することしかできませんが、これにより、リベースされていない履歴が開発サーバーとローカル リポジトリから削除されることはありません。

「メイン」の履歴のみを保持する唯一の方法は、他のリポジトリを削除する (またはそれらを再クローンする) ことであり、これはすべてのリポジトリに対して同時に行う必要があります。

Ps リベースしないでください。プライベートリポジトリ専用です。

于 2011-12-02T02:37:44.300 に答える
0

リベースは確定的であるため、クライアント クローンでリベースをやり直すことができます。

懸念される唯一の原因は、リベースがマージ解決をトリガーしたかどうかです。その場合、クライアントで同じ方法でマージを解決する必要があります。サーバー上のコードを覗き見せずにそれを行うのは難しいかもしれません.

于 2011-12-05T09:09:35.993 に答える