2008-10-08 4 views
-1

У нас есть шаблонный проект, который мы часто копируем. поэтому мы можем копировать копию и иметь общий шаблон.
Как написать автоматическую «копию, выезд, изменение и регистрацию» -script для svn

Для оптимизации «копия & начальных изменений» -процесса, я, однако, что я могу написать небольшой скрипт, который делает следующее:

  • скопировать проект-шаблон (в SVN) в другой каталог в СВН
  • выезд проект и сделать некоторые изменения (имена изменений в некоторых файлах)
  • регистрация настраиваемого проекта

T он задает вопрос: что это лучший способ сделать это? любой опыт в этом? какой тип скрипта (обычная партия или java)? любой пример кода?

спасибо за ваши ответы

ответ

0

Вот что я собрал с некоторой информацией, которую я нашел here.

#!/bin/bash 


searchterm="<ProjectName>" 
replaceterm="New Project" 
srcsvnrepo="file:///svnrepoaddress" 
destsvnrepo="file:///data/newrepo" 
dumpfile="/home/<user>/repo.dump" 
tmpfolder="/home/<user>/tmp_repo" 

svnadmin dump $srcsvnrepo > $dumpfile 
svnadmin create --fs-type fsfs $destsvnrepo 
svnadmin load $destsvnrepo < $dumpfile 
svn co $destsvnrepo $tmpfolder 

for file in $(grep -l -R $searchterm $tmpfolder) 
    do 
    sed -e "s/$searchterm/$replaceterm/ig" $file > /tmp/tempfile.tmp 
    mv /tmp/tempfile.tmp $file 
    echo "Modified: " $file 
    done 

svn ci $tmpfolder --message "Initial Check-In" 

В основном это будет свалка резервной копии указанного источника Svn репо в файл, создать новый репозиторий, загрузите резервную копию в него, проверить файлы, получить список файлов, которые содержат строку для поиска for, выполняйте регулярное выражение для каждого из этих файлов, сохраняя новую версию в временном расположении, а затем перемещайте временный файл обратно в исходное местоположение и, наконец, проверяя изменения обратно в новое репо.

Я не тестировал это полностью, поэтому может потребоваться небольшая настройка, но основные шаги должны быть правильными. Пожалуйста, дайте мне знать, если я сделал грубый просчет, и это полностью не работает.

+1

Это излишество для того, что хочет сделать оригинальный плакат. в его случае простое svn copy + svn co + svn ci должно быть достаточно – Jean 2008-10-08 15:36:10

-1

Просто сценарий оболочки будет делать.