Просмотр полной версии : FD, TortoiseSVN и branches
Zebestov
16.09.2010, 15:56
Вот я создаю проект в FD, указываю его Location "D://flash/project1/trunk" и работаю в этой папке. А когда надо "ответвиться", то я так понял все файлы из trunk копируются в branches и, следовательно, работать надо там? Или я ошибаюсь и все по прежнему происходит в trunk?
Если не ошибаюсь — как это организовать в FD?
Zebestov
16.09.2010, 16:11
3.2.2
советую обновить - http://www.flashdevelop.org/community/viewtopic.php?f=9&t=3529
там добавлена встроенная поддержка SVN. Может и твой вопрос разрешится.
Добавлено через 3 минуты
отпишись потом как поставишь )
Zebestov
16.09.2010, 17:40
Ставить не спешу — дождусь стабильной версии.
Думаю черепахи достаточно, просто я не разобрался.
Читаю пока доку — нифига не могу разобрать... не получается.
Я тоже пока не все знаю в свн. Но вот вопрос такой - а зачем ответвляться? Мне обычного commit'а хватает пока. Если что-то нужно восстановить или прошлое посмотреть, то без проблем можно пройтись по ревизиям в репозитории и получить, что нужно. Буду благодарен, если кто-то на простом примере объяснит в каких ситуациях без ответвлений нельзя обойтись?
2 i.o.
Крупный проект. Работают несколько человек. Первый делает компонент №1, второй компонент №2 и т.п. Одновременно.
Для тестирования и отладки выливают текущее состояние работы на тестовый сервер, проект там проверяют тестеры и руководство.
Так вот у двух разработчиков работа готова, у других трех нет. Все изменения залиты на тестовый сервер, два компонента работают, 3 сбоят. Все взаимосвязано. Свн один, ветка одна. Как выливать на боевой сервер изменения?
2 i.o.
Крупный проект. Работают несколько человек. Первый делает компонент №1, второй компонент №2 и т.п. Одновременно.
Для тестирования и отладки выливают текущее состояние работы на тестовый сервер, проект там проверяют тестеры и руководство.
Так вот у двух разработчиков работа готова, у других трех нет. Все изменения залиты на тестовый сервер, два компонента работают, 3 сбоят. Все взаимосвязано. Свн один, ветка одна. Как выливать на боевой сервер изменения?
А как помогут тут бранчи?
Заливайте на раб. сервер стабильную ревизию.
Каждый разработчик создает ветку, работает с ней, в итоге на сервер выливается результат слияния готовых веток.
В случае одной только основной ветви разработчикам приходится ждать друга, не коммитить и т.п., но это тоже нормальный вариант
Можно закинуть в бранч отдельные файлы. Собсно берёшь и закидываешь в черепашке...
Zebestov
16.09.2010, 22:11
Насчет закидывать отдельные файлы — ну и как с ними работать? Ну если это классы те же.
Короче поковыряв/потренировавшись пришел пока к такому подходу (не факт, что окончательному):
Работаем в основной ветке (файлы проекта в trunk). Надо добавить что-то существенное и не одно — ответвляем весь проект в branches/X.Y.Z (сколько одновременных работ — столько копий) вместе с файлом проекта FD. Таким образом в FD каждый себе открывает проект-клон — морока весьма невелика.
ну пока так...
У каждого разраба до апдейта и коммита практически свой локальный бранч на компе существует.
комить, но не апдейться (если нет автоапдейтов)...
можно временно помечать файлы как игнор, да и много ещё как.
Кроме того, когда работаешь с серверами, обычно на тестовый сервак ставлю апдейтер который по крону раз в 2-10 минуты, либо по команде делает update из svn, причём может из нескольких (одна графика контента, другая flash, третья серверные скрипты)
как в этом случае бранчи делать? на каждого заводить свой тестовый сервер?
Я просто никогда бранчами для этого не пользовался, поэтому могу быть не прав. Бранч - только для реального ответвления, который мержинга и не предусматривает чаще всего.
Обычно хватает просто договорённостей между 3 -мя разрабами как в примере.
Работаю с svn лет 5 в больших коллективах если что..
Да и вообще - надо модульно мыслить) делать так чтоб пофиг было что другие 20 закоммитили/проапдейтили.
придерживаюсь мнения Бендера, т.е Котяры )
Zebestov
17.09.2010, 13:20
Спасибо всем за ответы. Немного просветился в этом вопросе.
советую обновить - http://www.flashdevelop.org/community/viewtopic.php?f=9&t=3529
там добавлена встроенная поддержка SVN. Может и твой вопрос разрешится.
Добавлено через 3 минуты
отпишись потом как поставишь )
А с пакетами там ничего не придумали? Хотелось бы как в FB перетаскивать классы по пакетам и не метаться по проекту в поисках не вставленных импортов.
Zebestov
17.09.2010, 15:45
А как помогут тут бранчи?
Из того, что написано в svnbook-е и доках к тому же TortoiseSVN, я понял, что именно для того в основном они и заточены.
А с пакетами там ничего не придумали?
да вроде нет. Пока все так же при смене папки приходится и пакет переименовывать
Работаем в основной ветке (файлы проекта в trunk). Надо добавить что-то существенное и не одно — ответвляем весь проект в branches/X.Y.Z (сколько одновременных работ — столько копий) вместе с файлом проекта FD. Таким образом в FD каждый себе открывает проект-клон — морока весьма невелика.
ну пока так...
А так все делают?
Что то я не нашел в TortoiseSVN как по нормальному файлы скопировать. Руками что в проводнике что ли?)
Zebestov
22.09.2010, 15:15
А так все делают?
Из того, что я вычитал в процессе изучения — для того и задумано.
Что то я не нашел в TortoiseSVN как по нормальному файлы скопировать. Руками что в проводнике что ли?)
Там есть пункт меню такой — "Branch/tag..." — отлично работает. Ответвляешь проект в branches (в репозитории) и потом апдейтишь соотв. папку /branches в рабочей копии.
Для меня удобство в том, что у бранча есть свои ревизии (ну если довольно крупная работа ведется) которые можно после слияния в основной проект грохнуть вместе с веткой. Не скапливается мусор в репозитории.
А что все делают с fla файлами когда с одним файлом работают несколько человек? Например иллюстратор засел на два дня в файл и залочил его, и мне нужно поработать пару дней с ним... И что потом их объединять вручную что ли? В CS5 ходят слухи что можно работать над одним файлом вместе, кто нибудь пользовался? Меняется один файл удаленно или объединяются потом два?
Ой. А у меня от этого СВНа черепашьего тока волосы седые. Версия 1.6.2.
Раз в неделю ему наставал needCleanup и все.
Работали вдвоем с коллегой за соседним компом. я плющу ФЛА, он .AS.
Рабочий день окончен, коммитимся, апдейтимся и у обоих весь каталог лочится.
Ручками пытались лечить - без толку. Удаляем и полностью восстанавливаем версию с сервера.
Как правило - предыдущую, без дневных изменений.
Вобще дурдом. Похоже, что все коммиты и апдейты надо делать при закрытой среде разработки. Какие там кроны... Толкового мануала с примерами так и не нашел. Все что есть на раговорном английском :(
В результате сейчас весь этот аппарат используется вместо флэшки - чтобы на работе и дома были одни и те же версии проектов. И работаю один :)
Чуствую что сами дураки где-то, но где - не пойму. И откат на предыдущую версию неудобен - допустим мне надо часть из последнего файла, чать из пред-пред-идущего. Update to Revision - дает тот же самый файл на том же месте. В результате текущий приходится куда-то копировать, откатывать тот что в каталоге, открывать оба и руками соединять нужное. Плюнул вообще на все фичи и когда делаю какие-то критические модификации ( во ФЛА файлах) просто создаю его копию с новым порядковым номером и присоединяю к общей базе :(
Чувствую, что забиваю микроскопом гвозди...
-----
Соответственно параллельно работать над одним и тем же фла-файлом - не то что не получается ( в ЦС3 ) а Черепаха просто шлет далеко с такими стыковками.
В CS5 ходят слухи что можно работать над одним файлом вместе, кто нибудь пользовался? Меняется один файл удаленно или объединяются потом два?
http://help.adobe.com/ru_RU/flash/cs/using/WSd60f23110762d6b883b18f10cb1fe1af6-7f12a.html#WSb03e830bd6f770ee61e86108124bd84c943-8000
А когда надо "ответвиться", то я так понял все файлы из trunk копируются в branches и, следовательно, работать надо там? Или я ошибаюсь и все по прежнему происходит в trunk?
После создания branch на SVN-сервере файлы никуда не копируются, в /branches создаются линки на текущую версию файлов из trunk (чтобы не занимать место). Разрабы делают switch на branch коммитят свои изменения в ветку, которые накладываются на линки.
Насчет закидывать отдельные файлы — ну и как с ними работать?
Можно делать switch на отдельные файлы и при общем svn up часть файлов будет тянуться из trunk, часть - из branch.
обычно на тестовый сервак ставлю апдейтер который по крону раз в 2-10 минуты, либо по команде делает update из svn
Как вариант вместо написания скриптов для крона, можно перейти на Cruise control или Team City (http://www.flasher.ru/forum/showpost.php?p=962309&postcount=9).
Да и вообще - надо модульно мыслить) делать так чтоб пофиг было что другие 20 закоммитили/проапдейтили.
Кстати, кто-нибудь пользуется распределенными системами контроля? Есть преимущества?
http://help.adobe.com/ru_RU/flash/cs/using/WSd60f23110762d6b883b18f10cb1fe1af6-7f12a.html#WSb03e830bd6f770ee61e86108124bd84c943-8000
Спасибо. Теперь нужно попинать начальство по поводу перехода с CS4.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.