2009-06-10 12 views
5

私は最近、gitの飛び込みを取ることに決めました。Windows上でさえ、gitを使って本当に楽しんでいます。gitとsubversionは一緒にすごく遊べますか?

私の現在のオープンソースプロジェクトlives on subversionは、すべての開発者がSubversionに精通していますので、今はSubversionを「真実のソース」として保管したいと思います。

しかし、私はgitを使いたいので、git svnを使ってソースon githubのコピーを作成しました。私のすべての仕事はギタブのソースに対して行われ、私は自分の変更をギタブにプッシュします。数日おきに私はsvnとrebaseに私の変更をプッシュします。

最初のインポートはうまくいくようでしたが、今は "git svn rebase"を実行するたびに、私はgetリポジトリで変更されていないファイルでもコンフリクトを取得し続けます。これは私にmuch painを引き起こしています。

例:

 
$ git svn rebase 
First, rewinding head to replay your work on top of it... 
Applying: Added git ignore file 
c:/Users/sam/Desktop/MediaBrowserGit/trunk/.git/rebase-apply/patch:12: trailing 
whitespace. 
*/obj/* 
error: .gitignore: already exists in index 
Using index info to reconstruct a base tree... 
:12: trailing whitespace. 
*/obj/* 
warning: 1 line adds whitespace errors. 
Falling back to patching base and 3-way merge... 
Auto-merging .gitignore 
CONFLICT (add/add): Merge conflict in .gitignore 
Failed to merge in the changes. 
Patch failed at 0001 Added git ignore file 

When you have resolved this problem run "git rebase --continue". 
If you would prefer to skip this patch, instead run "git rebase --skip". 
To restore the original branch and stop rebasing run "git rebase --abort". 

rebase refs/remotes/git-svn: command returned error: 1 

私の質問:

  1. 私はソースとしてSVNを使用して、SVNで自分自身を同期するためにgitを伝えることができますので、私は白紙の状態で始めることができますどのような方法があります。 (最新のものをエクスポートし、変更をチェックインして、どこかのsvnのリファレンスをリセットする)

  2. このシナリオを一貫して動作させるヒントはありますか?

  3. core.safecrlf and core.autocrlfオプションをtrueに設定する必要がありますか?私はフープジャンプのビットが必要になりますようです。

関連:

行末を得ることは右の黒魔術のビットであるようです。

(私はこの質問はおそらく拡大する必要があることを実感、拡大する必要がある場所にコメントしてください)

答えて

2

あなたは行末競合を取得していますか? Gitには、行末の文字をどのように処理するかを変更できるように設定できるいくつかの設定プロパティがあります。私は、次のセットがあります。私は窓の午前

# this makes git NOT attempt to convert line endings on commit and checkout 
core.autocrlf=false 

# this makes git check if the conversion done by autocrlf would be reversible 
# this is probably not required because I do not have autocrlf turned on 
core.safecrlf=true 

注意を、すべての私の同僚は、Windows上で、私はのgit - SVNを通じてSVNとのインターフェースをしています。これらの設定は私のためのトリックをするようです。

alt text http://www.codinghorror.com/blog/images/works-on-my-machine-starburst.png

+0

時々...ものはあまり迷惑終わる行は、私を得るものは非行末競合している「紛争を終了スケルチXXXライン」の線に沿って何かを言っているようです。私は決してそれに触れなかったとき、ファイル全体が紛争状態にあると言います... –

+0

あなたが行末の競合を起こしているように聞こえる - ファイル全体が不一致の場合は、おそらく何かがすべての行末を変更したためです –

+0

行末、git、svn、およびWindows上の相互運用性に関するベストプラクティスは何ですか? –

関連する問題