Как автоматически обновить рабочую копию Subversion? - PullRequest
46 голосов
/ 28 мая 2009

Кто-нибудь знает, как я могу автоматически запустить svn update? Если у кого-нибудь есть сценарий или что-то подобное, не могли бы вы показать мне пример?

Ответы [ 5 ]

104 голосов
/ 15 октября 2010

Я использую TortoiseSVN. На рабочем сервере у меня есть запланированное задание, которое запускает следующий пакетный файл.

CD C:\Program Files\TortoiseSVN\bin\
START TortoiseProc.exe /command:update /path:"C:\www\MyRepo\" /closeonend:0

Надеюсь, это сэкономит кому-то еще время!

30 голосов
/ 28 мая 2009

Я использую SVN Notifier , который находится в системном трее и уведомляет меня каждый раз при изменении репозитория. И я очень рекомендую это. Это означает, что вы обновляетесь только тогда, когда есть что обновить!

В качестве альтернативы вы можете настроить запланированное задание / задание cron для запуска svn update в соответствующем каталоге каждый час / день / что угодно.


РЕДАКТИРОВАТЬ: ОК, посмотрите эту статью Microsoft о настройке запланированного задания.

Вам нужен командный файл с именем svnUpdate.bat или что-то похожее на это:

cd C:/path/to/your/working/copy
svn update

Получите запланированное задание для запуска этого так часто, как вам нравится (один раз в час кажется разумным)

Убедитесь, что у вас установлена ​​версия svn для командной строки (я использую SlikSvn ) и доступна в вашей переменной PATH (в окне командной строки svn), и убедитесь, что на ней написано: или аналогичный.

15 голосов
/ 28 мая 2009
@echo off

cls
echo == Initiating system instance variables...
echo. -- Setting the variables...

:: Here you need to make some changes to suit your system.
set SOURCE=C:\sauce\CURRENT
set SVN=C:\Program Files\TortoiseSVN\bin

:: Unless you want to modify the script, this is enough.

echo. %SOURCE%
echo. %SVN%
echo. ++ Done setting variables.
echo.
echo == Updating source from SVN
echo. -- Running update...
"%SVN%\TortoiseProc.exe" /command:update /path:"%SOURCE%" /closeonend:2
echo. ++ Done.

echo. -- Cleaning up...
set SOURCE=
set SVN=
echo. ++ Done.

Если вы используете TortoiseSVN, вышеприведенный пакетный скрипт подойдет. В противном случае вы можете просто изменить его, чтобы использовать тот клиент SVN, который вы используете в данный момент. Просто вставьте это в файл .bat и запустите по требованию.

4 голосов
/ 21 декабря 2010

Вы также можете загрузить и использовать Commit-Monitor из http://code.google.com/p/commitmonitor/. Он контролирует SVN-репозитории для фиксации и уведомляет пользователя, когда это происходит. Это в GNU GPL, версия 2.

1 голос
/ 28 мая 2009

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

Общие инструкции

  1. Никогда ничего не меняйте в локальном хранилище.
  2. Прочтите эту ссылку о том, как использовать AT для планирования из командной строки в Windows.
  3. Используйте команду AT, чтобы запланировать следующую команду (при условии, что у вас установлена ​​версия svn для командной строки):

    svn update reporsitory_directory

  4. Profit!

...