2

sourceforge でホストされている svn リポジトリを操作するために git-svn を使用していました。最近、sourceforge プロジェクトを更新した結果、svn リポジトリが変更されました。正確には、新しい svn リポジトリは svn+ssh を使用してアクセスできるようになり、古いリポジトリは読み取り専用になりました。

ここで、ローカルの git-svn クローン ディレクトリで、.git/config を更新して、以前の URL を新しい URL に更新しました。ただし、git svn info または git svn rebase を実行すると、次のエラーが表示されます。

さらに、次のコマンドを使用して新しい git-svn クローンを作成しました。ギット

このクローンは正常に動作し、問題はありません。ただし、参照は古いクローンとは異なります。

複雑にするために、私は github に git リポジトリを維持しており、変更が sourceforge svn にコミットされたら (歴史的な理由から) プッシュします。これはすべて、以前の sourceforge svn url で機能していました。しかし、更新されたリポジトリでは、参照がすべてめちゃくちゃになりました。つまり、github のリポジトリと一致しません。

もちろん、「git push -f」を実行して参照を更新することはできますが、誰かが参照を修正することについて何か考えやアイデアを持っているかどうか知りたいと思っていました。

ありがとう!

4

1 に答える 1

1

git svnsvn リポジトリのルート URL は、そのリポジトリにアクセスするだけではありません。また、svn ブランチを決定するためにも必要であり、(少なくともデフォルトでは) URL がコミット メッセージに含まれます。後者の理由は、新しいクローンがすべてのコミットを異なるものとして表示する理由です。

ただし、新しい URL を使用して実際にリポジトリにアクセスしながら、他の目的で古い URL を引き続き使用するように構成できます。rewriteRootファイルの svn-remote セクションに項目 を追加し、.git/configそれを svn リポジトリの古い URL に設定するだけです。これにより、svn から更新を引き続き取得できるようになります。

于 2013-03-05T02:29:10.487 に答える