Ваш логин:
Ваш пароль:
 
 
Вы смотрите: Блог разработчика » Заметки сисадмина » Переходим на SVN
30-04-2010, 13:18, прочитали: 1242 раз, раздел: Заметки сисадмина, Ubuntu
После пожара на hosting.ua мы потеряли 2 больших проекта, на которые было потрачено более полугода работы и уйму денег.

Так уж получилось что работали в команде. Команда небольшая и бекапы естественно никто не хранил (ктож знал...), не было такой необходимости, работали прямо на сервере из разных мест. Знаю, что глупо было всё держать на одном сервере, но вот как то так =)

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

Устанавливаем subversion

apt-get update
apt-get install subversion


Создаём хранилище для репозитория:

mkdir /svn/
svnadmin create /svn/repository


В хранилище ещё нет ни одного проекта, импортируем его:

svn import /path/to/project file:///path/to/repos/project -m "Comment"


в моём случае это:

svn import /var/www/enigma_2.0/ file:///svn/enigma_20 -m "Enigma 2.0"


Содержимое проекта автоматически добавится в хранилище! Далее мы будем работать уже непосредственно с ним!

Делаем доступным хранилище для остальных машин в локальной сети.

svnserve -d


Поправим настройки хранилища /svn/repository/conf/svnserve.conf
раскомментируем строки

anon-access = read
auth-access = write


т.е. разрешаем всем скачивать файлы из репозитория и закачивать данные только авторизированным пользователям.

Раскомментируем ещё строчку

password-db = passwd


т.е. указываем файл /svn/repository/conf/passwd в котором будет находится список логинов и паролей зарегистрированных пользователей, этот файл имеет формат типа логин=пароль, в моём случае он будет содержать сл. данные:

[users]
nickon=password


После установки можем проверить работоспособность SVN ...

telnet 192.168.1.100 3690


Устанавливаем TortoiseSVN

В качестве SVN-клиента я использую TortoiseSVN, скачать последнюю версию можно тут, там же можно скачать и русификатор программы.

После установки создаём папку в которой будем работать! У меня это e:/enigma/ жмём по ней правой кнопкой и выбираем "SVN извлечь"

Переходим на SVN


В качестве URL я вбил путь до сервера таким образом:

svn://192.168.1.100/svn/repository/enigma_20/

жмём ОК и получаем:

Переходим на SVN


Всё! Мы успешно загрузили весь проект из репозитория! Далее можно работать с ним локально ...
Чтобы внести изменения в хранилище, также кликаем по папке и выбираем "SVN фиксировать", в открывшемся окне смотрим изменённые файлы и жмём ОК,
после у нас запросят логин\пароль... вводим те которые указали в файле passwd ... и всё все изменения должны сохраниться в хранилище!

 (голосов: 3)
Добавил: nickon,
Эта новость по темам:
Это может вас заинтересовать:
Комментариев оставленно: 1
Комментарий оставил: ANUFRiY, Группа: Посетители
Зарегистрирован: 30.06.2011, ICQ: --
Перед пунктом
"В хранилище ещё нет ни одного проекта, импортируем его:"

Добавь что нужно сначала создать проект в репозитории.

svnadmin create /home/svn/repos/__projectname__/

А то при импорте оно ругается.

Также неплохо было бы в начале увидеть немного теории по терминам:
repository (хранилище) — место где СКВ хранит данные, информацию об их изменениях и другую системную информацию;
checkout — извлечение части или всего содержимого хранилища и создание на их основе рабочей копии;
working copy (рабочая копия) — слепок хранилища расположенный на локальной машине. Именно рабочая копия подвергается изменениям перед тем как данные будут занесены в хранилище. Рабочая копия содержит также данные о версиях содержащихся в ней файлов. Именно их наличие и определяет, что директория и есть рабочая копия;
revision (версия, номер правки, правка) — каждый объект в понятиях СКВ имеет версию, номер которой назначается автоматически, если документ изменялся;
commit (закрепление изменений) — копирование изменений из рабочей копии в хранилище. При этом создается новая правка;
update (обновление) — операция получения данных из хранилища, если в рабочей копии они устарели;
merge (слияние) — объединение независимых изменений над одним файлом. Такое происходит, когда в разных правках менялся один и тот же файл.
     
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
© 2008-2010 nick-on.name
Любая перепечатка материалов без разрешения редакции запрещена!

Обратная связь