Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

С открытым исходным кодом сообщество использует Subversion широко: например, в таких проектах, как Apache Software Foundation , 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 Incubator : это положило начало процессу превращения в стандартный проект Apache верхнего уровня. [5] 17 февраля 2010 г. он стал проектом Apache верхнего уровня. [6]

Даты выпуска извлекаются из CHANGESфайла Apache Subversion [21], в котором записана вся история выпусков.

Особенности [ править ]

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

Типы репозиториев [ править ]

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

Berkeley DB (не рекомендуется) [ править ]

Первоначальная разработка Subversion использовала пакет Berkeley DB . 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] доступная клиенту напрямую. В этом режиме используется схема доступа file: /// path .
  2. WebDAV / Delta-V (через http или https) с использованием модуля mod_dav_svn для Apache 2 . В этом режиме используется схема доступа http: // host / path или https: // host / path для безопасных соединений с использованием ssl.
  3. Пользовательский протокол «svn» ( порт по умолчанию 3690) с использованием обычного текста или TCP / IP . В этом режиме используется либо схема доступа svn: // host / path для незашифрованного транспорта, либо схема svn + ssh: // host / path для туннелирования через ssh.

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

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

Слои [ править ]

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

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

Файловая система [ править ]

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

  • Путь (обычный путь в Unix-подобной файловой системы ОС)
  • Редакция

Каждая ревизия в файловой системе 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: специальный
Это свойство не предназначено для установки или изменения непосредственно пользователями. С 2010 года он используется только для символьных ссылок в репозитории. Когда в репозиторий добавляется символическая ссылка, создается файл, содержащий цель ссылки, с этим набором свойств. Когда Unix-подобная система извлекает этот файл, клиент преобразует его в символическую ссылку.
svn: mergeinfo
Используется для отслеживания данных слияния (номеров ревизий) в Subversion 1.5 (или новее). Это свойство автоматически поддерживается командой слияния , и не рекомендуется изменять его значение вручную. [29]

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

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

Ветвление и тегирование [ править ]

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

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

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

Визуализация простого проекта 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] Однако также важно указывать извлеченным файлам текущую дату - именно так инструменты, такие как make (1), будут замечать измененный файл для его восстановления.

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

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

Теги и ветки Subversion [ править ]

Номера редакций трудно запомнить в любой системе контроля версий. По этой причине большинство систем предлагают символические теги в качестве удобных ссылок на них. Subversion не имеет такой возможности, и то, что ее документация рекомендует использовать вместо этого, сильно отличается по своей природе. Вместо реализации тегов в качестве ссылок на точки в истории Subversion рекомендует делать копии моментальных снимков в хорошо известный подкаталог (" tags/") в пространстве дерева репозитория. Только несколько предопределенных ссылки доступны: HEAD, BASE, PREVи COMMITTED.

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

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

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

Разработка и внедрение [ править ]

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

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

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

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

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

В 2002 году был проведен конкурс дизайнеров по выбору логотипа для Subversion. Исходные данные можно найти здесь , а также голоса для каждого логотипа. Текущий логотип получил наибольшее количество голосов в конкурсе.

См. Также [ править ]

  • Список программного обеспечения для контроля версий
  • Сравнение программного обеспечения для контроля версий
  • Сравнение клиентов Subversion
  • Список программного обеспечения, использующего Subversion
  • TortoiseSVN

Ссылки [ править ]

Сноски [ править ]

  1. ^ a b «Подрывная версия Apache» . Проверено 12 февраля 2021 года .
  2. ^ "Subversion" . directory.fsf.org . Каталог бесплатного программного обеспечения . 2013 . Проверено 11 сентября 2013 года .
  3. ^ a b Коллинз-Сассман, Бен; Брайан В. Фицпатрик; К. Майкл Пилато (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» . Проверено 21 сентября 2015 .
  8. ^ «Примечания к выпуску Subversion 1.2» . Проверено 21 сентября 2015 .
  9. ^ «Примечания к выпуску Subversion 1.3» . Проверено 21 сентября 2015 .
  10. ^ «Примечания к выпуску Subversion 1.4» . Проверено 21 сентября 2015 .
  11. ^ «Примечания к выпуску Subversion 1.5» . Проверено 21 сентября 2015 .
  12. ^ «Примечания к выпуску Apache Subversion 1.6» . Проверено 21 сентября 2015 .
  13. ^ «Примечания к выпуску Apache Subversion 1.7» . Проверено 21 сентября 2015 .
  14. ^ «Примечания к выпуску Apache Subversion 1.8» . Проверено 21 сентября 2015 .
  15. ^ «Примечания к выпуску Apache Subversion 1.9» . Проверено 21 сентября 2015 .
  16. ^ «Примечания к выпуску Apache Subversion 1.10» . Проверено 17 апреля 2018 .
  17. ^ «Примечания к выпуску Apache Subversion 1.11» . Проверено 31 октября 2018 .
  18. ^ «Примечания к выпуску Apache Subversion 1.12» . Проверено 1 мая 2019 .
  19. ^ «Примечания к выпуску Apache Subversion 1.14» .
  20. ^ «Примечания к выпуску Apache Subversion 1.14 LTS» . subversion.apache.org . Проверено 2 июня 2020 .
  21. ^ "Файл ИЗМЕНЕНИЙ Apache Subversion" . Проверено 31 октября 2018 .
  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. ^ Ветвление Inter-File: Практический метод представления Варианты в архив 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 года Архивировано из оригинала на 2010-03-11.
  50. ^ WANdisco (7 января 2010). «WANdisco называет Хайрама Райта возглавить усилия по подрывной работе с открытым исходным кодом» . Пресс-релиз . Журнал с открытым исходным кодом. Архивировано 18 января 2012 года . Проверено 29 октября 2011 года .
  51. ^ «Двоичные пакеты Apache Subversion» . Официальный сайт проекта . Проверено 29 октября 2011 года .
  52. ^ WANdisco (28 октября 2009). «WANdisco представляет новые инициативы для проекта с открытым исходным кодом Subversion» . Пресс-релиз . CM Перекресток. Архивировано из оригинала на 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 г.) 

Дальнейшее чтение [ править ]

  • Dispelling Subversion FUD, автор Ben Collins-Sussman (разработчик Subversion), ссылка не работает с 07.03.2013 (Internet Archive.org Wayback Machine 2011-07-18 захваченная версия , "последнее обновление" 21.12.2004)

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Подрывная деятельность в Керли