Следуя инструкциям на https://help.ubuntu.com/community/UbuntuCloudInfrastructure , я создал небольшую среду OpenStack для juju и MAAS. Одна проблема в том, что он работает только на essex. Мне это кажется странным, так как гризли скоро придет.
Просмотр этого видео http://www.youtube.com/watch?v=bcwqvAFBQVg&t=18m47s видя, как легко Шаттлворт обновил свой essex до следующего, я попробовал этот подход, но это только что сделал ошибки конфигурации. Итак, каков подход - как я могу его легко обновить? И какие прелести использовать?
Наконец я нашел решение. Для заинтересованного я принесу свое решение здесь:
Для обновления от Эссекса до Фолсома, мы хотим использовать Облачный Архив Ubuntu. Это unfortunatly не возможно в данный момент по умолчанию в Маасе. Об этом сообщили как ошибка. Я понял это после отладки рычагов в очаровании облачного контроллера новинки, которое является одним из очарования, дающего ошибки при обновлении.
Для включения облачных репозиториев на Маасе делают следующее:
Пойдите редактирование /etc/squid-deb-proxy/mirror_dstdomain.acl
, строка 14: и измените строку
archive.canonical.com
Кому:
.archive.canonical.com
Это решает проблему, и изменяющийся openstack-orign на каждом очаровании от дистрибутива до cloud:precise-Фолсома обновит от Эссекса до Фолсома!
Да, с помощью svnadmin дамп и загрузку svnadmin.
Давайте предположим, что Вы имеете в репозитории, один с ГЛАВНЫМ пересмотром 100 и другой с ГЛАВНЫМ пересмотром 150.
Вы выводите первый репозиторий и загружаете его в новом: Вы заканчиваете с полной историей первого репозитория от пересмотра 0 к пересмотру 150.
Затем Вы выводите второй репозиторий и загружаете его в новом: это загружается своей полной историей, единственные вещи, что изменение является фактическими числами пересмотра. История второго репозитория будет представлена в новом репозитории от пересмотра 151 к пересмотру 250.
Полная история обоих репозиториев является хранителем, только изменение чисел пересмотра для репозитория, который импортируется для второго.
То же, конечно, запрашивает больше чем два репозитория.
Править: Я отправил, в то время как Вы редактировали, таким образом, я не видел Ваше примечание...
С Подверсией 1.7, Вы теперь можете сделать дампы удаленно. Таким образом, не имея доступа к локальной файловой системе и эти svnadmin dump
команда.
можно использовать svnrdump
для получения полного дампа удаленного репозитория. См. документацию для деталей синтаксиса.
Примечание, которое сервер не должен выполнять 1.7, только клиент.
http://svnbook.red-bean.com/en/1.7/svn.ref.svnrdump.c.dump.html
Можно загрузить много файлов дампа в одном репозитории со следующими шагами.
Корневой каталог хранилища:
projectA
branches
tags
trunk
projectB
branches
tags
trunk
Первый необходимо создать каталог (проект A, проект B) в корневом каталоге хранилища как это:
$ svn mkdir -m "Initial project root" \
file:///var/svn/repository_root/Project_A\
file:///var/svn/repository_root/Project_B\
file:///var/svn/repository_root/Project_C\
Revision 1 committed.
И после этого можно загрузить файлы дампа:
Использование параметр --parent-dir DIRECTORY
$ svnadmin load /var/svn/repository_root --parent-dir Project_A < file-dump-PRJA.dump
…
$ svnadmin load /var/svn/repository_root --parent-dir Project_B < file-dump-PRJB.dump
Этот способ, которым у Вас будет репозиторий, который содержит много выведенных репозиториев.
Другие ответы для этого вопроса позволили мне сделать сценарий ниже. Адаптируйте карту REPOS к своему случаю. Кроме того, можно хотеть переместить теги и ответвления в "предсовокупный" каталог в земельном участке непосредственно в новые ответвления и соединительную линию.
#!/bin/bash
NEWREPO=$(pwd)/newrepo
NEWREPOCO="${NEWREPO}_co"
DUMPS=repodumps
REV="0:HEAD"
REPOROOT=/data/svn/2.2.1/repositories/
TOOLDIR=/opt/svn/2.2.1/bin/
PATH=${PATH}:${TOOLDIR}
# Old Repository mapping
declare -A REPOS=(
[BlaEntityBeans]='(
[newname]="EntityBeans"
)'
[OldServletRepoServlet]='(
[newname]="SpreadsheetImportServlet"
)'
[ExperimentalMappingXML]='(
[newname]="SpreadsheetMappingXML"
)'
[NewImportProcess]='(
[newname]="SpreadsheetImportProcess"
)'
)
dump() {
rm -fr ${DUMPS}
mkdir ${DUMPS}
for repo in "${!REPOS[@]}"
do
local dumpfile=${DUMPS}/${repo}.dmp
echo "Dumpimg Repo ${repo} to ${dumpfile}"
svnadmin dump -r ${REV} ${REPOROOT}/${repo} > ${dumpfile}
done
}
loadRepos() {
# new big repo
rm -fr ${NEWREPO}
svnadmin create ${NEWREPO}
svn mkdir file:///${NEWREPO}/trunk -m ""
svn mkdir file:///${NEWREPO}/branches -m ""
svn mkdir file:///${NEWREPO}/tags -m ""
# add the old projects as modules
for currentname in "${!REPOS[@]}"
do
declare -A repo=${REPOS[$currentname]}
local newname=${repo[newname]}
echo "Loading repo ${currentname} soon to be ${newname}"
dumpfile=${DUMPS}/${currentname}.dmp
# import the current repo into a trmporary root position
svn mkdir file:///${NEWREPO}/${currentname} -m "Made module ${currentname}"
svnadmin load --parent-dir ${currentname} ${NEWREPO} < ${dumpfile}
# now move stuff arround
# first rename to new repo
svn move file:///${NEWREPO}/${currentname} file:///${NEWREPO}/${newname} -m "Moved ${currentname} to ${newname}"
# now move trunk, branches and tags
for vc in {trunk,branches,tags}
do
echo "Moving the current content of $vc into ${NEWREPO}/${vc}/${newname}"
svn move file:///${NEWREPO}/${newname}/${vc} file:///${NEWREPO}/${vc}/${newname} -m "Done by [110]"
done
svn rm file:///${NEWREPO}/${newname} -m "Removed old ${newname}"
done
}
dump
loadRepos