Домашняя » как » Отслеживание версий с помощью Subversion (SVN) для начинающих

    Отслеживание версий с помощью Subversion (SVN) для начинающих

    Вы когда-нибудь хотели работать над проектом с возможностью отслеживать ваши изменения, а также отменить их? How-To Geek объясняет, как использовать популярную систему отслеживания версий Subversion (a.k.a SVN).

    Изображение явно неоднозначно

    Прелог

    Цель этого руководства - дать вам возможность использовать клиент Subversion в целом и, если он у вас есть, на вашем маршрутизаторе * DD-WRT. Это руководство ни в коем случае не является исчерпывающим руководством для Subversion, и много информации можно найти в Красной книге Subversion. Это руководство предназначено только для того, чтобы дать вам краткий ответ на самые основные вопросы.

    обзор

    Может быть множество причин, по которым вы хотели бы иметь возможность «получить» последний код программного проекта, использующего систему управления версиями. Это позволит вам извлечь выгоду из последних, еще не выпущенных изменений, помочь с тестированием и даже разработкой. В этом руководстве мы рассмотрим базовую терминологию SVN, покажем, как установить клиент SVN в Linux, Windows и, если у вас есть, маршрутизатор DD-WRT с поддержкой OPKG. Мы также включили пример проекта, который вы можете оформить и использовать для указанного маршрутизатора..

    Что такое Subversion??

    Subversion ни в коем случае не является единственной существующей системой контроля версий, и альтернативы включают Git (который был создан Линусом Торвальдсом, основателем ядра Linux), Mercurial и PerForce и многие другие. С учетом сказанного, это один из бесплатных, он зрелый и широко используется во всем мире.

    Из подрывной деятельности «Красная книга»:

    Subversion является бесплатным / открытым исходным кодом система контроля версий (VCS). То есть Subversion управляет файлами и каталогами, а также изменениями, вносимыми в них с течением времени. Это позволяет вам восстановить более старые версии ваших данных или изучить историю того, как ваши данные изменились. В связи с этим многие люди считают систему контроля версий своего рода «машиной времени».

    Примечание: эта книга является окончательный набор знаний о Subversion, и вам рекомендуется обратиться к нему по всем темам, связанным с Subversion.

    Что такое версия?

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

    терминология

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

    пересмотр

    Когда репозиторий создается, ему присваивается номер редакции ноль (0). Это число увеличивается на единицу (1) каждый раз, когда выполняется коммит. Номер редакции является глобальным для хранилища. Это значит, что в репозитории нет отдельного номера ревизии для отдельных файлов, даже если в этом файле ничего не изменилось для этой конкретной фиксации..

    Рабочая копия

    Рабочая копия - это локальная копия (или «проверка») определенной версии. Обычно эта версия при извлечении является «последней» (также называемой «головой»), но можно запросить предыдущую. Пользователь может делать с локальной копией все, что он / она желает, зная, что в худшем случае он может просто снова извлечь код. Более того, эта копия является «частной». Это связано с тем, что до тех пор, пока вы не обновите или не подтвердите свою копию, вы не увидите изменений других людей и они не увидят ваши.

    Обновление и разрешение конфликтов

    Локальная рабочая копия может быть обновлена. То есть, если вы «извлекли» определенную версию и во время работы версия в хранилище была обновлена, вы можете обновить свою рабочую копию до последней. Фактически, сервер не позволит вам внести изменения, прежде чем вы обновитесь до последней версии, соответствующей хранилищу. Это сделано для того, чтобы заставить вас разрешать конфликты локально, прежде чем вы даже подумаете о внесении изменений в хранилище..

    сращивание

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

    Фиксации

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

    Рабочий процесс

    Наиболее простой рабочий процесс с точки зрения пользователя при использовании Subversion заключается в следующем:

    1. Извлечь существующий код (обычно «голова»).
    2. Вносить изменения, добавлять файлы и вообще разрабатывать код.
    3. Обновите до последней версии, чтобы убедиться, что ваша локальная копия синхронизируется с обновлениями в хранилище..
    4. Локально объединяйте и разрешайте конфликты, если это необходимо.
    5. Зафиксируйте объединенные изменения в хранилище..
    6. Перейти к шагу 2.

    Давайте взломать

    Установите клиент

    Чтобы использовать Subversion, вам нужно установить клиент на свой компьютер..

    В линуксе

    Вам нужно только установить пакет. На Ubuntu / Mint это будет сделано с помощью:

    sudo aptitude устанавливает subversion

    На DD-WRT

    Если вы выполнили «Как установить дополнительное программное обеспечение на домашнем маршрутизаторе (DD-WRT)», вы можете установить клиент SVN, просто выполнив:

    opkg update; opkg установить Subversion-клиент

    На винде

    Хотя мы, глубоко увлеченные пользователи, можем начать забывать, что GUI иногда существует, но не все. Если вы хотите использовать Windows-клиент для подключения к SVN-репозиторию, безусловно, самым популярным является «Черепаха». Чтобы использовать его, просто скачайте программу и установите обычным способом «следующий, следующий, готово».

    Создать «хранилище»

    Хотя в этом руководстве мы не будем вдаваться в подробности настройки сервера Subversion, альтернатива Google не является плохим началом для начинающего пользователя. Чтобы создать репозиторий Google:

    • Зайдите на сайт хостинга Google Code и «создайте» новый проект.
    • На следующей странице заполните необходимые поля и выберите тип «системы управления версиями», который будет подрывным.

      Примечание. Возможно, вы захотите взглянуть на разницу между лицензиями, предлагаемыми Google, прежде чем выбрать одну для проекта..
    • Нажмите «Создать проект».
    «Оформить заказ» вашей рабочей копии

    После того, как ваш проект был создан, вы должны найти инструкции по доступу к нему на вкладке «Источник»..

    Хорошая вещь о коде Google, это то, что он позволит анонимную версию только для чтения для вашего проекта. Если вы не хотите иметь дело с созданием собственного проекта, вы можете анонимно проверить репозиторий этого автора.

    Одно замечание о проекте hotfortech: этот проект предназначен для упаковки функций, которые были добавлены в DD-WRT в How-To Geek (которые я лично использую), а также некоторые личные настройки. Хотя этот проект предназначен для работы в сочетании со статьями, опубликованными здесь о howtogeek, он все еще является моим частным проектом. То есть он очень подходит для моего роутера Buffalo (архитектура AR71xx), моих личных прихотей и подвержен случайным неудачам.

    В Linux / DD-WRT

    Создайте каталог для работы, например, в DD-WRT, который может быть:

    mkdir -p / jffs / svn; CD / JFFS / SVN

    Полная команда в Linux состоит из самой команды SVN, директивы checkout, адреса хранилища и каталога для извлечения. Создайте пустой каталог и выполните команду ниже:

    svn checkout http://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-только для чтения

    Обратите внимание, что в приведенном выше примере проверяется версия только для чтения. Если вы решили создать свой собственный репозиторий, вам нужно будет использовать ссылку httpS.

    На винде

    Поскольку черепаха является расширением оболочки, вам необходимо использовать контекстное меню проводника Windows (щелчок правой кнопкой мыши), чтобы использовать его. Фактически, если вы попытаетесь вызвать его из меню «Пуск», вы получите:

    • Создать пустой каталог.
    • Щелкните правой кнопкой мыши, чтобы вызвать контекстное меню..
    • Выберите «SVN Checkout»:
    • Скопируйте и вставьте ссылку для проекта (если она есть) в текстовое поле «URL»:
    • В зависимости от размера вашего проекта это может занять некоторое время, но когда «Оформить заказ» будет завершено, вы должны увидеть что-то вроде:
    • Вы можете начать разработку.

    «Обновить» и «Объединить» вашу рабочую копию
    Если вы работаете над кодом с коллегами или вы сами обновляете код из нескольких мест (например, ноутбук, настольный компьютер или даже маршрутизатор), вам придется обновить рабочую копию, прежде чем вносить последние изменения.

    В Linux / DD-WRT

    Команда сделать это в этих системах POSIX просто:

    Svn Up

    На винде

    • Щелкните правой кнопкой мыши в рабочем каталоге и выберите «SVN Update»:
    • Если вы столкнулись с конфликтами, попробуйте следовать инструкциям на экране и примите решение о том, что с ними делать..

    «Зафиксируйте» ваши изменения
    Вот и все, вы должны быть свободны от конфликтов и готовы обновить хранилище с вашими изменениями..
    Здесь следует отметить один момент: обычной практикой является добавление сообщения «log» в коммит, чтобы можно было легко вспомнить, почему были внесены изменения. На самом деле, репозиторий Google делает это обязательным предварительным требованием для совершения.

    В Linux / DD-WRT

    Это пример коммита, который я сделал для проекта hotfortech, который поднял его до версии 19:

    svn commit -m «обновлен, чтобы отразить новую ссылку на пакет ant-ads»

    На винде

    • Щелкните правой кнопкой мыши в рабочем каталоге и выберите «SVN Commit»:
    • Вас должно приветствовать окно, которое позволяет вам отметить сообщение журнала:
    • Нажмите OK и, когда будет предложено ввести пароль, дайте Google сгенерированный пароль.
    • Если фиксация прошла успешно, вы должны увидеть что-то вроде:
    • Вот и все, вы должны быть в состоянии совершить как босс.

    Заключительные замечания
    Этого должно быть достаточно, чтобы вы начали. Рекомендуется прочитать справочники SVN, чтобы глубже и лучше понять все способы использования SVN, варианты и предостережения. Кроме того, мы напоминаем вам (опять же), что Subversion НЕ является единственной системой контроля версий, и GIT (которая была создана Линусом Торвальдсом, основателем ядра Linux), похоже, набирает популярность в последние годы..

    Если вы решите запустить «running-config.sh» из проекта hotfortech на вашем маршрутизаторе, вы обнаружите, что он в данный момент установит для вас: пакет anti-ads, скрипт Opkg geek-init, а также такие вещи, как полный GNU «ls», «меньше», «BASH» и многое другое.

    /jffs/svn/hotfortech-dd-wrt/running-conf.sh

    Другие функции ожидают рассмотрения и будут добавлены в будущем.


    Системные администраторы закодируют свой выход из кодирования.