Подверсия / Черепаха: Строка замены во всех репозиториях?

Кто-то знает изящный способ заменить строку во всех репозиториях Подверсии?

Что-то как: Поиск "Facebook" и замены это "Твиттером"? Или единственное возможное решение состоит в том, чтобы проверить все проекты, изменить его и фиксировать его снова?Спасибо за помощь.

1
задан 15.03.2010, 11:07

2 ответа

Joril, это изменит все изменения в репозитории. Я думаю, что это не корректное решение.

Я предлагаю следующий сценарий. Принятие Вас имеет список URL репозитория в файле простого текста repolist.txt

#!/bin/sh

# List of repository URLs
repolist=`cat repolist.txt` 
# Root for temporary working directories
wdroot="wd" 
# Source filenames regexp for find(1)
fname='.*\.(txt|java|xml)' 
# Search/replace strings
oldstr="Twitter"
newstr="Plurk"
# SVN commit message
comment="replaced $oldstr by $newstr"

mkdir -p $wdroot
cd $wdroot
for repo in $repolist; do
    echo Repository: $repo
    wd=`basename $repo`
    echo ... checkout
    svn co $repo $wd
    echo ... search and replace
    find $wd -regextype posix-egrep -regex $fname | xargs sed -i "s/${oldstr}/${newstr}/g"
    echo ... checkin
    ( cd $wd; svn ci -m "$comment" . )
done
1
ответ дан 12.12.2019, 10:44

Возможно, Вы могли попробовать что-то как:

  • svnadmin выводят REPOS_PATH> dumpfile
  • sed s/Facebook/Twitter/dumpfile
  • svnadmin создают new_repo
  • кошка dumpfile | svnadmin загружает NEW_REPOS_PATH

Конечно, необходимо сделать это для каждого проекта.

2
ответ дан 12.12.2019, 10:44

Теги

Похожие вопросы