Apache Subversion - Википедия - Apache Subversion

Apache Subversion
Subversion Logo.svg
Оригинальный автор (ы)CollabNet
Разработчики)Фонд программного обеспечения Apache
изначальный выпуск20 октября 2000 г.; 20 лет спустя (2000-10-20)
Стабильный выпуск
1.9.x1.9.12 / 25 июля 2019; 16 месяцев назад (2019-07-25)[1]
1.10.x1.10.6 / 25 июля 2019; 16 месяцев назад (2019-07-25)[1]
1.12.x1.12.2 / 25 июля 2019; 16 месяцев назад (2019-07-25)[1]
1.13.x1.13.0 / 30 октября 2019; 13 месяцев назад (2019-10-30)[1]
1.14.x1.14.0 / 27 мая 2020 г.; 6 месяцев назад (2020-05-27)[1]
[±]
Репозиторий Отредактируйте это в Викиданных
Написано вC
Операционная системаКроссплатформенность
ТипКонтроль версий
ЛицензияЛицензия Apache 2.0
Интернет сайтподрывная деятельность.apache.org Отредактируйте это в Викиданных

Apache Subversion (часто сокращенно SVN, после имени команды svn) это версия программного обеспечения и контроль версий система распределена как Открытый исходный код под Лицензия Apache.[2] Разработчики программного обеспечения используют Subversion для поддержки текущих и исторических версий файлов, таких как исходный код, веб-страницы и документация. Его цель - стать в основном совместимым преемником широко используемых Система одновременных версий (CVS).

В Открытый исходный код сообщество широко использовало Subversion: например, в таких проектах, как Фонд программного обеспечения Apache, Free Pascal, FreeBSD, SourceForge, а с 2006 по 2019 гг. GCC. CodePlex ранее был обычным хостом для репозиториев Subversion.

Subversion была создана CollabNet Inc. в 2000 году, а сейчас это проект Apache верхнего уровня, который создается и используется глобальным сообществом участников.

История

CollabNet основал проект Subversion в 2000 году как попытку написать систему управления версиями с открытым исходным кодом, которая работала так же, как CVS но в котором исправлены ошибки и предоставлены некоторые функции, отсутствующие в CVS.[3] К 2001 году Subversion достаточно продвинулась, чтобы разместить собственный исходный код,[3] а в феврале 2004 года была выпущена версия 1.0.[4] В ноябре 2009 года Subversion была принята в Инкубатор Apache: это стало началом процесса превращения в стандартный проект Apache верхнего уровня.[5] 17 февраля 2010 года он стал проектом Apache верхнего уровня.[6]

ВерсияИсходная дата выпускаПоследняя версияДата выходаПоложение дел
Старая версия, больше не поддерживается: 1.02004-02-231.0.92004-10-13Больше не поддерживается
Старая версия, больше не поддерживается: 1.12004-09-29[7]1.1.42005-04-01Больше не поддерживается
Старая версия, больше не поддерживается: 1.22005-05-21[8]1.2.32005-08-19Больше не поддерживается
Старая версия, больше не поддерживается: 1.32005-12-30[9]1.3.22006-05-23Больше не поддерживается
Старая версия, больше не поддерживается: 1.42006-09-10[10]1.4.62007-12-21Больше не поддерживается
Старая версия, больше не поддерживается: 1.52008-06-19[11]1.5.92010-12-06Больше не поддерживается
Старая версия, больше не поддерживается: 1.62009-03-20[12]1.6.232013-05-30Больше не поддерживается
Старая версия, больше не поддерживается: 1.72011-10-11[13]1.7.222015-08-12Больше не поддерживается
Старая версия, больше не поддерживается: 1.82013-06-18[14]1.8.192017-08-10Больше не поддерживается
Старая версия, больше не поддерживается: 1.92015-08-05[15]1.9.122019-07-24Больше не поддерживается
Старая версия, но все еще поддерживается: 1.102018-04-13[16]1.10.62019-07-24Частично поддерживается
Старая версия, больше не поддерживается: 1.112018-10-30[17]1.11.12019-01-11Больше не поддерживается
Старая версия, больше не поддерживается: 1.122019-04-24[18]1.12.22019-07-24Больше не поддерживается
Старая версия, больше не поддерживается: 1.132019-10-30[19]1.13.02019-10-30Больше не поддерживается
Текущая стабильная версия: 1.142020-05-27[20]1.14.02020-05-27Полностью поддерживается, LTS
Легенда:
Старая версия
Старая версия, все еще поддерживается
Последняя версия
Последняя предварительная версия
Будущий выпуск

