Использование Mercurial с филиалами - публикация на FTP только доступных веб-серверах - PullRequest
1 голос
/ 27 мая 2011

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

Наш рабочий процесс следующий:

  • Разработчик разрабатывает некоторые запрошенные функции локально
  • Когда все готово, фиксирует это и отправляет в «центральное» хранилище.
  • Несколько раз в день один из разработчиков публикует файлы, которые были изменены на тестовом веб-сайте, чтобы ключевые пользователи могли видеть, как реализованы функции.
  • Раз в неделю мы развертываем на нашей производственной площадке

Поскольку наш веб-сервер не поддерживает SSH, мы не можем отправлять наборы изменений и обновления на сервер, поэтому мы создали собственный сценарий, который передает измененные файлы через FTP.

Каждый раз, когда мы используем этот сценарий, создается новый тег, поэтому мы знаем - используя hg diff - разницу между тегами (релиз для нас).

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

Проблема в том, что hg diff не поддерживает ветви (или кажется, что он все еще находится в разработке)

Итак, что будет лучшим способом сделать это? Вот некоторые варианты, о которых мы думаем:

  1. Монтирование FTP как локального тома (с использованием MacFuse или аналогичного) и использование ртутного push / update.
  2. Поиграйте с Bundles и посмотрите, могут ли они помочь нам, но это кажется довольно сложным

Пример * * тысяча сорок-четырь $ hg tag qa-001 /* init to see diferences QA Site */ $ hg tag prod-001 /* init to see diferences Production Site */ $ hg ci -m "working on a stable feature" $ hg tag qa-002 $ hg ci -m "change on the stable feature" $ hg tag qa-003 $ hg tag prod-002 $ hg ci -m "another change on stable" $ hg pull ../CentralRepo /*Where there is another Branch with unstable files*/ При последней операции создается новая головка, поэтому теперь есть две головки (стабильная и нестабильная ветвь) $hg diff -r qa-003 -r tip Результат hg diff показывает нестабильные файлы без слияния Большое спасибо за ваши комментарии

1 Ответ

0 голосов
/ 17 октября 2011

В вашем примере вы создаете теги , а не (именованные) ветви . Теги не помогут вам создать отдельные строки разработки: это просто отдельные идентификаторы, которым назначены определенные ревизии.

Создание веток

Чтобы начать использовать ветки, вы, вероятно, захотите просмотреть некоторые учебные пособия, такие как:

Исходя из вашего описания, вы, вероятно, захотите создать ветки prod и qa на основе вашей текущей ветки default, а также любые ветки функций / тем, которые вам могут потребоваться для радикальных изменений.

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

Связки

  1. Поиграйте с Bundles и посмотрите, могут ли они помочь нам, но это кажется довольно сложным

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

...