私はレガシーsvnリポジトリを使用しています。gitただし、ローカルマシンでのメリットを享受したいと思います。
- 最初のオプションは、現在のリポジトリのルートであり、コードを記述し、ローカル( )とリモート( )
git initでコードを個別にコミットします。git commitsvn commit - 2番目のオプションはです
git-svnが、新しいツールのニュアンスを学ぶのに苦労する価値があるかどうかはわかりません。
これについてはどうすればよいですか?
私は非常に強く支持したいと思いgit-svnます。私自身と私の同僚の何人かは、Subversionのものの上にGit再現を使用しようとしましたが、それは痛みと恐怖からなるプロセスです。
確かに、これはSubversion1.6.x用です。ディレクトリが1つしかないので、1.7.xの方が良いと思います.svn。
リポジトリから更新するには、Subversionから更新をプルしてから、Gitでコミットする必要があります。それは遅くて退屈です(確かにそれはかなり遅いgit-svnですが、少なくともそれはプロセスを自動化します)。
さらに、Subversionを使用してすべてのコミットをダウンロードして手動でGitにコミットするか、Subversionコミットの束をGitリポジトリにコミットすることに$deityなり、Gitコミット間のSubversionリビジョンで作業する場合に役立ちます。
Gitは空のディレクトリを処理できません。Subversionでは、ディレクトリの形式に空のディレクトリが必要です.svn。つまり、.svnリポジトリをGitリポジトリの外部に保持する必要があるため、git checkout操作には個別のが必要になりますsvn up。
お気づきのように、すべてを個別にコミットする必要があります。
したがって、SubversionとGitを別々に使用すると、GitとSubversionの両方でほぼすべての操作を実行する必要があります。つまり、すべてに時間がかかり、両方のシステムのすべての欠点がありますが、どちらも互いの利点をうまく乗り越えています。
git-svnを使用してください、それは本当に簡単です。最初にリポジトリのクローンを作成してから、最新の変更で作業またはそれgit svn cloneを実行できます。ローカルブランチをマスターにリベースして、それらをとマージできるようにすることで、履歴が常に線形であることを確認してください。git svn dcommitgit svn rebasegit merge --ff-only
git最善の方法は、SVNに移行して破棄することです。
ただし、それがオプションでない場合は、を使用してgit-svnください。
git / svnに個別にコミットする場合、SVNにコミットすることは非常にまれであり、他の開発者が巨大なコミットを行うことになります。