Ruby On Rails in UA Icon_home Главная Add to bookmarks Translate translate Profile Войти
Регистрация Форум Блоги Пользователи Список джемов Rails проекты      Поиск   

Ruby On Rails in UA/Проекты, хостинг и хостеры/ Управление версиями в Subversion

2008-06-10 10:42:28 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 1294
Регистр: 2007-03-13
его блог 40 сообщ.
Управление версиями в Subversion
  •  
5.0 из 1 гол.
Создание репозитория проекта

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

$ svnadmin create project --fs-type bdb

project - указывает путь к репозиторию. Будет создано пустое хранилище с размещением версий файлов в базе данных.
Организация совместной работы

Для совместной работы над проектом, надо организовать доступ к репозиторию svn для нескольких участников проекта. Имена пользователей, принимающих участие в работе над проектом, и пароли доступа создаются в файле паролей (project/conf/passwd):

[users]
vasya=
petya=

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

$ chmod 600 {путь к репозиторию проекта}/conf/passwd

Далее в файле конфигурации необходимо указать правила доступа к репозиторию, надо раскомментировать соответствующие строки в файле project/conf/svnserve.conf

[general]
auth-access = write
password-db = passwd

Теперь с репозиторием могут одновременно работать несколько прользователей, каждый под своей учетной записью. Также можно открыть анонимный доступ на чтение.
Удаленный доступ к репозиторию svn

Для удаленного доступа можно использовать защищенный протокол svn+ssh. Подключение к удаленному репозиторию выглядит так:

> svn co svn+ssh://194.85.238.22/project --username (имя) path

При подключении система дважды запрашивает пароль: пароль при доступе к учетной записи по ssh и пароль для доступа к репозиторию. В результате будет создана локальная версия проекта, в папке path.
Создание репозитория на основе готового проекта

Чтобы создать наполнение репозитория на основе готового проекта, добавить папку проекта в репозиторий применяется команда

svn import project svn+ssh://194.85.238.22/repository/project --username (имя)

В результате операции в существующем репозитории будет создан каталог project, содержащий текущую версию проекта. Таким образом можно добавлять подпроекты и ветки основного проекта.
Добавление и удаление файлов

Добавление файлов и каталогов может осуществлятья командой

svn add имя_файла

Удаление файлов из проекта

svn delete имя_файла

Файл будет добавлен или удален из локальной копии проекта. Изменения на сервере наступают только после применения команд синхронизации версий.
Синхронизация версий

Обновление локальной версии проекта осуществляется командой

svn up

При этом обновляются только те файлы, в которые вносились изменения между обновлениями. Тем самым минимизируется объем информации передаваемой по сети.
Обновление версии на сервере

После того как локальные файлы были изменениы, необходимо отправить изменения на сервер. Обновление версии осуществляется командой

svn ci -m "сообщение по поводу изменений"

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

При совместной работе над проектом рекомендуется сразу перед загрузкой обновлять локальную версию (svn up). Делается это для того чтобы заранее оценить возможность создания конфликтов и заняться разбором конфликта версий локально до, а не после создания новой версии. Стоит отметить, что конфликты версий возникают крайне редко. Subversion позволяет одновременно с разных компьютеров вносить изменения в один и тот же файл проекта. Конфликт версий возникает только в случае, когда изменения касаются одних и тех же строк кода.

Версии нумеруются последовательно в хронологическом порядке. При каждом обновлении (svn ci), значение версии увеличивается.

При работе с Subversion используются в основном три команды: "добавить/удалить файл", "обновить локальную версию" и "отправить изменения в базу svn". Обычно, приходя на рабочее место, я обновляю локальную версию, потом работаю, вношу изменения в код программы, в конце дня отправляю результаты работы в хранилище. Кроме всего прочего это позволяет мне придя домой, обновить по сети версию на домашнем компьютере и продолжить осмысление программы, если, конечно, есть настроение. Стоит отметить что при обновлении версии по сети передаются только изменения, разница между локальной версией и текущей.
Разбор конфликтов

Командой (svn list -v) можно посмотреть каким пользователем и когда были внесены изменения. Можно посмотребть журнал обновлений (svn log), можно сравнить разницу между версими (svn diff). И произвести откат (svn revert) или слияние версий (svn merge). Подробнее о методах разбора конфликтов, откате, ветвлении и слиянии версий можно прочитать в документации по SVN или в руководстве "Управление версиями в Subversion".
------------
Занимаюсь вебом и продвижением сайтов.
, , , , ,
2008-06-10 15:55:02 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 1294
Регистр: 2007-03-13
его блог 40 сообщ.
Учим subversion игнорировать изменения с определенных папках или типы файлов
  •  


если вы вдруг установили на всю директорию svn:ignore
и не знаете как это исправить
есть полезная команда которую почемутто очень редко писывают

svn propdel svn:ignore direname
------------
Занимаюсь вебом и продвижением сайтов.
, , , , ,
2008-06-10 09:30:28 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 1294
Регистр: 2007-03-13
его блог 40 сообщ.
RE: Управление версиями в Subversion
  •  
Список заготовок для свн под рельсовые проекты
http://wiki.rubyonrails.org/rails/pages/HowtoUseRailsWithSubversion
------------
Занимаюсь вебом и продвижением сайтов.
2008-08-29 21:38:39 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 1294
Регистр: 2007-03-13
его блог 40 сообщ.
RE: Учим subversion игнорировать изменения с определенных папках или типы файлов
  •  
Учим игнорировать временный файлы и конфиги


------------
Занимаюсь вебом и продвижением сайтов.
, ,
Назадназад Новыйновый Ответитьответить
Ключевые слова:
Гости: 183 Онлайн: 0
Rambler's Top100
О проекте по всем вопросам обращайтесь на support
Rubyclub.com.ua Copyright © 2007 - 2008