Даты выпуска взяты из Apache Subversion ИЗМЕНЕНИЯ файл,[21] который записывает всю историю выпуска.

Функции

  • Совершает как правда атомарные операции (прерванные операции фиксации в CVS могут привести к несогласованности или повреждению репозитория).
  • Переименованные / скопированные / перемещенные / удаленные файлы сохраняют полную историю изменений.
  • Система поддерживает управление версиями для каталогов, переименований и файлов метаданные (но не для отметок времени). Пользователи могут перемещать и / или копировать целые деревья каталогов очень быстро, сохраняя при этом полную историю изменений.
  • Управление версиями символические ссылки.
  • Встроенная поддержка двоичных файлов с компактным хранилищем binary-diff.
  • HTTP-сервер Apache как сетевой сервер, WebDAV /Дельта-V за протокол. Также есть независимый сервер процесс называется svnserve, который использует собственный протокол поверх TCP / IP.
  • Разветвление это дешевая операция, не зависящая от размера файла (хотя сама Subversion не различает ветку и каталог)
  • Изначально клиент – сервер, слоистый библиотека дизайн.
  • Клиент / серверный протокол отправляет различия в обоих направлениях.
  • Затраты пропорциональны размеру изменения, а не размеру данных.
  • Анализируемый выход, в том числе XML вывод журнала.
  • с открытым исходным кодом под лицензиейЛицензия Apache начиная с версии 1.7; предыдущие версии используют производную от Apache Software License 1.1.
  • Интернационализированный программные сообщения.
  • Блокировка файлов для не объединяемых файлов ("зарезервированные извлечения").
  • Авторизация на основе пути.
  • Языковые привязки за C #, PHP, Python, Perl, Рубин, и Ява.
  • Полный MIME поддержка - пользователи могут просматривать или изменять тип MIME каждого файла, при этом программное обеспечение знает, какие типы MIME могут отличаться от показанных в предыдущих версиях.
  • Отслеживание слияния - слияния между ветвями будут отслеживаться, это позволяет автоматическое слияние ветвей, не сообщая Subversion, что нужно, а что нет.
  • Changelists для организации коммитов в группы коммитов.

Типы репозиториев

Subversion предлагает два типа хранилища репозитория.

Berkeley DB (не рекомендуется)

Первоначальная разработка Subversion использовала Berkeley DB package.Subversion имеет некоторые ограничения при использовании Berkeley DB, когда программа, обращающаяся к базе данных, дает сбой или принудительно завершает работу. Никакой потери или повреждения данных не происходит, но репозиторий остается в автономном режиме, пока Berkeley DB воспроизводит журнал и очищает все невыполненные блокировки. Самый безопасный способ использования Subversion с репозиторием Berkeley DB предполагает выполнение одного серверного процесса от имени одного пользователя (а не через общую файловую систему).[22] Бэкэнд Berkeley DB объявлен устаревшим в версии 1.8.[23]

FSFS

В 2004 году была разработана новая подсистема хранения, получившая название FSFS. Она работает быстрее, чем серверная часть Berkeley DB в каталогах с большим количеством файлов, и занимает меньше места на диске из-за меньшего количества журналов.[22]

Начиная с Subversion 1.2, FSFS стала хранилищем данных по умолчанию для новых репозиториев.

Этимология "FSFS" основана на использовании Subversion термина "файловая система" для своей системы хранения репозитория. FSFS хранит свое содержимое непосредственно в файловой системе операционной системы, а не в структурированной системе, такой как Berkeley DB. Таким образом, это "[ Subversion] Файловая система поверх файловой системы ".

FSX

Новая файловая система под названием FSX находится в стадии разработки, чтобы снять некоторые ограничения FSFS. Начиная с версии 1.9, он не считался готовым к производству.[24]

