“Mark” экспорт SVN с пересмотром

Я думаю, что вставка более эффективна почти во всех случаях, когда вы генерируете данные (т.е. их еще нет в списке).

Приоритетная очередь - не единственный вариант для вставки. Как уже упоминалось в других ответах, бинарное дерево (или связанное с ним RB-дерево) одинаково эффективно.

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

5
задан Peter Mortensen 10 December 2017 в 20:30
поделиться

3 ответа

Единственное, что вы можете сделать, - это убедиться, что вы экспортируете из известной ревизии, и записать этот номер ревизии в текстовый файл при экспорте. Команда svnversion сообщит вам номер версии рабочего каталога. Поэтому выполните svn update , чтобы получить последнюю версию, затем svn export в место развертывания, затем svnversion , перенаправив вывод в текстовый файл в том же месте. как экспорт. Номер ревизии будет ревизией на момент обновления, даже если с тех пор кто-то зафиксировал новый код.

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

3
ответ дан 14 December 2019 в 19:23
поделиться

Вы также можете выполнить обновление svn , а затем экспорт svn из этой локальной копии. Преимущество этого заключается в том, что Subversion будет использовать «rsync» (или любой другой алгоритм, который он использует) для обновления только тех файлов, которые были изменены. А затем вы просто экспортируете из своей локальной копии, экономя пропускную способность и сохраняя всю информацию репозитория с вашей локальной кассой.

Создайте два каталога, один для оформления заказа, а другой для экспорта, затем разверните с помощью двухэтапного процесса:

svn update /path/to/repository checkout/project
svn export checkout/project export/project
0
ответ дан 14 December 2019 в 19:23
поделиться

Вы можете выполнить svn info / path / to / repository непосредственно перед (или после) экспортом, но вам придется заблокировать, чтобы убедиться, что не было сделано никаких изменений.

В качестве альтернативы можно использовать метод, описанный в вашем комментарии, и пропустить сценарий оболочки, например:

svn export /path/to/repository | grep ^Exported > revision.txt

или

svn export /path/to/repository | tail -l > revision.txt
2
ответ дан 14 December 2019 в 19:23
поделиться
Другие вопросы по тегам:

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