web-dev-qa-db-ja.com

TortoiseGitを使用してSVNリポジトリとやり取りする手順

私はWindowsでTortoiseSVNを何年も使用しており、自分のプロジェクトではローカルファイルシステムリポジトリを使用しています。私はプロジェクトの1つで友人とのコラボレーションを開始する予定で、リポジトリを自分のWebサイトに移動します。 「git beats SVN!」をたくさん読みました。過去数年にわたって投稿し、私は少なくとも大騒ぎが何であったかを見るためにすべきであると考えました。一部の調査では「git svn」コマンドが表示され、TortoiseGitはある程度のgit-svnサポートがあると主張しています。私はSVNリポジトリを維持し、リポジトリにコミットする前にgitでローカルコミットまたはブランチを行うというアイデアが気に入っています。 "shelve"コマンドも便利に聞こえます。

残念ながら、多数のCLI git-svnチュートリアルがありますが、TortoiseGitには何もありません(確かに、まだ初期の開発段階にあるようです)。その結果、これらの部品を連携させるために必要なワークフローを把握しようとして問題が発生しています。

D:\ Projects\repositories\MyProjectにSVNリポジトリがあります。 D:\ Projects\temp\gittestを作成し、リポジトリのTortoiseGit "Git Clone"を実行しようとしました。そこから、trunk/branches/tagsフォルダー(リポジトリの標準的なレイアウトにすぎません)の場所を指定しようとして問題が発生しました。チェックを外した場合にのみ、有用な結果を得ることができました。 gitリポジトリを正しく開始したように見えたときに、いくつかの変更を加えてgitコミットをいくつか実行できましたが、SVN DCommitの実行に問題がありました。

したがって、私は誰かが、TortoiseGitを既存のSVNリポジトリ(ローカルファイルシステムまたはリモートサーバー上のリポジトリ)で正しく使用する方法について、かなり詳細な手順を提供できることを望んでいます。 「SVNを使用しないでください!」応答してください-私はこれら2つの部分を連携させる方法を学ぶことに興味があります。 TortoiseGitのSVNサポートがこの作業を行うのに十分成熟していないと感じた場合、それも有用な情報になります。

ありがとう!

41
markerikson
  1. ディレクトリを作成する
  2. 右クリック、「Git Clone ...」
  3. 「SVNリポジトリから」を有効にして、その他の設定をすべて選択します
26
StefanPapp

更新:書かれたとおりに質問への回答を待機します(「友達と共同作業を開始する予定です...」)。あなたはSubversionを維持したいと思っています/私はむしろ気に入っています my git-svn workflow

Git-svnが存在する唯一の理由は、既存のSubversionインフラストラクチャと一緒にGitを使用できるようにするためです。基本的にインフラストラクチャーがないので、Gitに完全に切り替えるだけでは意味がありません。 git-svnはsvnより優れていますが、可能な限り回避する必要があります。

git svn clone -s --no-metadata <path_to_svn>その後、svnがあったことを忘れてください。

9
dahlbyk

これはおそらく今では明白ですが、tortoisegitにはgit-svnのサポートが組み込まれています。

8
JBCP

それは以前に言及されました-正しい答えとしてここに置くだけです:)

TortoiseGitにはSVNのサポートが組み込まれているため、問題なく動作するはずです。

3
getack

通常のGitクライアントとしてではなく、統合SVNサポートなしでTortoiseGitを使用してみることができます。これを機能させるには、SVNリポジトリに SubGit をインストールします。

以下に、SubGitをセットアップする基本的な手順をいくつか示します。

$ subgit configure SVN_REPOS
# Adjust SVN_REPOS/conf/subgit.conf to specify your branches and tags
# Adjust SVN_REPOS/conf/authors.txt to specify git & svn authors mapping
$ subgit install SVN_REPOS
...
$ INSTALLATION SUCCESSFUL

インストール後、SVN_REPOS/.gitでGitリポジトリーを見つけて、通常のGitリポジトリーと同様に操作できます。すべてのgit Push TortoiseGitによって実行され、受信変更をSVNリポジトリに複製する受信前フックと受信後フックをトリガーします。

詳細は SubGitドキュメントgit-svn の比較ページを参照してください。

バージョン2.0以降(投稿の時点ではまだリリースされていません)、SubGitでは、異なるホストにあるSubversionとGitリポジトリを同期できます。

SubGitは商用ツールですが、最大10人のコミッターがいるリポジトリや、オープンソースプロジェクトや学術プロジェクトでは無料です。

免責事項:私はSubGit開発者の1人です。

1
vadishev

私は http://msysgit.github.com/ からmsysgitを使用して、セキュリティ証明書と他のコマンドプロンプトオプションを受け入れる必要があるSubversionリポジトリからプルできるようにしました。コードがプルされると、TortoiseGitをほとんどの機能に使用できるようになります(svn Push AFAIRを除く)

1
Hara Hara

参考までに: SourceTree for Windows は、バージョン1.4以降からgit-svn(およびhgsubversion)をサポートする予定です。対応する問題は SRCTREEWIN-119 です。

0
cimnine

svn access をサポートするgithubにプロジェクトを置くことができるかもしれません。したがって、TortoiseSVNを引き続き使用して、他のユーザーと共同作業することができます。一方、gitの代わりにSVNを介してコラボレーションするには、sourceforgeなどを使用できます。ところで、なぜgit svn clone URLOfTheSVNReposを使用せず、後で代わりにgit commitを実行するのですか。

0
khmarbaise