Доступ к репозиторию

Доступ к репозиториям Subversion может осуществляться:

  1. Локальная файловая система или сетевая файловая система,[25] клиент получает доступ напрямую. В этом режиме используется Путь файла схема доступа.
  2. WebDAV / Delta-V (через http или https) с помощью mod_dav_svn модуль для Apache 2. В этом режиме используется http: // хост / путь схема доступа или https: // хост / путь для безопасных соединений с использованием ssl.
  3. Пользовательский протокол "svn" (по умолчанию порт 3690), используя обычный текст или более TCP / IP. В этом режиме используется либо svn: // хост / путь схема доступа для незашифрованного транспорта или svn + ssh: // хост / путь Схема для туннелирования по ssh.

Все три средства могут получить доступ как к репозиториям FSFS, так и к Berkeley DB.

Любая версия 1.x клиента может работать с любым сервером 1.x. Новые клиенты и серверы имеют дополнительные функции и возможности производительности, но имеют резервную поддержку для старых клиентов / серверов.[26]

Слои

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

Фс
Самый низкий уровень; он реализует версионную файловую систему, в которой хранятся пользовательские данные.
Репо
Обеспокоен репозиторием, созданным вокруг файловой системы. Он имеет множество вспомогательных функций и обрабатывает различные «ловушки», которые может иметь репозиторий, например, сценарии, запускаемые при выполнении действия. Вместе Fs и Repos составляют «интерфейс файловой системы».
mod_dav_svn
Обеспечивает WebDAV / Доступ Delta-V через Apache 2.
Ра
Обрабатывает «доступ к репозиторию», как локальный, так и удаленный. С этого момента для обращения к репозиториям используются URL-адреса, например
  • Путь файла/ для локального доступа,
  • http: // хост / путь / или же https: // хост / путь / для доступа к WebDAV или
  • svn: // хост / путь / или же svn + ssh: // хост / путь / для протокола SVN.
Клиент, туалет
Самый высокий уровень. Он абстрагирует доступ к репозиторию и предоставляет общие клиентские задачи, такие как аутентификация пользователей или сравнение версий. Клиенты Subversion используют библиотеку Wc для управления локальной рабочей копией.

Файловая система

Svn 3D-tree.svg

Можно рассматривать файловую систему Subversion как «двумерную».[27] Две координаты используются для однозначной адресации элементов файловой системы:

Каждая ревизия в файловой системе Subversion имеет свою собственную корень, который используется для доступа к содержимому этой версии. Файлы хранятся в виде ссылок на самые последние изменения; таким образом, репозиторий Subversion довольно компактен. Система использует пространство для хранения пропорционально количеству внесенных изменений, а не количеству ревизий.

Файловая система Subversion использует транзакции для сохранения изменений атомный. Транзакция работает с указанной версией файловой системы, не обязательно самой последней. У сделки есть своя корень, в который внесены изменения. Затем он либо фиксируется и становится последней ревизией, либо прерывается. Транзакция на самом деле является долгоживущим объектом файловой системы; клиенту не нужно фиксировать или прерывать транзакцию, он может также начать транзакцию, выйти, а затем повторно открыть транзакцию и продолжить ее использование. Потенциально несколько клиентов могут получить доступ к одной и той же транзакции и вместе работать над атомарным изменением, хотя ни один из существующих клиентов не предоставляет эту возможность.

Характеристики

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

