войти зарегистрироваться

PHP whois

индекс
169,28

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://ваш_адрес/имя_проекта или http://ваш_адрес/имя_проекта
Working Directory = вот тут собственно у меня и была загвоздка, что я по незнанию своему указывал тут не папку в которой находиться и создан мой проект, а другую совсем папку. Посему и вам советую пр создании проекта сразу создать в нем папку, в которую и будет checkout'иться проект с сервака к вам и обратно.
User Name && Password = авторизация на сервере, думаю и так все ясно.

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

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

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

Здоровая критика и поправки принимаю в комментариях.

комментарии (51)

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

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

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

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

    И вообще, к зендовому мендеждеру файлов я отношусь с недоверием. Было пару случаев, когда он удалял мне кроме указанного файла все остальные в этой поддиректории.
    • к Туртойсу еще можно прикрутить Araxis для сравнения файлов - вообще сказка.
      • try free for 30 days?
        • Из бесплатных есть WinMerge для diff, и P4Merge для merge.
        • Ну, если Вы купили Зенд, то почему бы не купить Араксис?
  • Вместо дефолтного 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/
  • В чем заключается тернистость вашего пути???
  • возможно я еще не нашел как полностью использовать возможности ZEND+SVN.
    Но одного пока не могу понять, почему я могу делать в зенде только (update|commit|status)
    а все остальное недоступно.
    Как по мне, так возможности ограничены, а по работе чаще использую svn.exe или TortoiseSVN.
    • угу... так и есть...
      пользую TortoiseSVN параллельно...
  • Использую Zend+CVS.
    Самое обидное, что нет команды delete... с SVN та же проблема видимо, поэтому приходится пользовать еще и Tortoise CVS. Кстати читал на офф сайте Зенда, что дополнительные команды для клиента CVS/CVN в ZS в разработке и появятся в новых версиях студии, но когда это будет - абсолютно не известно...
    • Есть delete в SVN. Куда без неё то?
      • значит только в CVS клиенте в ZS нету delete... а может кто-нибудь вкратце описать есть ли преимущества SVN перед CVS, если таковые имеются?
          • Атоммарные коммиты.

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

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

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

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