0

これは、ブックマークとは何か/ブランチとは何かという別の質問ではありません。これらの投稿をすべて読んだので、正しい使用法についていくつか明確にしたいと思います。

私はウェブサイトを開発しています。安定版と開発版が欲しいです。

そこで、'stable' と 'development' の 2 つのブックマークを作成します。

新しい機能を作成したい場合は、開発ブックマークに更新して機能を作成します。

タイプミスを修正したい場合は、安定版で直接行います。

私の混乱は次のとおりです。bitbucket に中央リポジトリがあります。

hg push を使用すると、ブックマーク データが渡されません。hg push -B stable または hg push -B development をそれぞれ実行すると、ブックマーク データがプッシュされます。

次に、テスト サーバーとライブ サーバーの 2 つのサーバーを用意します。サーバーに ssh し、bitbucket から hg プルを実行すると、サーバーにブックマークが存在しないため、何がプルされ、hg update を使用すると作業コピーは何に更新されますか?

私が欲しいものの正しい使い方は次のとおりだと思います。私の 2 つのブックマーク 'stable' と 'development' を持つローカル リポジトリ。必要に応じて 2 つを切り替え、hg push -B bookmark-name を使用して bitbucket にプッシュします。次に、テスト/ライブ サーバーにそれぞれログインし、正しいブックマーク バージョンをプルします。

開発ブックマークをテストしたら、それを安定したものとマージして、ライブ サーバーにプルできます。

私の懸念とそのような私の質問は、たとえば、ライブサーバーにプルするときに誤ってブックマークを指定するのを忘れた場合はどうなりますか?

ありがとう

4

3 に答える 3

1

引っ張る

Mercurial 2.3 から、pullはリモート リポジトリのブックマークも取得します。以前は、-B <bookmark>変更セットだけでなくブックマークも取得するように指定する必要がありました。そのため、プル後にサーバー リポジトリに適切なブックマークが設定されます。

以前のバージョンを使用している場合はpull -B <bookmark>、ブックマークも取得する必要があります。もちろん、すべてのdevelopmentチェンジセットをライブサーバーにプルしたくない場合は、とにかくそれを行うことができます。

更新中

hg update引数なしで使用すると、tip常にリポジトリに追加された最後の変更セットであるが取得されます。名前付きブランチを使用しないでください)。更新時に一貫した結果を得るには、各サーバー リポジトリを更新するブックマークを明示することをお勧めします。指定し忘れが心配な場合は、スクリプトを使用して更新プロセスを自動化してください。stabledevelopment

于 2013-02-12T13:45:10.567 に答える
1

私見の正しい使い方は、ブックマークの代わりに名前付きブランチを使用することです。

于 2013-02-12T17:10:16.010 に答える
0

私はブックマークをローカルタグとして扱い、それ以上のものではありません。したがって、タグ付け情報をプッシュしたい場合は、実際のタグを使用して安定版リリースをマークします。リリースを行うたびに、たとえば「rel-2.4」などのマークを付けます。

その後、ライブで最新のリビジョンに更新でき、それが最後の適切なリリースであることがわかります。私の "dev" は単にデフォルト ブランチのヘッドであり、そこに新しい開発のビットを追加し続けています。この方法では、プッシュするだけで、ブックマークを気にする必要はありません。

これはあなたが望んでいるもの、またはあなたが想定しているものではないかもしれませんが、あなたが説明した状況では実行可能な解決策です.

修正が必要な場合 (あなたの例のタイプミス)、最後のリリースに更新し、タイプを修正し、テストし、満足すれば次のリリース (rel-2.41) としてタグ付けできます。その新しいブランチをデフォルトにマージして、開発ブランチにも修正があるようにします。ライブサーバーにジャンプして、rel-2.41 にプル/アップデートします

それはあなたにとって良いことですか?

于 2013-02-12T13:32:47.570 に答える