質問の要約:
私はこれを書いたときに多くの詳細があることに気づきました、それでここに見出しがあります:
- 作業環境内でSVNとGitSVNを使用しているが、リモートGitリポジトリ(BitBucket)を使用して作業環境の外部から同じコードにアクセスし、変更を共有したい多くのユーザーのチームにとって、優れたワークフローは何ですか?不在時にこのコードを相互に接続し、オフィスに戻ったときに安全にSVNにリベースしますか?他の人もオフィス内でローカルにGitSVNを使い続けていますか?
これを書いていると、私が求めていることは本当に非常に複雑であり、単に不可能かもしれないことに気づきました...
詳細:
私はSVNリポジトリを使用している人々のチームと協力しています。私たちの多くはGitSVNの使用を開始し、現在Gitをローカルで使用するメリットを享受しており、気まぐれに分岐し、必要に応じてローカルマスターにマージしてから、SVNに戻っています。これはうまく機能します(ただし、純粋なGitソリューションのすべてのメリットを享受しているわけではありません)。
最近、マスターのリモートとしてプライベートBitBucket Gitリポジトリを使用し始めたので、他の場所との間でコードを簡単に転送できます。ワークフローは次のとおりです。
- 職場では、SVNトランクからリベース=>ローカルワークマスター。
- ローカルワークマスターからのプッシュ=>BitBucketマスター。
- 自宅では、BitBucketマスター=>ローカルホームマスターからプルします。
- 自宅でコーディング、分岐、マージ、gitを楽しんでください。
- ローカルホームブランチからマージ=>ローカルホームマスター。
- ローカルホームマスターからのプッシュ=>BitBucketマスター。
- 職場では、BitBucketマスターからローカルワークマスターにプルします。
- SVNトランクに対してリベースします。
- SVNにコミットします。
さて、いくつかのステップがありますが、それは私にとってはうまくいきます。しかし、私の同僚の多くは、同じようなことを始めたいと思っています。さらに、SVNを邪魔することなくBitBucketGitリポジトリを使用できるようにしたいと考えています。
私たちが検討している種類のもののいくつかの例:
- 私たちの1人が不在の場合、彼らは最新のコードを入手できることを望んでいます。仕事では、SVNからリベースしてから、BitBucketにプッシュして、同僚が最新のコードを利用できるようにすることができます。
- 2人で変更を共有したい場合(一方または両方が不在であると想定)、BitBucketでこのための機能ブランチを作成し、必要に応じてプッシュおよびプルすることができます。
- 満足したら、ローカルホームマスターにマージしてからBitBucketマスターにプッシュし、仕事に戻ったときにプルできるようにします。
- 仕事に戻ったら、私たちの1人がMasterをBitBucketからLocal Work Masterにプルし、SVNに対してリベースして、通常どおりdcommitすることができます。
しかし、私たちの1人がこれを行ったとすると、チームの他のメンバーはどうなりますか?BitBucketマスターからプルすると、変更が適用されます。ただし、SVNからリベースすると、変更も取得されます。
彼らが両方を行うとどうなりますか?そして、これは考えられる障害の1つにすぎません。私は他の一連のステップを考えることができます。これはすべて実際の混乱に陥る可能性があります。
残念ながら、継続的インテグレーションのワークフローは、他のビジネスと同様にSVNに関連付けられています。したがって、Git全体に移行するオプションは実際にはありません。また、社外からSVNリポジトリにアクセスすることもできません。