Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.07.2013, 00:15
Krusty вне форума Посмотреть профиль Отправить личное сообщение для Krusty Найти все сообщения от Krusty
  № 1  
Ответить с цитированием
Krusty

Регистрация: Jul 2007
Сообщений: 393
По умолчанию SVN - перенос проекта из директории

Может быть, кто-то сталкивался. Я именно с SVN никогда дела не имел.
Есть проект на сервере. Есть .svn в проекте.
Код:
svn info
в соответствующей директории
выдает урл(мертвый), где, если я понимаю верно, разработчики commit-или свою работу, и оно уходило на сервер.
Первая задача - как бы начать новый проект и всю текущую разработку утянуть к себе в качестве первой фиксации?

Добавлено через 5 минут
Виноват, заголовок не исправил на внятный.

Старый 13.07.2013, 00:35
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 2  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Берите себе каталог (без .svn) и вперед. Если svn не слишком старый, то каталог будет один. Если слишком старый, копируете и выполняете в нем что-нибудь страшное вроде
Код:
find . -name '.svn' -exec rm -r {} ';'
Затем svn import (в репозиторий) и svn checkout (чтобы получить рабочую копию).

Старый 13.07.2013, 08:01
Krusty вне форума Посмотреть профиль Отправить личное сообщение для Krusty Найти все сообщения от Krusty
  № 3  
Ответить с цитированием
Krusty

Регистрация: Jul 2007
Сообщений: 393
Да, вроде бы в новых версиях .svn стал один. Значит, старый, тут он в каждом каталоге.
А в SVN можно сделать так - коммитить в транк, подходящую revision опубликовать, а песочницу иметь локально(ну и что бы среда при запуске проекта заливала это еще куда-то на сервер, которая будет test1.domain.com)?

Добавлено через 6 минут
И еще. Удаляя .svn каталог, мы же лишаемся информации, какие именно файлы были в проекте? Просто там дофига лишнего, потом удалять что ли вручную это из проекта?

Старый 13.07.2013, 15:42
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 4  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Цитата:
И еще. Удаляя .svn каталог, мы же лишаемся информации, какие именно файлы были в проекте? Просто там дофига лишнего, потом удалять что ли вручную это из проекта?
Я вспомнил правильное решение. svn export из рабочей копии. Скопирует именно файлы проекта. А svn properties в любом случае нужно будет вручную переносить (или скриптом).

Цитата:
А в SVN можно сделать так - коммитить в транк, подходящую revision опубликовать, а песочницу иметь локально(ну и что бы среда при запуске проекта заливала это еще куда-то на сервер, которая будет test1.domain.com)?
Второе точно нельзя. svn - централизованная система. Т.е. репозиторий всегда один и только в него выполняется коммит изменений. "Песочница" - это что? В ней нужна история изменений? Если нужна, то точно не умеет. Используйте ветки, которые хранятся на сервере. А при необходимости сливайте ветки в транк.

Старый 13.07.2013, 16:15
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 5  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Советую. Всё интуитивно понятно.
__________________
return this...

Старый 14.07.2013, 12:55
Krusty вне форума Посмотреть профиль Отправить личное сообщение для Krusty Найти все сообщения от Krusty
  № 6  
Ответить с цитированием
Krusty

Регистрация: Jul 2007
Сообщений: 393
Цитата:
Сообщение от AlexCooper Посмотреть сообщение
Советую. Всё интуитивно понятно.
Спасибо, первым делом начал читать именно это.


Как бы все немного прояснилось.
То есть так. Сначала создадим новый репрозиторий, в него через svn export делаем экспорт текущей рабочей копии.
Потом настраиваем среду для разработчиков, которая умеет c svn работать. Утаскиваем первую revision к себе локально(то есть песочница), делаем правки. Коммитим на сервер, получаем вторую revision. Т.к. domain.com уже используется, правки сразу станут актуальными( если, конечно, оставим директорию рабочую для домена связанную с хранилищем).
Далее - как решается вопрос тестирования? Если я хочу выгрузить файлы на сервер и там запустить (учитывая, что в проекте сотни файлов, без публикации на domain.com, само собой, итд), и как решить вопрос с публикацией только основательно проверенных и стабильных revision(делать ответвления, их тестить, потом сливать)?

Может, кто-то опишет, как именно у них работают с SVN на проекте?

Старый 14.07.2013, 14:10
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 7  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Цитата:
То есть так. Сначала создадим новый репрозиторий, в него через svn export делаем экспорт текущей рабочей копии.
Не совсем. Сначала через svn export вы получаете чистую (без привязки к репозиторию) копию проекта. Затем через svn import заливаете ее в репозиторий. Далее уже примерно так, как вы описали. Через svn checkout дает первую ревизию. Дальше можно с ней работать и коммитить. Правки после успешного коммита появляются на сервере и видны всем. Перед удалением/переносом файлов/каталогов рекомендуется делать еще svn up, иначе будет ругаться на tree conflict (есть особенности версионирования каталогов).

