私の会社には Subversion サーバーがあり、全員が自分のマシンで Subversion を使用しています。ただし、git を使用して変更をローカルにコミットし、準備ができたら「プッシュ」したいと考えています。
ただし、次の状況で何が起こるか理解できません。ローカルで 3 つの git コミットを行い、Subversion サーバーにすべてを「プッシュ」する準備ができたとしましょう。私の理解が正しければ、git svn dcommit
基本的にはサーバー上で 3 つのコミットを連続して行うべきではないでしょうか。しかし、その間 (たとえば 2 回目と 3 回目のコミットの間) に別の同僚がコミットを発行した場合はどうなるでしょうか? 私が考えることができるシナリオは次のとおりです。
1)コミット中にSubversionサーバーをgitの「ロック」する(それは可能ですか?)私のコミットはアトミックに行われ、私の同僚のコミットは私の後に行われます
2) サーバー上のコミット履歴は mine1-mine2-other-mine3 になります (同僚がその時点で更新された作業コピーを持っていないため、「その他」が失敗したとしても)。
#2だと思いますが、おそらくコミット速度が非常に速いため、これが問題になることはめったにありません。では、1位と2位はどっち?