2014-02-07 3 views
2

Мне нужно выполнить несколько процессов обновления SVN в фоновом режиме в одной структуре папок, так как у меня много подпапок и вы хотите ускорить все.Процесс обновления параллельного SVN

У меня есть структуру папок, как это:

/folder/subfolder1/ 
/folder/subfolder2/ 
/folder/subfolder3/ 
... 
/folder/subfolder1000/ 

Я пытаюсь сделать что-то подобное в Баш скрипт:

svn up /folder/subfolder1 & 
svn up /folder/subfolder2 & 
svn up /folder/subfolder3 & 

Проблема заключается в том, что SVN жалуется «/ папка» является заблокирован и только первая задача закончена, другие две не имеют и получили сообщение об ошибке:

svn: Working copy '/folder' locked 
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details) 

Есть ли там способ выполнить задачу таким образом с помощью нескольких параллельных SVN-процессов, потому что для создания одной папки (выбранной каким-то другим процессом) требуется много времени для завершения?

P.S: Я делаю все это на более высоком языке программирования (PHP-CLI), но для простоты вопроса я пишу его как скрипт bash (получил такую ​​же проблему).

+0

Какова ваша 'svn -version'? – janos

+0

svn, версия 1.6.11 (r934486) – mikikg

ответ

2

В старых версиях Subversion каждый подкаталог имел свой собственный файл .svn. Если ваш svn достаточно стар, и вы запускаете команды в подкаталогах, то я думаю, что это не будет блокировать родительский каталог, и команды могут быть успешными параллельно. Как это:

(cd /folder/subfolder1; svn up)& 
(cd /folder/subfolder2; svn up)& 
(cd /folder/subfolder3; svn up)& 

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

+0

Это швы для работы при cd-ing в подпапке! Будут делать некоторые будущие тесты, и если все будет хорошо, ответ будет принят;) Tnx много – mikikg

+1

Я заглянул в журнал изменений для этой проблемы и швов, связанных с этим: http://mail-archives.apache.org/mod_mbox /subversion-commits/201007.mbox/%[email protected]%3E «Научите код управления хранением данных FSFS, чтобы последовательно ожидать найти в родительском каталоге хэши не указатели на их непосредственные дети , но указатели на файлы заблокированы где-то под ними ». – mikikg

+0

@mikikg приятно, это хорошо знать – janos

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