《Bubble》Version Controlについて
概要
バージョンコントロールは、ファイル(特にソフトウェアやドキュメントのソースコード)の変更を追跡し、複数の人がそれらに同時に作業することを可能にするシステムです。具体的には次のような機能があります。
- 変更履歴の保存: ファイルの変更点(誰がいつ何を変更したか)を記録し、過去の任意の時点に戻ることができます。
- 協力作業の支援: 複数の人が同じファイルセットに同時に作業する際に、彼らの変更が衝突しないように管理します。
- 変更の統合: 異なる人々が行った変更を一つのファイルに統合することができます。
これにより、チームは効率的に協力し、エラーや問題の原因を特定しやすくなり、プロジェクトの安定性と品質を高めることができます。
Version Controlについて
目的
1. 継続的な開発と安定したライブアプリの両立
開発環境とライブ環境を分離することで、新機能の追加やメンテナンスを行いながら、ライブアプリが安定して稼働し続けることを保証します。
2. チーム協力の最適化
複数のチームが異なる機能やアップデートを独立して開発できるように、カスタムブランチを作成し、これにより複数の作業を同時に進めることが可能になります。
3. 迅速な問題解決
ホットフィックスブランチを使用して、緊急の問題を素早く対応し、ライブアプリに即座に反映させることができます。
4. 安全な変更の管理と展開
ブランチ間のマージ機能により、変更を安全に統合し、必要な時にのみライブ環境にデプロイすることができます。
重要な用語の説明
用語 | 定義 |
開発環境(Development Environment) | 開発環境には、メイン、カスタムブランチ、ホットフィックスブランチが含まれます。 |
環境(Environment) | 環境にはブランチが含まれます。ライブと開発の2つの環境があります。環境は使用するデータベースによって定義されます(例えば、ライブ環境はライブデータベースを使用し、開発環境は開発データベースを使用します)。 |
デプロイ、デプロイメント(Deploy, Deployment) | ブランチをデプロイするとは、変更をライブ環境にプッシュすることです。メインブランチとホットフィックスブランチのみがライブにデプロイできます。 |
子ブランチ(Child Branch) | 親ブランチを持つブランチです。子ブランチもまた親ブランチになることがあります。 |
カスタムブランチ(Custom Branch) | 高いプランのアプリでは、一つ以上のカスタムブランチを持つことができます。 |
コンフリクト(Conflict) | マージプロセス中に、基本ブランチとソースブランチが最後に同期されて以来、同じものに異なる変更を加えた場合に発生します。 |
コンフリクト解決(Conflict Resolution) | コンフリクトを解決するプロセスです。ページごとにコンフリクトを整理し、ページごとに一方のブランチを優先してすべてのコンフリクトを解決するオプションを提供します。 |
やり方(ブランチの作成から削除まで)
1. ブランチの作成
1. ベースブランチ(大抵はメイン環境)からCreate a new branchをクリックしてブランチ名(Branch name)とブランチ説明(Branch description)を入力してブランチを作成する
⚠️ブランチ名は開発時は数字を使用し、時系列がわかるようにすることをオススメします。
例) No1-login、No2-chat_list など
⚠️ブランチ説明は必須ではないですが、どのような開発や修正を行うかを後から見返してわかるように書いておきましょう。
2. 開発や修正はそのブランチ内で必ず行う
2. 親から子への変更をマージ(大抵はメイン環境を該当ブランチに同期させる)
1. 該当のブランチでSync withを選択して親ブランチ(メイン環境)と同期をさせる
2. コンフリクトがある場合は、コンフリクト内容を精査してコンフリクトを解決する
コンフリクトの解決の仕方
1. 自分の担当範囲かどうか確認
2. 担当範囲だったら適切なブランチの実装・修正を取り込む
3. 担当範囲外の時は担当の人と協議して適切なブランチの実装・修正を取り込む
3. 子ブランチで必要なテストを実行
・親ブランチ(メイン環境)の変更分がきちんと子ブランチに反映せれているかエラーがないかをテストする
4. 子から親への変更をマージ
・親ブランチに移動して、Merge changes from another branchをクリックして該当のブランチをマージする
⚠️コンフリクトがあった場合はステップ2を参照
5. マージ完了確認
・Historyからマージが完了しているかを確認する(変更分がきちんとマージされているかをエディターを確認するとなおよい)
6. ブランチ削除
・ブランチに移動して、Deleteを選択してブランチを削除する
注意点⚠️
API開発などURL依存があってメイン環境で作業するときは、コンフリクトを防ぐためメイン環境での開発完了までマージ作業を行わないようにすること
メイン環境はステージング環境としていつでも本番環境にデプロイできる(エラーがない状態、開発が完了した最新の実装・修正が取り込まれている)状態にしておくこと
ブランチ (Development と Live 以外) の存続期間を可能な限り短く保つようにすること
あるブランチで修正または機能に取り組んでいる場合は、関連する項目 (要素、ワークフロー、ページなど) を別のブランチで編集しないこと
その他
用語 | 定義 |
基本ブランチ(Base Branch) | 変更をマージ(統合)したいブランチです。 |
ブランチツリー(Branch Tree) | ブランチがどこから来たのか、他のブランチとどのように関連しているかを示す視覚化です。 |
子ブランチ(Child Branch) | 親ブランチを持つブランチです。子ブランチもまた親ブランチになることがあります。 |
コンフリクト(Conflict) | マージプロセス中に、基本ブランチとソースブランチが最後に同期されて以来、同じものに異なる変更を加えた場合に発生します。 |
コンフリクト解決(Conflict Resolution) | コンフリクトを解決するプロセスです。ページごとにコンフリクトを整理し、ページごとに一方のブランチを優先してすべてのコンフリクトを解決するオプションを提供します。 |
カスタムブランチ(Custom Branch) | 高いプランのアプリでは、一つ以上のカスタムブランチを持つことができます。 |
デプロイ、デプロイメント(Deploy, Deployment) | ブランチをデプロイするとは、変更をライブ環境にプッシュすることです。メインブランチとホットフィックスブランチのみがライブにデプロイできます。 |
開発環境(Development Environment) | 開発環境には、メイン、カスタムブランチ、ホットフィックスブランチが含まれます。 |
環境(Environment) | 環境にはブランチが含まれます。ライブと開発の2つの環境があります。環境は使用するデータベースによって定義されます(例えば、ライブ環境はライブデータベースを使用し、開発環境は開発データベースを使用します)。 |
ホットフィックスブランチ(Hotfix Branch) | ホットフィックスブランチは、ライブから分岐できる唯一のブランチです。一度に存在できるホットフィックスブランチは一つだけです。ホットフィックスブランチが存在する間、メインはライブにデプロイできません。ホットフィックスは高いプランで利用可能です。 |
同期中(in sync) | 二つのブランチが同期している状態では、マージによるコンフリクト(衝突)が発生しません。 |
ライブ(Live) | インターネット上で実際にユーザーが利用可能なアプリケーションのバージョン。公開されている実運用版を指します。 |
ライブ環境(Live environment) | ライブ版のアプリケーションが運用されているサーバーやネットワークの環境全体。 |
メインブランチ(Main branch) | アプリの主要な開発が行われる中心的なブランチ。このブランチからのみ、ライブ環境へのデプロイが許可され、プロジェクトの他のブランチはこれに基づいて開発されます。 |
マージ、統合(merge, merging) | 一つのブランチの変更点を別のブランチに取り込むプロセス。複数の開発作業を一つのブランチに統合します。 |
親ブランチ(parent branch) | 他のブランチが分岐する元となるブランチ。親ブランチから分岐する子ブランチが複数存在することがあります。 |
コンフリクトの解決(resolve conflicts) | 異なるブランチのマージ時に発生する矛盾や衝突を解消するプロセス。どの変更を優先するか選択し、問題を解決します。 |
復元(restore) | 過去のある時点のブランチの状態に戻すこと。セーブポイント機能や特定の日時を指定して過去のバージョンに戻すことができます。 |
セーブポイント(savepoint) | 特定の操作時に自動的に作成されるブランチのバックアップポイント。ユーザーはこれを利用して特定の時点にブランチを戻すことができます。 |
セーブポイント保持期間(savepoint retention window) | どれだけ古いセーブポイントまで保持し、利用できるかを定義する期間。 |
ソースブランチ(source branch) | 他のブランチにマージしたい変更を含むブランチ。このブランチから変更が他のブランチに取り込まれます。 |
同期(sync) | 二つのブランチを最新の状態に保ち、変更点を反映させるプロセス。ブランチ間の差異を最小限に抑えます。 |
ブランチの作成、分岐(to branch, branching) | 既存のブランチから新しいブランチを作成すること。異なる機能の開発や修正を分けて行うことが可能になります。 |
バージョン管理(version control) | アプリケーションのコード変更を追跡し、管理するシステム。過去のバージョンへの復元や変更点の比較が容易になります。 |