2011-07-19 8 views
4

git-svnを使用してsvnトランクに接続しています。これを行うことによって、私は最初にセットアップ私のレポ:私はかなりしばらくの間、この設定を持っていた(多分近い年まで)との問題を持っていなかったGit:HEAD履歴から上流のSVN情報を確認できません

git svn clone -s http://domain.com/svn/name-of-repo 

、私はすべてがローカル上にあるため、最も可能性が高いですgitブランチ、私は最終的に私のマスターブランチに合流し、svnトランクにコミットします。

最近、同じsvnリポジトリ内の別のブランチにいくつかの変更をコミットする必要がありました。http://domain.com/svn/name-of-repo/branches/demo

私は.git/configファイルを編集し、これらの行を追加することで、一度その枝からフェッチすることができました:

[svn-remote "svndemo"] 
    url = http://domain.com/svn/name-of-repo/branches/demo 
    commiturl = http://domain.com/svn/name-of-repo/branches/demo 
    fetch = :refs/remotes/git-svn-demo 

は、その後、私はリビジョン4034で始まる、デモ枝をつかむために、次のコマンドを実行しました:

git svn fetch svndemo -r 4034 

ここで私はremotes/git-svn-demoという新しいリモートブランチを持っています。それから、私は機能ブランチを作成しました:

git checkout -b svndemo-local remotes/git-svn-demo 

私が必要なものをつかんだので、私はGitのSVNが& &のgitのsvnリベースをフェッチ」を実行しようとし、その後、私の地元のブランチにコミットし、私がしなければならなかったの変更をしたこと"作業ツリーの履歴から

を上流SVN情報を決定することができません

そして、私は立ち往生午前ところそれは次のようになります。どちらも、エラーが返されました。私はSOや他のサイト(Google)を見てきましたが、 "git-svn repoをもう一度クローンしてからやり直してください。

私は自分の.git/svn/refs/remotes/git-svn-demo/unhandled.logを見て、それを私の.git/svn/refs/remotes/trunk/unhandled.logと比較しました。それほど大きな違いはありません。

また、このリモートブランチの最初のフェッチから来たコミットメッセージを見て、そこにgit-svn-id情報が含まれています。私は大好きですhttp://domain.com/svn/name-of-repo/branches/[email protected] e6edf6fb-f266-4316-afb4-e53d95876a76

何とか何とか何とか、これはコミットメッセージ、何とか何とか何とか

のgit-svnの-IDですこの1つについて新鮮なアイデアを聞く。

答えて

1

svnブランチにアクセスするには、新しいsvnリモートを追加する必要はありません。あなたは-sを使用してのgitのsvnクローン(標準)を設定している場合は、オプションのgitはまた、枝の下で定義されたすべてのブランチを追跡しました。

あなたは(この場合は分岐デモで)git branch -rと、それらの枝を見ることができるはずです。

あなたがそれをチェックアウトすると、それに取り組むことができ、svn dcommitすることができます。

svn-remoteを変更するとリポジトリが壊れているかどうかわかりませんが、あなたのところでは元のクローンコマンドでやり直してしまいます。

+0

svn-remoteを追加しても、肯定的または否定的なことはありませんでした。現時点では、リモートブランチ "git checkout -b demo-local remotes/demo"からチェックアウトできるようになり、デモローカルはリモートブランチを追跡するように見えますが、私がリベースしたり、そのデモにマージするとローカルブランチでは、 "remotes/trunk"のトラッキングに戻ります。ちょうど混乱している、私はこれまで私が使用したワークフローであることを覚えていない。 – Carl

関連する問題