Zend Studio и CVS/SVN

    Доброго времени суток всем хабраридерам. Хотел бы с вами поделиться своим опытом по настройке Zend Studio на работу с репозитарием системы контроля версий (CVS/SVN). Хабралюди, имеющие сведения по этой теме могут отписаться в комментариях был ли их путь так тернист как мой, либо где-то в инете нашли они сопутствующую доку.

    А все началось с того, что мой проект стал набирать обороты и я перестал один над ним работать. Установив и настроив Subversion я принялся к настройке своей любимой IDE. Сразу хочу заметить, что я настраивал под SVN и данное руководство будет актуально под эту систему, но настройка под CVS сильно отличаться не будет. Итак к делу:

    Project -> New Project = Создаем проект и настраиваем его под ваши нужды, попутно если он не локальный добавляем в него (с)фтп и прочие сервера, либо директории оттуда же.
    Tools -> Preferences -> Source Control = выбираем актуальную для своего сервер систему контроля версий.
    Tools -> Subversion -> Checkout = сюда забегаем чтобы внести настройки для самого сервера. Рассмотри каждую подробнее:
    Module url — ссылка на ваш проект, типа svn://ваш_адрес/имя_проекта или ваш_адрес/имя_проекта
    Working Directory = вот тут собственно у меня и была загвоздка, что я по незнанию своему указывал тут не папку в которой находиться и создан мой проект, а другую совсем папку. Посему и вам советую пр создании проекта сразу создать в нем папку, в которую и будет checkout'иться проект с сервака к вам и обратно.
    User Name && Password = авторизация на сервере, думаю и так все ясно.

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

    Вот собственно и прошел ваш первый checkout, надеюсь успешно получены файлы с сервера, если нет опишите в комментах.

    Ну а дальше работайте с проектом, добавляйте и изменяйте ваше файлы, в общем развивайте проект дружно и commit'те на здоровье.

    Здоровая критика и поправки принимаю в комментариях.
    Поделиться публикацией

    Комментарии 52

      +2
      отлично!
      У тебя еще и видео по этом поводу, помнится, было, ссылка на него тоже, скорее всего, не помешает.
        0
        А как насчёт экспорта на фтп?
        Я когда пытался начать пользоваться eclipse для php проектов, столкнулся с тем, что очень неудобно синхронизировать проект с фтп.
        А именно неудобство заключалось в том, что синхронизировались также и .svn каталоги.
        Плюс к этому может возникнуть необходимость выложить на фтп старую ревизию.
        • НЛО прилетело и опубликовало эту надпись здесь
            0
            да, для этого используют export, сам Eclipse тут ни при чем
              0
              Эклипс тут таки причём. Если уж использовать такой тяжёлый IDE, так пусть в нём будет всё.

              Если вы предлагаете использовать внешние клиенты, сейчас так и поступаю Far + gvim + TortiseSVN
                0
                Насчет эклипса - пользуюсь и у меня там все есть, поставьте Aptana. Она имеет эту жизненно необходимую фичу "Syncronize" как по фтп, сфтп... Но для этого файлы проекта должны лежать локально. И там можно настроить маску для файлов-папок, которые не надо синхронизировать.
                  0
                  Это здорово. Однако, есть ещё вопрос без ответа.
                  Как я могу из эклипса экспортнуть ревизию с конкретным номером на фтп?
                    0
                    только накатив ее на свой проект (использую subclipse) и сделав синк с фтп.
            0
            Статья была бы более полезной для PHP программистов, если бы было проведено сравнение SVN клиента в Zend Studio со сторонними клиентами, например Tortoise SVN.
            Я, например, пользуюсь Tortoise SVN и он меня всем устраивает.
            Сам я ничего плохого не могу сказать про Zend Studio, т.к. им не пользуюсь (пишу на Perl).
              0
              Я использую Nusphere PhpEd + TortoiseSVN.
              Commit и Update делаю через Shell menu.
              Неудобств не испытываю.
                0
                Разрешать конфликты он умеет? Визуальные средства для merge есть? В свое время пришлось отказаться от него как раз по этой причине.
                Поэтому мой выбор :
                windows - Tortoise SVN
                linux - KDESvn + KDiff3
                  0
                  назвать это клиентом можно с большой натяжкой,
                  скорее - несколько топорная обертка к основным консольным командам svn
                    0
                    Уже давно ушёл от Zend Studio в Eclipse. Вопрос - оно хоть на километр приблизилось к уровню интеграции SVN и CVS в Eclipse? Насколько я помню, ещё, кажется, в версии 3.5 интеграции с системами контроля версий у ZS была довольно убогой...
                      0
                      не приблизилось — я работаю в Eclipse, а коллега в Zend. Инструментарий в Zend вызывает жалость (и ведь Zend платный, а Eclipse бесплатная!)
                        0
                        Согласен. Один из наиболее важных для меня плюсов в Eclipse — это тесная и очень удобная интеграфия с SVN и CVS. (Смотрел Zend — очень слабо сделано)

                        Скажите, davojan, вы используете Eclipse для Web-программирования? Если да, то каким плагином (плагинами) пользуетесь? Потому как PHPEclipse мне кажется ну очень недоработанным, а лучшего решения я пока не нашёл.
                          0
                            0
                            Как раз собирался его попробовать. ;) Спасибо.
                              0
                              пробуйте смело. впечатления самые положительные. завтра обещают релиз - проверяю вот, нет ли случайно уже.
                            0
                            PHPEclipse пока что, жду, когда доработают PDT до стабильности и полного функционала (в нём, например, нет выделения остальных вхождений переменной, которая под курсором). PDT под виндой оказался пока довольно глючным.
                              0
                              после night build phpeclipse стал очень даже ничего и форматирует теперь все правильно и работает быстрее. PDT ставил - ну Zend как всегда сделали монстра - перенесли тяжесть Zend Studio на Eclipse - два или три раза пробовал - не смог с ним работать - очень все там криво. Хотя может конечно релиз это поправил.
                                0
                                Хм. Попробую обновить, спасибо. PHPEclise 4-месячной давности был достаточно крив.
                                  0
                                  Да ладно?! Там ещё кто-то что-то делает? Пойду погляжу...
                                    0
                                    да вот пару месяцев назад они вдруг разразились и сделали так называемый "ночной билд". пофиксили в нем прямо дофига всего - я даже удивился. ссылки в download на него нет - читай новости на phpeclipse.de - самая первая новость ведет на него.
                                      0
                                      Спасибо, уже всё почитал. Сей факт не может не радовать.
                                      Спасибо ещё раз, что навёл, а то я уже давно надежду потерял :) Раньше регулярно заходил туда.
                              0
                              Может я конечно старпер, ничего не понимаю в современных тенденциях программирования и зря обижаю юных программистов, но, по-моему, если человек не в состоянии без мануала ткнуть мышкой в три пункта меню, чтобы настроить SVN в зенде, то ему не нужно программировать. Вообще.
                                0
                                Вы не представляете каких душевных усилий мне стоило не съязвить насчет PHP , по поводу того, что этот пост появился именно о настройке зенда, а не , скажем, о какой-нибудь java или C++ IDE.
                                  –1
                                  ИМО, поддержка SVN, как и CVS, в ZS реализована через >|<опу. Посему фсад. И студию за компанию ;)
                                  0
                                  http://www.habrahabr.ru/blog/pm/9492.htm…

                                  у зенда не очень удобный cvs/svn-клиент. тем более, что ревизии, сделанные через Zend конфликтуют с ревизиями, сделанными другими svn-клиентами (Tortoise, SmartSVN)
                                    0
                                    Точно уже не помню, но делал я так:
                                    Сначала сдернул весь проект из svn тортузой.
                                    Затем из этой директории создал в Zend проект.
                                    Поскольку использую SVN over SSH пришлось прописать переменную окружения
                                    SVN_SSH="C:\\Program Files\\PuTTY\\plink.exe"
                                    причем именно так - с двыойными бэкслешами.
                                    пользуюсь одновременно и зендом (5.5) и тортузой - все нормуль
                                      0
                                      Работаю с svn через TortoiseSVN - удобнее и универсальнее.
                                      В зенде для меня реально полезна только функция Diff.

                                      И вообще, к зендовому мендеждеру файлов я отношусь с недоверием. Было пару случаев, когда он удалял мне кроме указанного файла все остальные в этой поддиректории.
                                        0
                                        к Туртойсу еще можно прикрутить Araxis для сравнения файлов - вообще сказка.
                                          0
                                          try free for 30 days?
                                            0
                                            Из бесплатных есть WinMerge для diff, и P4Merge для merge.
                                              0
                                              Ну, если Вы купили Зенд, то почему бы не купить Араксис?
                                          0
                                          Вместо дефолтного svn клиента в ZDE прикрутил TortoiseSVN.

                                          Настройка:
                                          В ZendStudio - идём в настройки Source Control
                                          Source Control Tools : Subversion
                                          Path to SVN : c:\path\to\your\bat\file

                                          В бат файле пишем строчку -

                                          “C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe” /command:%1 /path:%2 /notempfile

                                          Это реализует простые команды без параметров типа update, commit, log.

                                          http://bege.php.com.ua/2007/03/04/zendstudio-tortoisesvn/
                                            0
                                            Подскажите как использовать нестандартные порты в этой схеме?

                                            svn+ssh:// my_host / path to repository

                                            0
                                            В чем заключается тернистость вашего пути???
                                              0
                                              возможно я еще не нашел как полностью использовать возможности ZEND+SVN.
                                              Но одного пока не могу понять, почему я могу делать в зенде только (update|commit|status)
                                              а все остальное недоступно.
                                              Как по мне, так возможности ограничены, а по работе чаще использую svn.exe или TortoiseSVN.
                                                0
                                                угу... так и есть...
                                                пользую TortoiseSVN параллельно...
                                                0
                                                Использую Zend+CVS.
                                                Самое обидное, что нет команды delete... с SVN та же проблема видимо, поэтому приходится пользовать еще и Tortoise CVS. Кстати читал на офф сайте Зенда, что дополнительные команды для клиента CVS/CVN в ZS в разработке и появятся в новых версиях студии, но когда это будет - абсолютно не известно...
                                                  0
                                                  Есть delete в SVN. Куда без неё то?
                                                    0
                                                    значит только в CVS клиенте в ZS нету delete... а может кто-нибудь вкратце описать есть ли преимущества SVN перед CVS, если таковые имеются?
                                                      +1
                                                      • Атоммарные коммиты.

                                                      • Очень быстрые операции таггинга/бранчинга (за константное время).

                                                      • Возможность переименования фалов/переноса в другие директории в дереве с сохранением истории.

                                                      • Возможность посмотреть сделанные локально изменения без связи с репозиторием.

                                                      Ну и ещё много чего, почитайте тут.
                                                  0
                                                  Вообще, cvs/svn это вчерашниый день. Лично я долго использовал в production git. Ну и в качестве редактора ViM. (Редактор и git я до сих пор использую, но уже не там). :)
                                                    0
                                                    Очень, конечно, стыдно признавать, но я не смог настроить даже Зендовскую систему контроля версий... :(
                                                    Вот если я использую Subversion систему в ZEND, то что прописать в полях формы checkout, если работаю локально?!
                                                    Какой именно УРЛ оно хочет в поле Module URL?? И вот папка рабочей директории - это та, в которой лежить .zpj файл? Или та, в которой мои файлы?
                                                    Можно рабочий пример, если Вам не сложно?
                                                      0
                                                      Module url - ссылка на ваш проект, типа svn://ваш_адрес/имя_проекта или http://ваш_адрес/имя_проекта
                                                      Пример:
                                                      svn://192.168.0.1/var/svn/myproject
                                                      http://192.168.0.1/svn/myproject
                                                        0
                                                        disc, спасибо з ответ! А можно еще помучить? :)
                                                        Что означают преффиксы svn и http? Типа для локальных файлов нужно СВН писать? А для проекта, лежащего в И-Нете ХТТП?
                                                        И еще вопрос: если я вот под виндой... + настроен виртуальный сервер на Апаче... что мне написать? Как-то так:
                                                        svn://Имя_Моего_Виртуального_Хоста/Имя_Файла_Проекта
                                                        Заранее спасибо!
                                                          0
                                                          http://Имя_Моего_Виртуального_Хоста/Имя_Файла_Проекта
                                                            0
                                                            Вот так и пробовал... Не захотело запускаться... :(
                                                              0
                                                              значит у тебя проблема с настройками и надо рыть в той части, сам я использовал svn://
                                                      0
                                                      Спасибо автору за статью!
                                                      И, хотя я уже достаточно давно и сам все настроил и имею опыт успешной эксплуатации Subversion в Zend Studio 5.5.1, испытываю проблемы при работе с юникодом при чтении комментариев на русском в логах ревизий, а до недавнего времени были еще и проблемы с commit если в комментариях были non-latin символы.

                                                      Возможно кому-то будет полезно узнать как я устранил проблему с коммитом:
                                                      1. Для начала установите в системе последний релиз SVN http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=8100
                                                      2. Укажите в настройках системы контроля версий в Zend Studio путь к бинарнику клиента C:\Program Files\Subversion\bin\svn.exe
                                                      3. Для того, чтобы в коммандном интерпретаторе корректно отображались unicode символы нужно установить значение переменой окружения командой: set APR_ICONV_PATH=C:\Program Files\Subversion\iconv
                                                      иначе все такие символы будут отображаться как "?\209?\130?\208"

                                                      Но вот облом, в Zend Studio при выполнении комманды log после проделанных выше телодвижений уже вместо абракадабры в виде "?\209?\130?\208" выдается кириллический текст НО в неправильной кодировке: "’Ґбв ЄЁаЁ««Ёжл".
                                                      Я пробовал менять и настройки глобальной кодировки в Студии и шрифты менял, но все без толку. Такое ощущение, что окно Source Control Output живет по своим законам и не подчиняется настройкам самой студии.
                                                      Если кому-то удастся решить проблему чтения кириллических комментариев в логах ревизий, то не сочтите за труд выложить решение сюда.
                                                      Пока же, единственный выход - юзать решение ZendStudio + TortoiseSVN описанное выше.
                                                        0
                                                        У моей коллеги такая же проблема. Прошу помочь, если кто знает решение.
                                                        Сам я к счастью перелез на linux, поэтому подобной проблемы не наблюдается.

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

                                                      Самое читаемое