Войти

Показать полную графическую версию : Как работать с svn?


Igor_I
15-02-2010, 20:34
Не нашёл более подходящего раздела, ведь это программирование.
Имеется :
Рабочая станция с PhpED и TortoiseSVN для редактирования кода, но сам тестируемый сайт на локальном сервере
Локальный сервер для тестирования плюс репозиторий
Интернетовский сервер для работы

http://www.gnuman.ru/stuff/svn_strateg/
Стратегия 1
Создаем /tags/0.1.0 из /trunk
svn copy file:///home/svn/repos/src.local/trunk file:///home/svn/repos/src.local/tags/0.1.0 -m "tag tree"
Извлекаем на лок.сервер.
svn co file:///home/svn/repos/src.local/tags/0.1.0/ --username --password /usr/local/www/apache22/data/src.local
В корень веб-сервера. Код также доступен через PhpED для редактирования.
Правим код, тут же смотрим как он выполняется. Потом фиксируем изменения (через TortoiseSVN). Но перед фиксированием надо переключится на trunk? Экспорт на интернетовский сервер. Что-то мне кажется экспорт всего сайта целиком весьма затратен по времени.
Что теперь?
Удаляем весь код сайта с локального сервера. Создаем tags/0.2.0. Извлекаем, правим, фиксируем.
Продолжаем работать с локальной копией. Время от времени вызываем "слить".
Что-то здесь у меня загвоздка.

Delirium
16-02-2010, 01:41
Жестока :). У меня тоже svn, но для локальных приложений и сайтов.
Что-то мне кажется экспорт всего сайта целиком весьма затратен по времени. »
Так используй XCOPY, он позволяет копировать только измененные файлы. Очень просто и быстро.

Igor_I
16-02-2010, 19:57
Delirium, а где жестока?
Если можешь опиши свою работу с сайтами.

Delirium
17-02-2010, 01:01
Ааа, я понял, в чем между нашими случаями разница. У меня сайт лежит у меня же на сервере, т.к. у меня хостинг и прочее - я сам(белый IP + доменное имя). Поэтому я настраиваю SVN на нужную папку и вперед.
А как вообще разрешено копировать изменения на интернетовский адрес в вашем случае?

Igor_I
17-02-2010, 19:19
Как разрешено, как хочешь так и делаешь. Всё моё. Первой мыслей, да и реализацией было извлечение рабочей копии на сайт. Но мне что-то не понравилось присутвствие директории .svn на сайте и тут встретилась статья на хабре. Это ж какая дыра, все исходники напоказ. Поэтому надо делать через экспорт. А экспорт только всех исходников. Правда есть вариант частичного экспорта, но он только через TortoiseSVN. Вот сижу репу чешу. Оба хендбука читаю, но есть какие-то непонятки.

Delirium
18-02-2010, 01:25
Igor_I, и все таки давайте уточним:
Имеется локальный сайт, который потом надо будет перенести на удаленный, так? Так что мешает то настроить копирование через XCOPY с указанием конкретных папок и добавлением папки svn в исключения? Или я что то не так понимаю?

Igor_I
18-02-2010, 18:38
Что-то я не могу понять что такое xcopy. Если это команда в Windows, то каким образом скопировать файлы на удалённый сайт, причём с авторизацией. Потому как давать кому-то в интернете права на запись что-то не вдохновляет.
Но суть темы не в этом, это второй вопрос. Первый как работать с svn. Расскажи свою систему правок, фиксаций, созданий веток.

Delirium
24-02-2010, 01:37
Да вроде бы все просто. Создается хранилище, в него заливается первоначальный проект с исходниками. Удаляется исходная папка, и через SVN восстанавливается. После этого делаю изменения в проекта и потом на папке правой кнопкой - SVN Commit. Если добавляются новые файлы, включаю их. Файлы папок debug и release исключаю. При коммите пишу, что сделал :)

Igor_I
06-03-2010, 15:49
К чему пришел. Использую черепашку (TortoiseSVN)
Хранилище с общепринятой структурой. trunk branches tags
Сделали ответвление (branches/0.1.0) - с ним работаем локально. Это рабочая копия разработчика.
Пришла пора сливать со стволом.
1 Делаем рабочую копию trunk
2 Сливаем ответление со стволом, выбирая нужный пункт из контекстного меню на рабочей копии транка
3 Фиксируем измения рабочей копии транка с самим транком
4 на удаленном сервере: svn co http://*:8080/repos/local/trunk --username * --password * /home/data/workcopy/site.com
5 на удаленном сервере: svn export /home/data/workcopy/site.com --force /home/data/www/site.com
6 Делаем новое ответвление из рабочей копии транка, выбирая нужный пункт из контекстного меню
7 Делаем переключение рабочей копии разработчика на новое ответвление.
8 Работаем.
До тегов пока не дошел.




© OSzone.net 2001-2012