svn: исполняемый файл
Делает файл на Unix - размещенные рабочие копии исполняемого файла, если они поддерживаются файловой системой.
svn: mime-type
Хранит Тип интернет-СМИ ("MIME-тип") файла. Влияет на обработку различий и слияния.
svn: игнорировать
Список шаблонов имен файлов, которые следует игнорировать в каталоге. Похожий на CVS с .cvsignore файл.
svn: ключевые слова
Список ключевые слова для замены в файл при внесении изменений. Сам файл также должен ссылаться на ключевые слова как $ keyword $ или же $ keyword: ... $. Это используется для сохранения определенной информации (например, автора, даты последнего изменения, номера редакции) в файле без вмешательства человека.
Механизм подстановки ключевых слов исходит из RCS и из CVS.[28]
svn: eol-style
Заставляет клиента конвертировать конец линии символы в текстовых файлах. Используется, когда требуется рабочая копия с определенным стилем EOL. Обычно используется "native", так что EOL соответствуют стилю EOL операционной системы пользователя. В репозиториях это свойство может потребоваться для всех файлов, чтобы предотвратить несогласованные окончания строк, что само по себе может вызвать проблему.
svn: externals
Позволяет автоматически извлекать части других репозиториев в подкаталог.
svn: need-lock
Указывает, что файл должен быть извлечен с правами доступа только для чтения. Он предназначен для использования с запорным механизмом. Разрешение только для чтения напоминает о необходимости получить блокировку перед изменением файла: получение блокировки делает файл доступным для записи, а снятие блокировки снова делает его доступным только для чтения. Блокировки применяются только во время операции фиксации. Блокировки можно использовать без установки этого свойства. Однако это не рекомендуется, потому что это создает риск того, что кто-то изменит заблокированный файл; они обнаружат, что он заблокирован, только когда их фиксация не удалась.
svn: special
Это свойство не предназначено для установки или изменения непосредственно пользователями. По состоянию на 2010 г. он используется только для того, чтобы иметь символические ссылки в репозитории. Когда в репозиторий добавляется символическая ссылка, создается файл, содержащий цель ссылки, с этим набором свойств. Когда Unix-подобная система извлекает этот файл, клиент преобразует его в символическую ссылку.
svn: mergeinfo
Используется для отслеживания данных слияния (номеров ревизий) в Subversion 1.5 (или новее). Это свойство автоматически поддерживается слияние не рекомендуется изменять ее значение вручную.[29]

Subversion также использует свойства самих ревизий. Как и указанные выше свойства в записях файловой системы, имена полностью произвольны, при этом клиент Subversion использует определенные свойства с префиксом svn :. Однако эти свойства не версируются, и они могут быть изменены позже, если это разрешено обработчиком pre-revprop-change.[30]

svn: date
Отметка даты и времени редакции.
svn: автор
Имя пользователя, отправившего изменение (я).
svn: журнал
Пользовательское описание изменений.

Ветвление и тегирование

Subversion использует модель межфайлового ветвления из Волей случая[31] реализовать ветви и маркировка. Ветка - это отдельное направление развития.[32] Пометка относится к метке репозитория в определенный момент времени, чтобы его можно было легко найти в будущем. В Subversion единственная разница между ветвями и тегами заключается в том, как они используются.

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

Все версии в каждой ветке сохраняют историю файла до момента копирования, а также любые изменения, сделанные с тех пор. Можно «слить» изменения обратно в хобот или между ветками.

Визуализация простого проекта Subversion

Ограничения и проблемы

Известная проблема в Subversion влияет на реализацию операции переименования файлов и каталогов. По состоянию на 2014 г., Subversion реализует переименование файлов и каталогов как «копию» нового имени с последующим «удалением» старого имени. Меняются только имена, все данные, относящиеся к истории редактирования, остаются прежними, и Subversion по-прежнему будет использовать старое имя в более старых версиях «дерева». Однако Subversion может сбиться с толку, когда ход противоречит правкам, сделанным где-то еще[33] как для обычных коммитов, так и при слиянии веток.[34] В выпуске Subversion 1.5 были рассмотрены некоторые из этих сценариев, в то время как другие остались проблемными.[35] Выпуск Subversion 1.8 решил некоторые из этих проблем, сделав перемещение на клиенте первоклассной операцией, но в репозитории это по-прежнему рассматривается как копирование + удаление.[36]

По состоянию на 2013 год, Subversion не хватает некоторых функций администрирования и управления репозиториями. Например, кто-то может пожелать отредактировать репозиторий, чтобы окончательно удалить все исторические записи определенных данных. В Subversion нет встроенной поддержки, чтобы просто достичь этого.[37]

