PDA

Просмотр полной версии : FD, TortoiseSVN и branches


Zebestov
16.09.2010, 15:56
Вот я создаю проект в FD, указываю его Location "D://flash/project1/trunk" и работаю в этой папке. А когда надо "ответвиться", то я так понял все файлы из trunk копируются в branches и, следовательно, работать надо там? Или я ошибаюсь и все по прежнему происходит в trunk?
Если не ошибаюсь — как это организовать в FD?

i.o.
16.09.2010, 16:07
а что за версия у FD?

Zebestov
16.09.2010, 16:11
3.2.2

i.o.
16.09.2010, 16:13
советую обновить - http://www.flashdevelop.org/community/viewtopic.php?f=9&t=3529
там добавлена встроенная поддержка SVN. Может и твой вопрос разрешится.

Добавлено через 3 минуты
отпишись потом как поставишь )

Zebestov
16.09.2010, 17:40
Ставить не спешу — дождусь стабильной версии.
Думаю черепахи достаточно, просто я не разобрался.
Читаю пока доку — нифига не могу разобрать... не получается.

i.o.
16.09.2010, 17:57
Я тоже пока не все знаю в свн. Но вот вопрос такой - а зачем ответвляться? Мне обычного commit'а хватает пока. Если что-то нужно восстановить или прошлое посмотреть, то без проблем можно пройтись по ревизиям в репозитории и получить, что нужно. Буду благодарен, если кто-то на простом примере объяснит в каких ситуациях без ответвлений нельзя обойтись?

leofit
16.09.2010, 19:31
2 i.o.
Крупный проект. Работают несколько человек. Первый делает компонент №1, второй компонент №2 и т.п. Одновременно.
Для тестирования и отладки выливают текущее состояние работы на тестовый сервер, проект там проверяют тестеры и руководство.

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

Котяра
16.09.2010, 19:43
2 i.o.
Крупный проект. Работают несколько человек. Первый делает компонент №1, второй компонент №2 и т.п. Одновременно.
Для тестирования и отладки выливают текущее состояние работы на тестовый сервер, проект там проверяют тестеры и руководство.

Так вот у двух разработчиков работа готова, у других трех нет. Все изменения залиты на тестовый сервер, два компонента работают, 3 сбоят. Все взаимосвязано. Свн один, ветка одна. Как выливать на боевой сервер изменения?
А как помогут тут бранчи?
Заливайте на раб. сервер стабильную ревизию.

leofit
16.09.2010, 20:08
Каждый разработчик создает ветку, работает с ней, в итоге на сервер выливается результат слияния готовых веток.
В случае одной только основной ветви разработчикам приходится ждать друга, не коммитить и т.п., но это тоже нормальный вариант

-De-
16.09.2010, 20:43
Можно закинуть в бранч отдельные файлы. Собсно берёшь и закидываешь в черепашке...

Zebestov
16.09.2010, 22:11
Насчет закидывать отдельные файлы — ну и как с ними работать? Ну если это классы те же.
Короче поковыряв/потренировавшись пришел пока к такому подходу (не факт, что окончательному):
Работаем в основной ветке (файлы проекта в trunk). Надо добавить что-то существенное и не одно — ответвляем весь проект в branches/X.Y.Z (сколько одновременных работ — столько копий) вместе с файлом проекта FD. Таким образом в FD каждый себе открывает проект-клон — морока весьма невелика.

ну пока так...

Котяра
16.09.2010, 23:32
У каждого разраба до апдейта и коммита практически свой локальный бранч на компе существует.
комить, но не апдейться (если нет автоапдейтов)...
можно временно помечать файлы как игнор, да и много ещё как.
Кроме того, когда работаешь с серверами, обычно на тестовый сервак ставлю апдейтер который по крону раз в 2-10 минуты, либо по команде делает update из svn, причём может из нескольких (одна графика контента, другая flash, третья серверные скрипты)
как в этом случае бранчи делать? на каждого заводить свой тестовый сервер?

Я просто никогда бранчами для этого не пользовался, поэтому могу быть не прав. Бранч - только для реального ответвления, который мержинга и не предусматривает чаще всего.
Обычно хватает просто договорённостей между 3 -мя разрабами как в примере.
Работаю с svn лет 5 в больших коллективах если что..

Да и вообще - надо модульно мыслить) делать так чтоб пофиг было что другие 20 закоммитили/проапдейтили.

i.o.
17.09.2010, 00:14
придерживаюсь мнения Бендера, т.е Котяры )

Zebestov
17.09.2010, 13:20
Спасибо всем за ответы. Немного просветился в этом вопросе.

Bgg
17.09.2010, 15:34
советую обновить - http://www.flashdevelop.org/community/viewtopic.php?f=9&t=3529
там добавлена встроенная поддержка SVN. Может и твой вопрос разрешится.

