Контроль версий разработки модуля для разных сайтов под Битрикс?
Здравствуйте.
Я давно программирую на php, но ни разу не использовал контроль версий или что-то подобное. Все вручную. На данный момент я разрабатываю новый модуль для двух совершенно разных сайтов под Битриксом, но модуль делает одно и тоже, даже структура инфоблоков внутри сайтов почти идентична.
Разрабатывал модуль на локальной машине, потом все это дело нужно выгрузить на рабочий сайт. Тут проблем не возникало, просто копировал. Но когда тот же функционал появился на втором рабочем сайте и при этом теперь мне приходится работать с трех разных компьютеров из трех разных мест, где нет возможности держать одну локальную копию проекта, я задумался о возможности Контроля версий или может как по другому называется в моем случае.
Разработка на компьютерах ведется из PhpStorm. Хотелось бы, чтобы PhpStorm при открытии файла в одном из трех проектов (локальная версия сайта, сайт1 или сайт2) проверял этот файл на наличие новой версии откуда-то и предлагал скачать.
Посоветуйте, пожалуйста, в каком направлении изучать, что можно использовать, чтобы добиться желаемого? У меня пока складывается мнение, что VCS или Git это немного не по моей задаче.
Как раз таки по вашей задаче. Создайте удалённый репозиторий, куда вы всегда будете выгружать последнюю версию. А на каждом рабочем месте будете делать обновление (Для Git git pull). И соответственно в конце работы загружать на удалённый репозиторий результат работы. (git push).
Если более проще, и у вас есть хост (не локальный) то можете делать синхронизацию по FTP. По этому поводу читайте доку.
Хорошо. Git говорите. А какой именно посоветуете? Я пока искал ответ на свой вопрос в гугле/яндексе этих Git'ов разных нашел с десяток с разными названиями. Хотелось бы попробовать на бесплатном и если получится/понравится/надо, я уже куплю и платные варианты. Но и вопрос безопасности/публичности тоже остается - разработка не для публики.
SergT: Git - это одна система контроля версий. Есть обёртки над ним. Это GitHub, GitLab, Bitbucket и прочие. Они предоставляют интерфейс. Но на локальной машине вам придётся пользоваться консольной версией. Так как, например, GitHub будет в роли репозитория - хранилища, который доступен вам откуда угодно.
Спасибо. Уже двое указали на git-scm.com, да и я его в гугле находил больше всего. Буду отталкиваться от него. Пока мало чего понятно и ощущение, что быстрее продолжить делать вручную. Но думаю потратив на изучение несколько времени, оно не пропадет зря.
SergT: Не пропадёт зря)) Правильно думаете. Посмотрите видеоуроки, что бы понимать, для чего оно вообще. На них вы основу увидите - а дальше уже сами в доке разберетесь.
А подскажите где размещаться. Github вроде самый навороченный и известный, но платный. Мне пока рано на платные площадки залезать. Нашел Gitlab, но может есть что-то более русское (территориально хотя бы)?
SergT: Bitbucket - частично русифицирован. Но GitHub не полностью платный. Только если вы хотите приватные репозитории. А так просто они будут в открытом доступе.
1) Создаете репозиторий (gitlab / bitbucket, предлагаю их, так как есть приватные репозитории).
2) Пишете класс с общим функционалом в ветке master (или выводите для этого отдельную ветвь).
3) Выводите отдельные ветви для каждого из сайтов (версий модуля).
4) При изменение общего модуля делаете слияние веток.
Почитайте тут про ветви и слияние. В PhpStrom все это есть и работает без проблем.