Подтвердить что ты не робот

Как начать работу с контролем версий и PHP

У меня нет абсолютно никакого понятия об управлении версиями. Только это может быть очень полезно во многих отношениях.

Я нашел несколько связанных вопросов, но ни один из них не начинается с абсолютного начала.

Я единственный разработчик в своей работе с использованием Mac OS X и традиционно использовал FTP.

Может ли кто-нибудь помочь мне с контролем версий в отношении проектов PHP (это имеет значение)?

4b9b3361

Ответ 1

Да, попробуйте, это того стоит. И язык, который вы используете, не имеет значения. Он отлично работает с PHP для меня, и он тоже будет для вас.

Преимущества

Если вы единственный разработчик, проще управлять версией. Тем не менее, вы найдете большие преимущества для использования системы контроля версий. Некоторые из самых простых преимуществ будут:

  • Никогда не задавайся вопросом, какая у вас последняя версия, как только вы вернетесь в проект (не более myproject090201-archive2-final6.zip)
  • Не бойтесь начать какой-то крупный рефакторинг, если вы допустили ошибку в своем файле, вы просто откатитесь к последней версии.
  • Если что-то перестает работать в вашем проекте, и вы чувствуете, что это сработало в какой-то момент, вы можете легко проверить некоторые из предыдущих версий и посмотреть разницу между рабочей версией и нерабочей версией, чтобы найти, что сломало код
  • Дополнительное резервное копирование вашего текущего проекта и даже лучше, если оно не на вашем компьютере... конечно, дополнительные баллы для резервного копирования вашей системы контроля версий, мы никогда не слишком осторожны, вы не хотите, чтобы перезапустите этот месячный проект?

Выбор

Как говорили некоторые, у вас есть несколько вариантов для вашей системы контроля версий, и я думаю, вы захотите начать бесплатную. Есть несколько отличных коммерческих продуктов, но свободным нечего стыдиться. Итак, вот несколько очень популярных бесплатных систем управления версиями:

Централизованный и распределенный

Subversion была там некоторое время, и она была классифицирована как "централизованная". Это означает, что каждый всегда будет получать последнюю версию и выполнять свою последнюю работу в одной центральной системе, часто в другой системе, хотя она может легко быть на вашей собственной машине. Это процесс, который легко понять.

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

Тенденция, безусловно, кажется, идет в сторону распределенной системы, но по мере того, как эти системы являются более свежими, они все еще не имеют инструментов графического интерфейса, которые делают его действительно удобным для пользователя, и иногда вы можете найти документацию немного легче. С другой стороны, все это, кажется, быстро исправляется.

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

Инструменты

Если вам абсолютно нужен инструмент графического интерфейса для вашего Mac, я бы выбрал SVN, чтобы начать работу с исходным кодом. Для этого (коммерческого) есть два очень хороших продукта:

И несколько другие (например, бесплатный svnX), которые, по моему мнению, становятся немного старыми и недружелюбными, но в любом случае это может быть интересно.

Если вы не возражаете против использования инструментов графического интерфейса, с помощью терминала вы сможете делать все то же самое с несколькими простыми командами с любой из вышеупомянутых систем.

Начальные точки

В любом случае вам понадобятся некоторые отправные точки.

  • Для Subversion ваша первая остановка должна быть их бесплатной книгой, Version Control with Subversion. Возьмите несколько часов своего дня, чтобы пройти через главы, это будет время, потраченное на время. Главы введения хорошо читаются, даже если вы не хотите использовать Subversion специально, потому что это поможет вам лучше понять управление версиями.

  • Для распределенной системы мне было весело с Mercurial, но это легко воспламеняющийся предмет, поэтому я позволю вам сделать свой выбор там. Но если вы посмотрите на Mercurial, посмотрите этот пост в блоге, это был отличный стартер для меня, который поднимет вас и работая с основами через несколько минут, если вы уже немного привыкли к управлению версиями в целом. В любом случае, оставьте домашнюю страницу Mercurial и просмотрите раздел Начало работы на странице.

Заключение

Дайте ему поиграть, потратите день на то, чтобы попробовать его с помощью нескольких фиктивных файлов. Попробуйте переименовать файлы и каталог, стирать, перемещать вещи, записывать двоичные файлы в сравнении с текстовыми файлами, разрешать конфликты и возвращаться к более старым версиям, чтобы повесить их. Это часто первые несколько препятствий, с которыми вы столкнетесь при игре с управлением версиями, и это будет безболезненно, если это будет в непроизводственном проекте.

В любом случае, это что-то полезное для изучения, которое будет полезно с вашими сольными проектами, а также если вы в конечном итоге будете работать с другими разработчиками на текущей работе или на следующей.

Удачи!

Ответ 2

Тип кода не имеет значения.

Одна система управления с открытым исходным кодом и популярной версией - это Subversion, и здесь есть очень хороший обзор/руководство здесь.

Ответ 3

Я использую Git для разработки PHP.

Он быстрый, гибкий, надежный, чистый (CVS и SVN создают множество скрытых папок, которые мне лично не нравятся).

Его распределенная природа позволяет работать так, как вы хотите (с центральным репозиторием или без него).

Подробнее об этом можно узнать здесь:

Ответ 4

Кроме того, вы можете получить Eclipse PDT (PHP Plugin) и использовать Subclibse в среде IDE.

Ответ 5

Версии работают хорошо для другого разработчика, с которым я работаю. Кроме того, если вы используете Textmate, пакет SVN обеспечивает практически все, что вам нужно для большинства частей рабочего процесса Subversion. Мне это очень нравится.

Project Plus плагин делает это еще дальше, добавляя небольшие ненавязчивые значки к файлам с версией в дереве проектов, демонстрируя с первого взгляда состояние файлов в проекте.

Ответ 6

Если вы на Mac, сделайте себе одолжение и заберите Versions, прекрасно спроектированный (и очень функциональный) графический интерфейс Subversion. Вы бы лучше всего изучили терминологию и поняли, как Subversion работает с графическим интерфейсом, прежде чем переходить к командной строке. Как только вы сможете совершать изменения кода и запускать обновления, чтобы заставить других людей работать, вернитесь назад и прочитайте красную книгу bean (это действительно лучший способ изучить Subversion in-and-out).

http://versionsapp.com/

Ответ 7

использовать базар http://bazaar-vcs.org/

это очень приятно, и вы можете начать использовать его в считанные минуты.

Ответ 8

Проверьте другие опции - Miscrosoft TFS (это не только используется для системы управления версиями, но и для отслеживания дефектов, управления проектами и т.д.), Bazaar, Git популярны из них.

Ответ 9

Алекс, Управление версиями (и некоторые из них меня смущают для этого утверждения) - это не тривиальный вопрос, и даже очень опытные разработчики попадают в беду. Наиболее частыми причинами разочарования являются ограничения определенного продукта (Visual Source Safe является известным), а члены команды не выполняют один и тот же процесс или вообще не понимают этот процесс. Это не должно мешать вам смотреть на инструмент управления источником - в противном случае. Вы можете эффективно использовать инструмент, только если вы понимаете, что он делает и почему.

Я бы порекомендовал вам заглянуть в CVS. Он существует уже много лет, он относительно прост в установке, настройке и использовании, и, хотя для большинства платформ доступны клиенты GUI, изучение его из командной строки может обеспечить лучший доступ к его функциям.