2010-11-05 2 views
0

Мне нужны конкретные идеи для этого.Процесс публикации тестовых версий продукта внутри страны и хранения списка «что есть в этой версии» при использовании Mercurial?

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

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

В принципе, когда программист проверяет окончательное изменение, которое фиксирует случай в нашей системе управления случаем, Visual Studio отвечает, с каким номером набора изменений это стало, и программист затем прикрепляет это к случаю, который в основном говорит «Если вы», запустите версию нашего продукта с последним номером версии это значение или выше, то у вас есть все изменения в этой версии ».

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

Так что мне интересно, как я могу получить что-то подобное.

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

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

я рассматривал следующее:

  1. Программиста совершивший, и захватывает хэш ревизии
  2. Программист прикрепляет это на случай, в нашем случае трекере
  3. Процесс сборки придется (не в Mercurial) версии, чтобы он знал, какие изменения он построил из
  4. Мне нужно сделать хэш из набора изменений, из которого был изготовлен наш продукт, посмотреть его в журнале изменений в репозиторий, который используется для нашей сборки m achine, а затем выяснить, является ли набор изменений продукта таким же, как или предком каждого случая в списке тестов.

Поэтому у меня есть два вопроса:

  1. ли это возможный подход? Я не против создания веб-приложения, которое упрощает его обработку.
  2. Кто-нибудь знает о альтернативном процессе, который поможет мне? Я посмотрел на маркировку, но кажется, что тегирование заканчивается добавлением давления слияния, это то, что я хочу? (т. е. добавление/перемещение тега заканчивается как фиксация, которая должна быть объединена с остальной частью системы)
  3. Есть ли что-нибудь, что могло бы помочь мне из коробки, то есть кого-то сделать, или знаете, что-то вроде этого уже?
  4. Любые другие идеи?

ответ

1

Можно ли сказать, что вы ищете легкий процесс маркировки, связанный с процессом сборки?

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

У многих систем управления случаем есть, например, Fogbugz.

+0

Проблема в том, что сейчас я делаю фиксацию в отношении дела, а затем строю ногами, в то время как она выполняется. Я фиксирую последнее время против одного и того же случая, а затем подписывает регистр как фиксированный и готов к тестированию. Мне нужно знать, как тестер может знать, что все мои коммиты являются частью сборки или нет. Связывание коммитов с делом действительно не работает, если я не знаю, что все обязательства по делу относятся к сборке. –

+0

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

1

И битбакет, и код Google сохраняют временную шкалу ветвления, которая визуально показывает, что было объединено, кем и когда. Я подозреваю, что это может быть то, что вы хотите сделать: это очень простой способ решить проблему 4.

Как они это делают, я не знаю, но инструменты там. BitBucket предлагает коммерческий хостинг.