1. ホーム
  2. git

[解決済み] git-svn: `svn switch --relocate` に相当するものは何ですか?

2023-03-26 22:33:36

質問

git-svn でミラーリングしている svn リポジトリの URL が変更されました。

バニラ svn では、単に svn switch --relocate old_url_base new_url_base .

git-svnを使用してこれを行うにはどうすればよいですか?

設定ファイルのsvn urlを変更するだけでは失敗します。

どのように解決するのですか?

これは私の状況をよく表しています。

https://git.wiki.kernel.org/index.php/GitSvnSwitch

を使ってクローンしました。 file:// プロトコルでクローンを作成し、それを http:// プロトコルに切り替えたい場合。

を編集したくなるものです。 url の設定を編集したくなります。 [svn-remote "svn"] のセクションで .git/config というセクションがありますが、これだけではうまくいきません。一般的には、以下のような手順が必要です。

  1. svn-remote を切り替えます。 url の設定を新しい名前に切り替えます。
  2. 実行 git svn fetch . これはsvnから少なくとも1つの新しいリビジョンをフェッチする必要があります!
  3. svn-remote を変更します。 url の設定を元の URL に戻します。
  4. 実行 git svn rebase -l を実行して、ローカルなリベースを行います (最後のフェッチ操作で入ってきた変更と一緒に)。
  5. svn-remote を変更します。 url の設定を新しい URL に戻します。
  6. では git svn rebase は再び動作するはずです。

冒険好きな人は、次のことを試してみるとよいでしょう。 --rewrite-root .