わかりましたので、現時点では、上記の説明に適合するために必要な機能を備えたプロトコルやサービスはありません (質問を編集するつもりでしたが、私のような誰かが実際にプロトタイプを実装するまでは、これはソリューションの回答として有効です) .)
この段階での良い解決策は、Node.js のような非同期サーバー システムで実行されるクラウド ベースのエディターであり (cloud9 は、必要とされるものと同様の方法で動作します)、各ユーザーとは独立してエディター レベルで同期性を維持することが可能です。ファイルのコピーへの変更。システムは苦痛なデバッグになりますが、一度動作すると
各新規ユーザーは次のことができます。 1. GIT/CVS/Mercurial アカウントでログインします。 2. 環境は最新のコードのコピーを複製します。3. その後、リアルタイムで編集し、他のユーザーの変更を確認できます。4. 次に、ファイルのコピーに含まれるコードのみに基づいてコミットとプルを行いますが、他のコミットされていない変更を表示することもできます (そのような変更は、そのようにマークする必要があり、並行編集を防ぐためにロックする必要があります。元の作者 [限られた共同プログラミング] であり、元の作者の userId でラベル付けされています。
提案されたシステムのコンポーネント:
- Node.jsサーバー(簡単)
- HTML ベースのリアルタイム同期エディター (簡単)
- ユーザーごとの GIT 統合と、同期されたファイル コピーの分離が関連付けられていると同時に、変更がリアルタイムで行われます。(そう簡単ではない)
- 2 と 3 を 1 つのシステムにマージします (変更を行います。ファイルのコピーが更新され、共通の編集環境に、行った変更と並行して、それぞれのユーザーの元のコードを含むコードのロックされたセクションが表示されます (GIT の違い)解決 GUI スタイル); 他の人が変更を加える: 私のコードは影響を受けませんが、彼らが行った変更を見ることができますが、そのコード ブロックのコピーを変更することはできません)
将来
- 同じコード ブロックへの並行変更を許可し、中央リポジトリにコミットされていないコードの各セクションのすべての異なる変更をすべてのユーザーが確認できるようにします。すべてのユーザーは、メイン コード ベースの実質的に無制限のフォークにアクセスできますが、フォークにはプロジェクト全体ではなく、ドキュメントの特定のセクションのコードのみが含まれます。
あなたがまだそれを得ていない場合、私が達成できる最も簡単な内訳. (私はこれを読み直していて、頭がぐるぐるしています) 私たちは 2 つの並行バージョン管理システムを使用しています。
- 最上位 (エディター) は、変更が行われるとそれを受け取り、関連する変更を行ったユーザーを表示しながら、すべてのユーザーがそれらを利用できるようにします。
- 第 2 レベル (従来の方法) では、各ユーザー コードの分離が維持され、ユーザーの変更が中央リポジトリにマージされるように要求された場合にのみ、変更がコミットされます。
理論的には、これが既存のシステムの仕組みですが... 他の人々がまだ編集している間にコードベースのフォークを表示する簡単な方法はありません。Github や Stash などの Web ベースのシステムを使用している場合を除きます。それでも、彼らがフォークにコミットするまでコードを見ることはできません.GITがフォークで行われた変更を解決できないほど、中央リポジトリに対して古くなっているファイルを何度も見てきました.行番号とコードが大幅に変更されたため、他の変更は既にマージされています。
とにかく、それが問題の解決策に対する私の見解です。すでに使用されている現在の非同期システムに多くの人が満足していることは知っていますが... これまでの UNI でのチームワークに関する私の経験から、説明責任を提供しながら、何らかの形式の同期編集環境が非常に必要とされています。既存の GIT/CVS/Mercurial システムによって提供されます。