Drupal 6: использование bitbucket.org для моих проектов Drupal в качестве реальной фиктивной системы управления версиями

Вот и настоящая пустышка системы контроля версий! нормальный новый стартер!


То, как я работал до сих пор:

У меня есть веб-проект Drupal-6 www.blabla.com, и я занимаюсь разработкой на www.blabla.com/beta. Я напрямую работаю на сервере blabla.com/beta. ничего в моем районе, ничего больше нигде. Время от времени берут резервные копии на локальный компьютер. Знаю ужасный и небезопасный способ: /


С этого момента я хочу работать по-новому:

Я решил использовать Mercurial. У меня есть еще один разработчик, который работает над одним проектом со мной. У меня есть проект blabla.com Drupal-6 на bluehost и я занимаюсь разработкой blabla.com/beta. Я обнаружил http://bitbucket.org/ для меркуриального хостинга. Я создал учетную запись.

Итак, как мне все настроить? Я совершенно запуталась, прочитав десятки статей: /

  • bitbucket предназначен только для размещения исправленных файлов? Итак, если я или мой друг-разработчик редактируем index.php, bitbucket будет размещать только index.php?
  • с этого момента я должен работать на localhost и загружать изменения на blueshost? больше не нужно редактировать прямо на blabla.com/beta? или я все еще могу работать на bluehost, может быть, на blabla.com/beta2?
  • Когда мне нужно отредактировать какой-либо файл, могу ли я сначала загрузить обновление из bitbucket, я вношу свои изменения на localhost, обновляю bitbucket для отредактированных файлов и загружаю на bluehost?

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

Ценить помогает так много! большое спасибо!


person designer-trying-coding    schedule 16.07.2010    source источник


Ответы (1)


bitbucket предназначен только для размещения исправленных файлов?

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

Итак, если я или мой друг-разработчик редактируем index.php, bitbucket будет размещать только index.php?

В типичном проекте каждый файл, принадлежащий продукту, проверяется в системе контроля версий, а не только index.php. см. этот пример

с этого момента я должен работать на localhost и загружать изменения на blueshost? больше не нужно редактировать прямо на blabla.com/beta? или я все еще могу работать на bluehost, может быть, на blabla.com/beta2?

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

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

Когда мне нужно отредактировать какой-либо файл, могу ли я сначала загрузить обновление из bitbucket, я вношу свои изменения на localhost, обновляю bitbucket для отредактированных файлов и загружаю на bluehost?

Есть несколько разных подходов к передаче данных на сервер:

  • экспортировать локальное репо в архив и передать его на сервер (hg archive production.tar.bz2), это наиболее безопасный вариант, поскольку он не зависит от какого-либо дополнительного программного обеспечения на сервере. Кроме того, в зависимости от размера архива этот подход может привести к потере большой пропускной способности.
  • работать на сервере и копировать измененные файлы обратно, но я не рекомендую этого делать, так как очень легко пропустить что-то важное
  • установить mercurial на сервере, работать в рабочей копии там и hg export локально там в производственную зону
  • установить mercurial на сервере и hg fetch из битбакета (или любого другого доступного для сервера репозитория)
  • установите mercurial на сервере и hg push из вашей локальной рабочей копии на сервер (а затем hg update на сервере)

Последние два пункта могут сделать репозиторий публичным. Это представление может быть как хорошим, так и плохим, в зависимости от того, что содержится в вашем репозитории, и от того, хотите ли вы поделиться контентом. Если вы хотите поделиться контентом или можете ограничить доступ к www.blabla.com/beta/.hg, вы можете клонировать его прямо со своего веб-сервера.

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

person Rudi    schedule 16.07.2010
comment
спасибо за подробный ответ! Я снова и снова перечитываю ваш ответ, чтобы понять все детали. Много раз разобрал, спасибо, протестировал битбакет из репозитория localhost. работает отлично. Напоследок мне нужно найти способ установить mercurial на bluehost, как я понял из вашего сообщения, поскольку я буду заниматься разработкой на bluehost (а не на моем localhost), верно? - person designer-trying-coding; 18.07.2010
comment
Сначала проверьте, установлен ли уже Python. Если это так, вы можете загрузить исходный код hg и попробовать установить его с помощью python setup.py install --prefix=/path/to/your/home/directory/hg. Если это не удается из-за того, что компилятор не установлен, продолжайте с python setup.py --pure install --prefix=/path/to/your/home/directory/hg, который устанавливает вариант чистого python (есть несколько модулей c для оптимизации, --pure select, чтобы вернуться к чистому коду python). - person Rudi; 19.07.2010
comment
@artmania После этого вам нужно поместить / path / to / your / home / directory / hg / bin в ваш PATH и / path / to / your / home / directory / hg / lib / site-packages в ваш PYTHONPATH. Если ваша оболочка - bash, вы можете добавить export PATH=$PATH:/path/to/your/home/directory/hg/bin; и export PYTHONPATH=/path/to/your/home/directory/hg/lib/site-packages в свой ~/.bashrc. (Из-за лимита комментариев в 600 символов мне пришлось разделить тент на два комментария. grml) - person Rudi; 19.07.2010