Subversion хранит дополнительные копии данных на локальном компьютере, что может стать проблемой для очень больших проектов или файлов, или если разработчики работают над несколькими ветвями одновременно. В версиях до 1.7 эти .svn каталоги на стороне клиента могут быть повреждены опрометчивыми действиями пользователя, такими как глобальные операции поиска / замены.[38] Начиная с версии 1.7 Subversion использует единую централизованную .svn папка на рабочую область.[39]

Subversion не хранит время модификации файлов. Таким образом, файл, извлеченный из репозитория Subversion, будет иметь «текущую» дату (вместо времени модификации в репозитории), а файл, зарегистрированный в репозитории, будет иметь дату извлечения (вместо времени модификации время регистрации файла). Это не всегда то, что нужно.[40]Чтобы смягчить это, существуют сторонние инструменты, которые позволяют сохранить время модификации и другие метаданные файловой системы.[41][42]Однако также важно указывать извлеченным файлам текущую дату - вот как такие инструменты, как сделать (1) обратит внимание на измененный файл для его восстановления.

Subversion использует централизованный контроль версий модель. Бен Коллинз-Сассман, один из разработчиков Subversion, считает, что централизованная модель помогла бы "незащищенным программистам" скрывать свою работу от других членов команды.[43] Некоторые пользователи систем контроля версий считают централизованную модель вредной; лихо, Линус Торвальдс атаковал модель Subversion и ее разработчиков.[44]

Subversion часто плохо справляется с нормализация имени файла в исполнении HFS + файловая система. Это может вызвать проблемы, когда файлы с диакритическими символами в их именах добавляются в репозиторий в файловой системе, отличной от HFS +, а затем репозиторий используется с HFS +.[45]

Теги и ветки Subversion

Номера ревизий трудно запомнить в любой системе контроля версий. По этой причине большинство систем предлагают символические теги как удобные ссылки на них. Subversion не имеет такой возможности, и то, что ее документация рекомендует использовать вместо этого, сильно отличается по своей природе. Вместо реализации тегов как Рекомендации к точкам в истории, Subversion рекомендует делать снимки копии в хорошо известный подкаталог ("теги /") в пространстве дерева репозитория. Только несколько предопределенных Рекомендации доступны: ГОЛОВА, ОСНОВАНИЕ, ПРЕД. и ПРЕДАННЫЙ ИДЕЕ.

Эта проекция из истории в космос имеет несколько проблем:

  1. Когда делается снимок, система не придает никакого особого значения имени тега / снимка. В этом разница между копировать и ссылка. Редакция записывается, и к моментальному снимку можно получить доступ по URL-адресу. Это делает одни операции менее удобными, а другие - невозможными. Например, наивный svn diff -r tag1: tag2 myfile не работает; это немного сложнее, чем достичь, требуя, чтобы пользователь знал и вводил URL / пути к снимкам, а не только имена: svn diff / myfile / myfile. Другие операции, например svn log -r tag1: tag2 myfile просто невозможно.
  2. Когда в дереве репозитория находятся два (идеально независимых) типа объектов, может начаться «борьба за верх». Другими словами, часто бывает сложно решить, на каком уровне создавать теги / подкаталог:
    хобот/     /компонентфу/     /компонентбар/теги/ /1.1/ / компонентфу/        /компонентбар/
    или же
    компонентфу/            /хобот/            /теги/ /1.1/componentбар/            /хобот/            /теги/                 /1.1/
  3. Теги, по их общепринятому определению, доступны только для чтения и имеют небольшой вес в репозитории и на клиенте. Копии Subversion не предназначены только для чтения, и, хотя они легковесны в репозитории, они невероятно тяжелы для клиента.

Чтобы решить такие проблемы, плакаты в списках рассылки Subversion предложили новую функцию, называемую «ярлыки» или «псевдонимы».[46] Метки SVN будут больше напоминать «теги» других систем, таких как CVS или же Git. Тот факт, что Subversion имеет глобальные номера ревизий, открывает путь к очень простой реализации метки → ревизии. Однако по состоянию на 2013 год не было достигнуто никакого прогресса, и символические теги не входят в список наиболее востребованных функций.[47]

Разработка и внедрение

