3

約12人の開発者からなる私のチームは、ローリングリリースモデルでWebアプリケーションを作成します。いくつかの機能セットの準備ができたら、上級開発者によってレビューされ、QAシステムにプッシュされ、次に本番システムにプッシュされます。これは通常、就業日に数回発生します。

現在使用されているVCSはSVNであり、QAと本番システムへのプッシュは、SVNで動作するが、ファイルベースの奇妙な社内展開ツールを使用して行われます(したがって、ファイルXの新しいバージョンをプッシュする必要がある場合はXは、まだプッシュしたくない他の変更セットからの変更をプッシュ解除しました。問題があります)。

Gitに切り替えるための伝道を計画しているので、ワークフローがどのようになるかを上で考えています。バージョン管理されたリリースがないため、頻繁にリンクされる成功したGit分岐モデルのような通常の提案は適用されません。

質問1:ローリングリリース用に最適化された、上記のリンクにあるような、さらなるインスピレーションを得るために見ることができる文書化されたワークフローはありますか?それとも提案しますか?

私は紙の上でワークフローをモデル化しようとしました。これは通常どおり機能ブランチとマスターを使用し、QAサーバーと本番サーバーの状態を反映するブランチがさらにあります。(1つはマスターからそこにマージするだけです。)

私が克服できない問題は、マスター内の何かが何らかの理由でリリース準備ができていない場合です。たとえば、機能ブランチfooが完了したと見なされ、 masterにマージされ、 qaブランチにプッシュされたとします。次に、機能ブランチバーについても同じことが起こります。QAシステムでは、fooが壊れており、さらに開発が必要であることがわかりましたが、barを本番システムにプッシュする準備ができています。しかし、 barを含むがfooを含まないmasterにはコミットがないので、何をプッシュしますか?頭に浮かぶのは、マージコミットを元に戻すことだけです。foomasterに変換します。(リンクの後ろで、Linusはマージコミットを元に戻す際のいくつかの問題について説明しています。)

質問2:この問題をよりエレガントに克服する方法はありますか?

4

4 に答える 4

4

DVCSを使用すると、マージのワークフローだけでなく、リポジトリ間の公開(プッシュ/プル)のワークフローがあることを忘れないでください。

master機能を評価するときに、リポジトリの影響を与える必要はありません。別のQAリポジトリ
のブランチにプッシュできます。feature

  • テストに合格すると、更新され、すべての開発者は、他の機能を開発し続けながら、マスターを更新するためにQAからQA/masterプルできます(更新されたものに基づいてローカルブランチをリベースします)。masterfeaturemaster
  • テストが失敗した場合、QA/masterは変更されません。
于 2013-01-27T20:49:42.773 に答える
4

これまで私が大成功を収めて使用したワークフローは次のとおりです。


  • 各開発者はそれぞれの機能/修正に取り組んでいます

  • 作業に満足したら、ブランチをリモートにプッシュします

    git push -u origin newfeature

  • QAまたはテスト[サーバー| 人| チーム]リリースするマスターと機能ブランチをプルし、マスターにマージしますが、リモートにはプッシュしません

  • 機能がQAされると、-no-ffとマージされ、マスターにプッシュされます

  • 機能ブランチを削除できるようになりました

    git push origin:newfeature

  • ライブサーバーは常にマスターからプルします


私たちにとって、これはライブサーバーに現在の「最良の」コードのローリングリリースが含まれていることを保証します。

分岐モデルに興味がある場合は、これが非常に便利であることがわかりました: nvie.com/posts/a-successful-git-branching-model/

于 2013-06-06T18:41:54.960 に答える
1

gitホームページにワークフローのドキュメントがあります

于 2013-01-27T20:53:01.833 に答える
0

これは、自分で考える価値のある素晴らしいスライドショーです。完璧なものはありません。可能な限りニーズを満たすようにしてください。

リリース管理Gitワークフロー

https://speakerdeck.com/ewoodh2o/release-management-git-workflow

于 2013-08-14T08:54:39.083 に答える