Записи с метками ‘SVN’

Снова про использование Subversion

Пятница, 29 февраля 2008

Сегодня опять хочу вернуться к теме использования Subversion-а. Но в этот раз представлю не свой опыт работы с svn, а дам несколько ссылок на полезные заметки. Все они взяты из блога Developer’s Notes (кстати, рекомендую последовать моему примеру и подписаться на RSS-поток).

  • Subversion. Установка и настройка. День первый - взгляд на svn из Linux-а: установка, создание хранилища
  • Subversion. Установка и настройка. День второй - настройка Eclipse для работы с svn, создание проекта, проверка работоспособности. К этой заметке у меня есть замечание. На сколько я понял, автор предлагает размещать воркспейс эклипса в том каталоге, где будет вестись разработка, т.е. в докрут девелоперского сайта. С таким предложением я категорически несогласен - воркспейс должен лежать в домашней директории пользователя, иначе придется делать лишние телодвижения и поиметь возможность нарваться на решение различных проблем. А чтобы вести разработку в нужном нам каталоге, достаточно указать его при создании проекта - место размещения воркспейса и место разработки никак не связаны.
  • Управление сторонними библиотеками в Subversion - небольшая заметка о внешних зависимостях, очень кратко: зачем это нужно и как это делать.

Кроме вышеперечисленных, в блоге есть еще несколько интересных постов, например, о переходе на Ubuntu.

Популярность: 16%

Внешние зависимости

Понедельник, 11 февраля 2008

Давненько я не писал в блог. Надо исправляться. Чем сейчас и займусь…

А рассказать сегодня я хочу об еще одной неочевидной вещи Subversion-а — «внешних зависимостях».

(more…)

Популярность: 14%

Как слить изменения между ветками. Часть 2

Воскресенье, 27 января 2008

Продолжаю тему слияния изменений между ветками, начатую в первой части. В этой заметке, как и обещал, я собираюсь привести подробный пример.

(more…)

Популярность: 12%

Как слить изменения между ветками. Часть 1

Вторник, 22 января 2008

Для меня самым непонятным моментом в использовании SVN было слияние веток, т.е. копирование изменений из одной ветки в другую. Чаще всего это делается для синхронизации различных веток (например, релизных) с основной (trunk).

В начале я хочу дать немного теории, а потом покажу на примере как это делать.

Для копирования изменений служит команда merge. Принцип действия этой команды очень прост – сравнивается два состояния хранилища, и выявленные изменения вносит в рабочую копию. Вот этот момент (внесение изменений именно в рабочую копию) был первым моим открытием. До чтения документации я считал, что изменения вносятся сразу в хранилище. О второй неожиданности я расскажу подробнее.

Как большинство новичков, я предполагал, что для переноса изменений из одной ветки в другую, нужно в аргументах команды merge указать исходную ветку и приемную ветку. При чтении мануала я крайне удивился - оказывается, нужно сравнивать не текущие состояния сливаемых веток, а состояния исходной ветки с момента последнего слияния (или выделения отдельной ветки) и текущим состоянием (или любым другим прошлым). Это было настоящим открытием для меня! Так что, мой вам совет – читайте документацию, там бывает можно найти много интересного и полезного. (Глава из официального руководства, посвященная копированию изменений)

Классическим способом использования SVN, при котором может понадобится слияние, является вынесение в отдельную ветку разработки, потенциально опасной для стабильности кода в основной ветке. В этом случае создается отдельная ветка (о том, как это сделать я рассказывал в отдельной заметке), в которую копируется основная ветка. После чего разработчик (или группа разработчиков) независимо от остальных начинает кодить новый функционал. Остальные разработчики продолжают работать с основной веткой (или создают свои ветки для кодинга “опасных” участков). В случае применения такого способа разработки возникает опастность внесения настолько большого количества изменений в основную ветку и ветку “опасной” разработки, что объединить их потребует огромных усилий (или вообще будет невозможно). Чтобы этого не случилось, есть простое решение - с определенной периодичностью или при определенных событиях (например, внесение существенных изменений в основню ветку) сливать изменения основной ветки в ветку разработчика. Тогда финальное слияние нового функционала и основной ветки пройдет достаточно гладко и просто - ведь большая часть изменений основной ветки уже содержится в ветке разработчика.

На этом небольшой экскурс в теорию закончу и во второй части покажу на примере как выполнять слияние изменений в ветках.

Популярность: 12%

Новая версия TortoiseSVN

Вторник, 25 декабря 2007

21 декабря вышла новая версия TortoiseSVN - 1.4.6. В этом релизе исправлено несколько небольших ошибок, в частности, утечку памяти в контекстном меню проводника.

Обновляемся отсюда

Популярность: 8%


FireStats icon Работает с FireStats