Добавлено через 3 минуты
отпишись потом как поставишь )

А с пакетами там ничего не придумали? Хотелось бы как в FB перетаскивать классы по пакетам и не метаться по проекту в поисках не вставленных импортов.

Zebestov
17.09.2010, 15:45
А как помогут тут бранчи?
Из того, что написано в svnbook-е и доках к тому же TortoiseSVN, я понял, что именно для того в основном они и заточены.

i.o.
17.09.2010, 16:10
А с пакетами там ничего не придумали?
да вроде нет. Пока все так же при смене папки приходится и пакет переименовывать

Bgg
22.09.2010, 14:54
Работаем в основной ветке (файлы проекта в trunk). Надо добавить что-то существенное и не одно — ответвляем весь проект в branches/X.Y.Z (сколько одновременных работ — столько копий) вместе с файлом проекта FD. Таким образом в FD каждый себе открывает проект-клон — морока весьма невелика.

ну пока так...
А так все делают?
Что то я не нашел в TortoiseSVN как по нормальному файлы скопировать. Руками что в проводнике что ли?)

Zebestov
22.09.2010, 15:15
А так все делают?
Из того, что я вычитал в процессе изучения — для того и задумано.
Что то я не нашел в TortoiseSVN как по нормальному файлы скопировать. Руками что в проводнике что ли?)
Там есть пункт меню такой — "Branch/tag..." — отлично работает. Ответвляешь проект в branches (в репозитории) и потом апдейтишь соотв. папку /branches в рабочей копии.
Для меня удобство в том, что у бранча есть свои ревизии (ну если довольно крупная работа ведется) которые можно после слияния в основной проект грохнуть вместе с веткой. Не скапливается мусор в репозитории.

Bgg
02.01.2011, 03:36
А что все делают с fla файлами когда с одним файлом работают несколько человек? Например иллюстратор засел на два дня в файл и залочил его, и мне нужно поработать пару дней с ним... И что потом их объединять вручную что ли? В CS5 ходят слухи что можно работать над одним файлом вместе, кто нибудь пользовался? Меняется один файл удаленно или объединяются потом два?

dark256
02.01.2011, 16:42
Ой. А у меня от этого СВНа черепашьего тока волосы седые. Версия 1.6.2.
Раз в неделю ему наставал needCleanup и все.

Работали вдвоем с коллегой за соседним компом. я плющу ФЛА, он .AS.
Рабочий день окончен, коммитимся, апдейтимся и у обоих весь каталог лочится.
Ручками пытались лечить - без толку. Удаляем и полностью восстанавливаем версию с сервера.
Как правило - предыдущую, без дневных изменений.
Вобще дурдом. Похоже, что все коммиты и апдейты надо делать при закрытой среде разработки. Какие там кроны... Толкового мануала с примерами так и не нашел. Все что есть на раговорном английском :(

В результате сейчас весь этот аппарат используется вместо флэшки - чтобы на работе и дома были одни и те же версии проектов. И работаю один :)
Чуствую что сами дураки где-то, но где - не пойму. И откат на предыдущую версию неудобен - допустим мне надо часть из последнего файла, чать из пред-пред-идущего. Update to Revision - дает тот же самый файл на том же месте. В результате текущий приходится куда-то копировать, откатывать тот что в каталоге, открывать оба и руками соединять нужное. Плюнул вообще на все фичи и когда делаю какие-то критические модификации ( во ФЛА файлах) просто создаю его копию с новым порядковым номером и присоединяю к общей базе :(

Чувствую, что забиваю микроскопом гвозди...

-----

Соответственно параллельно работать над одним и тем же фла-файлом - не то что не получается ( в ЦС3 ) а Черепаха просто шлет далеко с такими стыковками.

udaaff
02.01.2011, 17:27
В CS5 ходят слухи что можно работать над одним файлом вместе, кто нибудь пользовался? Меняется один файл удаленно или объединяются потом два?
http://help.adobe.com/ru_RU/flash/cs/using/WSd60f23110762d6b883b18f10cb1fe1af6-7f12a.html#WSb03e830bd6f770ee61e86108124bd84c943-8000

dark256
02.01.2011, 17:34
О! Круто!

surlac
06.01.2011, 01:24
А когда надо "ответвиться", то я так понял все файлы из 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 закоммитили/проапдейтили.
Кстати, кто-нибудь пользуется распределенными системами контроля? Есть преимущества?

Bgg
06.01.2011, 18:52
http://help.adobe.com/ru_RU/flash/cs/using/WSd60f23110762d6b883b18f10cb1fe1af6-7f12a.html#WSb03e830bd6f770ee61e86108124bd84c943-8000

Спасибо. Теперь нужно попинать начальство по поводу перехода с CS4.