Цитата:
Далее - как решается вопрос тестирования?
Если правильно, то svn checkout/svn update/svn export из репозитория, автоматическая сборка всего проекта и его тестирования.

Цитата:
Если я хочу выгрузить файлы на сервер и там запустить (учитывая, что в проекте сотни файлов, без публикации на domain.com, само собой, итд),
Т.е. без коммита? Ну собираете у себя и вручную заливаете. Проблем особых нет.

Цитата:
и как решить вопрос с публикацией только основательно проверенных и стабильных revision(делать ответвления, их тестить, потом сливать)?
Ну да, можно так. Я замечу здесь, что вы путаете коммиты и release policy. Это совершенно разные аспекты управления проектами и выполняются по-разному. Можно вполне публиковать в репозиторий и непроверенные вещи, все зависит от методики управления проектом. Подробнее про release management здесь.

Цитата:
жет, кто-то опишет, как именно у них работают с SVN на проекте?
Официальную теорию уже читали? Конкретно у нас все изменения идут в trunk. Перед релизом объявляется feature freese, все проверяется, баги правятся (в том же trunk). В момент релиза trunk сливается в ветку current (можно копированием, можно - merge, в самом первом релизе current создается копированием trunk'а) и заводится отдельный тег. Продукт заливается на боевые сервера. После этого можно опять гадить в trunk. Ну и отдельно проходит процедура hotfix для боевой версии. В этом случае патч делается в current, из current же собирается новый релиз и потом правка портируется (мержится) в trunk. Отдельные ветки под фичу - только по мере необходимости (если там что-то большое, делается долго и ломает совместимость). Это далеко не единственный вариант управления изменениями, могут быть и различные другие. Этот был выбран под наши сценарии и нашу команду.

Старый 14.07.2013, 14:10
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 8  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Цитата:
Сообщение от Krusty Посмотреть сообщение
Далее - как решается вопрос тестирования? Если я хочу выгрузить файлы на сервер и там запустить (учитывая, что в проекте сотни файлов, без публикации на domain.com, само собой, итд), и как решить вопрос с публикацией только основательно проверенных и стабильных revision(делать ответвления, их тестить, потом сливать)?

Может, кто-то опишет, как именно у них работают с SVN на проекте?
У меня на прошлой работе ползовались самописным решением: была написана небольшая админка на PHP которая напрямую работала с SVN сервером. Пользователь заходил, выбирал ревизию, проект собирался, проводились тесты и раскладывался на сервера (тестовые или production). Если что-то не так было на production, то можно было быстро откатится на предыдую версию.

Есть и готовые решения, например TeamCity

Старый 17.07.2013, 07:50
Krusty вне форума Посмотреть профиль Отправить личное сообщение для Krusty Найти все сообщения от Krusty
  № 9  
Ответить с цитированием
Krusty

Регистрация: Jul 2007
Сообщений: 393
Исходя из того, как делал раньше, и из советов - выбрал такую структуру - девелпомент, тест, продакшн.
Все работают с девелопмент веткой, потому code freeze, потом копирование в тест ветку, там детальный тест интеграции вручную(не автоматом), автоматом тесты- в девелопмент ветке. Если ок - в продакшен, там новый тэг, если нет - доработка и повтор. Тест - на реальных данных(работа с базой), девелопмент на основе бэкапной базы. Планирую использовать SCRUM.
Если хотфиксы - то на продакшн ветке, потом svn merge изменения в девелопмент ветку.
Проект на ПХП в основном, но я это потихоньку буду менять.
1) Я так понимаю, публикацию раньше делали через получение рабочей копии( наличие каталогов .svn). Если после этого я svn export делал из рабочей копии (которую правили вручную после того, как с проекта ушли люди, и до меня) - естественно, правки вручную попали в первый revision.
2) http://svnbook.red-bean.com/ только начал, сейчас дочитал только по клиенту http://tortoisesvn.net/.
3) Если накатал класс и хочется запустить - просто заливка на сервер(локально не хочу поддерживать)
4) Если хочется посмотреть на интеграцию - то как лучше всего это организовать? Сторонний софт(TeamCity умеет?) должен извлечь рабочую копию из репозитория(именно тот revision, с которым работаю я ), загрузить куда-то, залить измененные мной файлы, я потыкаю мышкой, если все ок - то я делаю commit правок в хранилище, получаю новый revision?

Ничего не напутал, выглядит оптимально?

Старый 17.07.2013, 20:17
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 10  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Что до сохранения истории. Я за время жизни с SVN так никогда и не переписывал историю, но вот буквально на днях пришлось это делать в Gitе.
Мой вам совет: если вы не испытываете особых сентиментов к прошлому вашего проекта - просто, как уже было сказано, export / import и понеслась. У меня два дня заняло удалить шесть mp4 файлов из совсем небольшого репозитория со всего 130 коммитами / двумя бранчами.
__________________
Hell is the possibility of sanity

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:40.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:40.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.