2009-05-22 13 views
4

私はgitで家で遊んでいましたが、ローカルコミットという考えが本当に好きです。潜在的に壊れたコードを全員に広げることなく、より小さな変更をコミットできることは、より頻繁なコミットのために小さな変更を元に戻すことができるだけでなく、良いことです。SVN + Visual Studio環境でGitをローカルで使うにはどうすればいいですか

私はgit-svnコマンドについて読んできましたが、どのように動作するのか完全に分かりません。私たちはVisual Studio 2008プロジェクトを作業し、VisualSVNを実行して、ファイル名の変更、移動などをIDE内から処理します。

私が知りたいことは:私はローカルのgitリポジトリにコミットすることも可能ですが、リモートのSVNリポジトリにコミットすることも可能ですか? VisualSVNの変更をIDE内から追跡してコミットしておきたいのですが、gitを使って一時的に変更を保存することもできます。彼らは互いのやり方でやり取りしそうですか?

答えて

1

私はgit-svnを使ってリモートリポジトリから「更新」していますが、svnリポジトリにコミットするためにgit-svnを使っていないので、その部分についてはお手伝いできません。あなたは何

は、デフォルトですべての設定で、シンプルです:

>git svn init <url......> 
>git svn fetch 

あなたは、それが「のgit - のsvn」と呼ばれる「リモート」の枝にそれを取り出すことを行う

>git merge git-svn 

あなたが実際後にgit-svnのを使用している場合は、いくつかの問題に遭遇することがあります。あなたの現在のブランチにマージするには 。私が言っていることは:svnを使ってプロジェクトをチェックアウト済みで、ローカルの作業svnディレクトリにgitリポジトリを作成したことです。次に、その上にgit-svnを使います。私が対処しなければならなかった

2つの問題:

  1. 行末。 svnは、行末をウィンドウに変換することがありますが、は、それらをUNIXスタイルに保存します。だから、ラインの終わりの違いのために、たくさんの矛盾が生じるかもしれません。

    だから(SVNのレポで使用されているもののラインエンディングに応じて、またはウィンドウ)すべてのUNIXへのファイルに行末を変換するためのツールを使用して、確かに。

  2. svnキーワード展開。例えば$Id$

    git-svnsvnますが、これらのキーワードを展開しません。だからそこにも葛藤があるだろう。ここでも、たったの$ Idを$ `

2

美しく動作します。頑張れ。あなたの.gitフォルダをsvnにチェックインしないでください。

編集:erm、私がそれをするとき、私はgit-svnで気にしません。私はsvnのローカル作業ディレクトリを他のディレクトリと見なしています。以前のSVNの履歴についてはあまり気にしません。

+0

クール、私は一種のgitのに以前のSVNの歴史を取得したいのですが、それはないですし$Id .......crap.....$のすべてのインスタンスを変換するツールを使用する(またはスクリプトを書きます)合意を壊すもの。 –

関連する問題