CollabNet продолжает свое участие в Subversion, но проект работает как независимое сообщество с открытым исходным кодом. В ноябре 2009 г. проект был принят в Инкубатор Apache, стремясь стать частью Фонд программного обеспечения Apache усилия.[48] С марта 2010 года проект официально известен как Apache Subversion и является частью проектов верхнего уровня Apache.[49]

В октябре 2009 г. WANdisco объявила о найме основных коммиттеров Subversion, поскольку компания стала основным корпоративным спонсором проекта. В их число входил Хайрам Райт, президент Subversion Corporation и менеджер по выпуску проекта Subversion с начала 2008 года, который присоединился к компании, чтобы возглавить ее команду открытого исходного кода.[50]

Сообщество с открытым исходным кодом Subversion не предоставляет двоичные файлы, но потенциальные пользователи могут загружать двоичные файлы от добровольцев.[51] Хотя проект Subversion не включает официальную графический интерфейс пользователя (GUI) для использования с Subversion третьими сторонами был разработан ряд различных графических интерфейсов, а также большое количество дополнительных вспомогательных программ.

Работа, объявленная в 2009 году, включала SubversionJ ( Java API ) и выполнение команды Obliterate, аналогичной той, которая предусмотрена Волей случая. Оба этих усовершенствования были спонсированы WANdisco.[52]

Коммиттеры Subversion обычно имеют по крайней мере одну или две новые функции в активной разработке одновременно. Выпуск Subversion 1.7 в октябре 2011 года включал усовершенствованный HTTP-транспорт для повышения производительности и переписанную библиотеку рабочих копий.[53]

Смотрите также

Рекомендации

