消えた Web ページで部分的な解決策を見つけ、コメントで改善されたバージョンも見つけましたが、少しクリーンアップして他の人にも提供したかったのです。
IP アドレスは架空のものであり、ローカル設定に合わせて調整する必要があります。
スクリプトは、SVN によって管理され、古い場所を使用するすべてのディレクトリを反復処理し、それぞれの場所にsvn switch
relocate オプションを指定してコマンドを呼び出します。
#!/bin/bash
OLD_REPO=http://127.0.0.1/svn/
NEW_REPO=http://192.168.0.17/svn/
for dir in `ls -1 */.svn/entries | xargs grep -H -l $OLD_REPO | grep -E -o ^[^\/]+`; do
echo Switching sandbox $dir from $OLD_REPO to $NEW_REPO;
OLD_ROOT=`svn info $dir | grep ^Repository\ Root | cut -f 3 -d ' '`
NEW_ROOT=`echo $OLD_ROOT | sed "s|$OLD_REPO|$NEW_REPO|"`
svn switch --relocate $OLD_ROOT $NEW_ROOT $dir;
done
移動中にユーザーも変更したい場合は--username $USERNAME
、コマンドにパラメーターのようなものを追加$USERNAME
し、スクリプトの先頭で を定義するのは簡単です。