Как я экспортирую (и затем импортирую), репозиторий Подверсии?

Функция JavaScript btoa () может использоваться для преобразования данных в кодированную в base64 строку

80
задан Braiam 9 July 2016 в 15:02
поделиться

8 ответов

Если Вы захотите переместить репозиторий и сохранить историю, Вам, вероятно, будет нужен доступ к файловой системе на обоих хостах. Простое решение, если Ваш бэкенд является FSFS (значение по умолчанию на последних версиях), должно сделать копию файловой системы всей папки репозитория.

, Если у Вас есть бэкенд DB Berkley, если Вы не уверены в том, что Ваш бэкенд, или если Вы изменяете номера версий SVN, Вы собираетесь хотеть использовать svnadmin, чтобы вывести Ваш старый репозиторий и загрузить его в Ваш новый репозиторий. Используя svnadmin dump даст Вам единственное резервное копирование файлов, которое можно скопировать в новую систему. Тогда можно создать новый (пустой) репозиторий и использование svnadmin load, который по существу воспроизведет все фиксации наряду с его метаданными (автор, метка времени, и т.д.).

можно читать больше о процессе дампа/загрузки здесь:

http://svnbook.red-bean.com/en/1.8/svn.reposadmin.maint.html#svn.reposadmin.maint.migrate

кроме того, если Вы делаете svnadmin load, удостоверяется, что Вы используете --force-uuid опция, или иначе люди собираются иметь проблемы при переключении на новый репозиторий. Подрывная деятельность использует UUID для идентификации репозитория внутренне, и это не позволит Вам переключить рабочую копию на различный репозиторий.

, Если у Вас нет доступа к файловой системе, могут быть другие сторонние опции там (или можно записать что-то) чтобы помочь Вам мигрировать: по существу необходимо было бы использовать журнал svn, чтобы воспроизвести каждый пересмотр на новом репозитории, и затем согласовать метаданные впоследствии. Вам будут нужны pre-revprop-change и сценарии рычага post-revprop-change на месте, чтобы сделать это, какой вид принимает доступ к файловой системе, таким образом, YMMV. Или, если Вы не хотите сохранять историю, можно использовать рабочую копию для импорта в новый репозиторий. Но надо надеяться это не имеет место.

66
ответ дан bahrep 24 November 2019 в 09:56
поделиться

Можно также использовать svnsync. Это только требует доступа только для чтения на исходном репозитории

[еще 110] в svnbook

9
ответ дан bahrep 24 November 2019 в 09:56
поделиться

Выборка от моего Blog-Note-to-myself
Теперь, можно импортировать файл дампа, например, если Вы мигрируете между машинами / версии подрывной деятельности. например, если я создал файл дампа из исходного репозитория и загружаю его в новый репозиторий как показано ниже.

CmdShell> svnadmin dump D:\CoderZone2\svn-repos > ReposDump.dmp
CmdShell> svnadmin load D:\CoderZone\svn-repos < ReposDump.dmp
7
ответ дан Gishu 24 November 2019 в 09:56
поделиться

Инструмент, чтобы сделать, который был бы

svnadmin dump

, Но для этого для работы Вам нужен доступ к файловой системе к репозиторию. И как только у Вас есть это (и если репозиторий находится в формате FSFS), можно просто скопировать репозиторий в его новое местоположение (если это находится в формате BDB, дамп/загрузка настоятельно рекомендуется).

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

5
ответ дан pilif 24 November 2019 в 09:56
поделиться

Можно также использовать эти svnadmin hotcopy команда:

svnadmin hotcopy OLD_REPOS_PATH NEW_REPOS_PATH

Это берет полное резервное копирование из репозитория, включая все рычаги, конфигурационные файлы, и т.д.

[еще 112] в Книге

SVN
4
ответ дан bahrep 24 November 2019 в 09:56
поделиться

Принятие Вас имеет необходимые полномочия выполнить svnadmin, необходимо использовать дамп и загрузка команды.

3
ответ дан Dan Dyer 24 November 2019 в 09:56
поделиться

Вы могли бы найти некоторую справку при миграции репозиториев SVN в Глава 5. Администрация репозитория, Перемещая репозиторий .

Этот подход требует доступа к svnadmin.

2
ответ дан Peter Mortensen 24 November 2019 в 09:56
поделиться

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

Например, вы можете сделать:

char* str = "Hello";
char dest[12];

strcpy( dest, str );
strcat( dest, ".txt" );
-121--1293999-

Начнем с определения некоторых терминов, так что мы все говорим об одном и том же.

Основными операторами являются постфикс «x++» и «x--», оператор доступа к члену «x.y», оператор вызова «f (x)», оператор отмены привязки массива «a [x]», а также новые, типизированные, по умолчанию, установленные, снятые и делегированные операторы.

Унарные операторы : «+ x», «-x», «~ x», «! x», «+ + x», «--x» и «(T) x».

Первичные операторы по определению имеют более высокий приоритет, чем унарные операторы.

Ваш вопрос

есть ли ситуация, когда x++, имеющий тот же уровень приоритета, что и++ x, приведет к тому, что выражение вернет неправильный результат?

Мне совершенно не ясно, что вы имеете в виду логически под «неправильным результатом». Если мы изменим правила приоритета путь, что значение выражения изменится, то новый результат будет правильным результатом . Правильный результат независимо от правил , правильный результат . Это - то, как мы определяем «правильный результат» - правильный результат - то, что вы получаете, когда вы правильно применяете правила.

Мы стараемся настроить правила так, чтобы они были полезными и облегчили выражение значения, которое вы намереваетесь выразить . Это то, что вы имеете в виду под «неправильным результатом»? То есть, вы спрашиваете, есть ли ситуация, когда интуиция человека о том, что правильный ответ был бы неверным?

Я считаю, что если это так, то это не является полезным углом для преследования, потому что почти никто не интуиция о «правильная» работа операторов приращения фактически соответствует текущей спецификации, а тем более некоторой гипотетической контрфактуальной спецификации . Почти в каждой книге C #, которую я редактировал, автор каким-то тонким или грубым путем неправильно изложил значение операторов приращения.

Это побочные операции с необычной семантикой, и они выходят из языка - C - с намеренно расплывчатой оперативной семантикой. Мы много старались в определении C # сделать операторы приращения и уменьшения разумными и строго определенными, но невозможно придумать что-то, что имеет интуитивный смысл для всех, так как у всех разный опыт работы с операторами в C и C++.

Возможно, было бы полезно подойти к проблеме под другим углом. Ваш вопрос предполагает контрфактуальный мир, в котором постфикс и префикс++ указаны как имеющие одинаковый приоритет, а затем просит критиковать этот дизайн выбора в этом контрфактуальном мире. Но есть много разных способов, которые могут произойти. Мы можем сделать так, чтобы они имели одинаковый приоритет, поставив оба в «первичную» категорию.Или мы можем сделать так, чтобы они имели одинаковый приоритет, поставив их обоих в «унарную» категорию. Или мы можем изобрести новый уровень приоритета между первичным и унарным. Или ниже унарного. Или выше первичного. Мы также можем изменить ассоциативность операторов, а не только их приоритет.

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

Внесите конкретное предложенное изменение конструкции, и мы посмотрим, каковы его последствия.

-121--3579157-

Если у вас нет доступа к файлу репозитория, я предпочитаю rsvndump (удаленный дамп репозитория Subversion), чтобы сделать файл дампа.

5
ответ дан 24 November 2019 в 09:56
поделиться
Другие вопросы по тегам:

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