Цитаты

  1. ^ а б c d е "Apache Subversion". Получено 26 июля 2019.
  2. ^ "Subversion". directory.fsf.org. Каталог бесплатных программ. 2013. Получено 11 сентября 2013.
  3. ^ а б Коллинз-Сассман, Бен; Брайан В. Фицпатрик; К. Майкл Пилато (2011). «Что такое Subversion?> История Subversion». Контроль версий с помощью Subversion (для Subversion 1.7). Получено 15 марта 2012.
  4. ^ Бенджамин Цейсс (2004). "Subversion 1.0 выпущена". Еженедельные новости Linux. Получено 30 марта 2014.
  5. ^ Рубинштейн, Дэвид (4 ноября 2009 г.). «Subversion объединяет усилия с Apache». SD Times. Архивировано из оригинал на 2009-11-11. Получено 15 марта 2012.
  6. ^ «Subversion теперь называется Apache Subversion». 18 февраля 2010. Архивировано с оригинал 12 мая 2011 г.. Получено 15 марта 2012.
  7. ^ «Примечания к выпуску Subversion 1.1». Получено 2015-09-21.
  8. ^ «Примечания к выпуску Subversion 1.2». Получено 2015-09-21.
  9. ^ «Примечания к выпуску Subversion 1.3». Получено 2015-09-21.
  10. ^ «Примечания к выпуску Subversion 1.4». Получено 2015-09-21.
  11. ^ «Примечания к выпуску Subversion 1.5». Получено 2015-09-21.
  12. ^ «Примечания к выпуску Apache Subversion 1.6». Получено 2015-09-21.
  13. ^ «Примечания к выпуску Apache Subversion 1.7». Получено 2015-09-21.
  14. ^ «Примечания к выпуску Apache Subversion 1.8». Получено 2015-09-21.
  15. ^ «Примечания к выпуску Apache Subversion 1.9». Получено 2015-09-21.
  16. ^ «Примечания к выпуску Apache Subversion 1.10». Получено 2018-04-17.
  17. ^ «Примечания к выпуску Apache Subversion 1.11». Получено 2018-10-31.
  18. ^ «Примечания к выпуску Apache Subversion 1.12». Получено 2019-05-01.
  19. ^ «Примечания к выпуску Apache Subversion 1.14».
  20. ^ «Примечания к выпуску Apache Subversion 1.14 LTS». subversion.apache.org. Получено 2020-06-02.
  21. ^ "Файл CHANGES Apache Subversion". Получено 2018-10-31.
  22. ^ а б Бен Коллинз-Сассман; Брайан В. Фицпатрик; К. Майкл Пилато (2011). «Глава 5: Стратегии развертывания репозитория». Контроль версий с помощью Subversion: для Subversion 1.7. О'Рейли.
  23. ^ «Примечания к выпуску Apache Subversion 1.8». Проект Apache. Получено 5 мая 2020.
  24. ^ https://subversion.apache.org/docs/release-notes/1.9.html#fsx
  25. ^ Berkeley DB полагается на блокировку файлов и, следовательно, не должен использоваться в (сетевых) файловых системах, которые не реализуют их
  26. ^ Примечания к выпуску SVN 1.5
  27. ^ Базовое слияние
  28. ^ "rcs (1)". Страницы руководства OpenBSD.
  29. ^ Свойства Subversion
  30. ^ предварительное изменение
  31. ^ Межфайловое ветвление: практический метод представления вариантов В архиве 2007-07-14 на Wayback Machine
  32. ^ Ветвление / маркировка - TortoiseSVN
  33. ^ Реализовать истинное переименование
  34. ^ Расширенное слияние
  35. ^ Улучшения, связанные с копированием / перемещением в Subversion 1.5
  36. ^ Записи рабочих копий перемещаются как первоклассная операция в Subversion 1.8
  37. ^ SVN стереть
  38. ^ [1]
  39. ^ Улучшения хранилища метаданных рабочих копий (клиент)
  40. ^ Проблема 1256 на Tigris.org
  41. ^ FreezeAttrib (сохраняет / восстанавливает атрибуты файлов с помощью свойств)
  42. ^ FSVS (быстрая версия системы)
  43. ^ Незащищенность программиста @ iBanjo
  44. ^ Видео Google Tech Talk и это стенограмма
  45. ^ Subversion: ошибка 2464.
  46. ^ Например: Вайнтрауб, Дэвид (23 мая 2005 г.). Ярлыки Subversion и теги'". SVN Dev (Список рассылки). Получено 5 мая 2020.
  47. ^ «Дорожная карта Apache Subversion». Проект Apache. Получено 5 мая 2020.
  48. ^ «Subversion, представленная в качестве проекта в Apache Software Foundation». 4 ноября 2009 г.. Получено 1 октября, 2019.
  49. ^ «CollabNet поддерживает переход Subversion к проекту верхнего уровня Apache». CollabNet. 1 марта 2010. Архивировано с оригинал 11 марта 2010 г.
  50. ^ WANdisco (7 января 2010 г.). «WANdisco называет Хайрама Райта возглавить усилия по разработке открытого исходного кода Subversion». Выпуск новостей. Журнал с открытым исходным кодом. В архиве из оригинала 18.01.2012. Получено 29 октября, 2011.
  51. ^ «Двоичные пакеты Apache Subversion». Официальный сайт проекта. Получено 29 октября, 2011.
  52. ^ WANdisco (28 октября 2009 г.). «WANdisco представляет новые инициативы для проекта с открытым исходным кодом Subversion». Выпуск новостей. CM Crossroads. Архивировано из оригинал на 2011-11-18. Получено 29 октября, 2011.
  53. ^ «Дорожная карта Apache Subversion». Официальный сайт проекта. Получено 29 октября, 2011.

Источники

  • К. Майкл Пилато, Бен Коллинз-Сассман, Брайан В. Фицпатрик; Контроль версий с помощью Subversion; О'Рейли; ISBN  0-596-00448-6 (1-е издание, мягкая обложка, 2004 г., полная книга онлайн, зеркало )
  • Гаррет Руни; Практическая подрывная деятельность; Апресс; ISBN  1-59059-290-5 (1-е издание, мягкая обложка, 2005 г.)
  • Майк Мейсон; Прагматичный контроль версий с использованием Subversion; Прагматическая книжная полка; ISBN  0-9745140-6-3 (1-е издание, мягкая обложка, 2005 г.)
  • Уильям Нагель; Контроль версий Subversion: использование системы контроля версий Subversion в проектах разработки; Прентис Холл; ISBN  0-13-185518-2 (1-е издание, мягкая обложка, 2005 г.)

дальнейшее чтение

внешняя ссылка