2009-05-28 7 views
42

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

+0

Как вы относитесь к автоматическому? В какой момент должна запускаться команда обновления автоматически? –

+0

Какую операционную систему вы будете использовать для выполнения обновлений (Windows, Linux, MacOS и т. Д.)? – Elijah

+7

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

ответ

29

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

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


EDIT: OK, взгляните на this Microsoft article по настройке запланированной задачи.

Вы хотите пакетный файл с именем svnUpdate.bat или что-то, который выглядит следующим образом:

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

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

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

+1

Пакетный скрипт будет лучшим решением – 2009-05-28 08:50:59

+1

Не могли бы вы написать полный скрипт для обновления, потому что я не знаю, что нужно запускать, и не вижу ничего подобного обновлению в папке Install Installed. – 2009-05-28 08:56:05

+0

Команда 'svn update' запускает программу svn и сообщает ей об обновлении. Это не отдельная программа «обновления». В командной строке попробуйте ввести svn update для проверки работы –

1

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

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

  1. никогда ничего в локальном хранилище не меняй.
  2. Прочтите это link on how to use AT, чтобы запланировать из командной строки в окнах.
  3. Используйте команду AT, чтобы запланировать следующую команду (если у вас есть версия для командной строки SVN установлен):

    СВН обновление reporsitory_directory

  4. прибыль!

+0

Мне нужно каким-то образом запустить обновление двойным нажмите на один файл. – 2009-05-28 08:50:10

+0

Тогда вы могли бы просто создать ярлык Windows, который выполняет svn update repository_directory – Elijah

+0

Посмотрите, у меня нет файла .exe в моем каталоге хранилища, который запускает обновление. Я могу предоставить вам список всех файлов в папке моего репозитория. – 2009-05-28 09:04:08

14
@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-файл и запустите его по требованию.

+0

Это важная часть для гораздо более крупного сценария «Сборка, уничтожение и развертывание», который я написал, поэтому могут быть некоторые комментарии или эхо, которые вы можете обрезать. – varl

+0

Я должен скопировать этот скрипт в папку репозитория? – 2009-05-28 09:09:44

+0

Это хорошо, но мне нужны изменения в моем проекте (не версия SVN). – 2009-05-28 09:11:05

99

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

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

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

+0

Он сделал, спасибо! –

+0

Это сработало, отличное решение – n92

+4

Отличный ответ, спасибо. Просто добавив заметку будущим читателям, которые могут одновременно обновлять несколько каталогов, см. Мой вопрос (и ответ) здесь: http://superuser.com/a/689155/264136 – sab669

3

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

Смежные вопросы