Управление изменениями

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

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

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

Кто-нибудь знает лучшие решения для управления изменениями, которые я могу предложить руководству?

большое спасибо

Ps. Я уже пытаюсь посмотреть на схватку, но я не уверен, что она способна решить мои проблемы.

3 ответа

Контроль версий

Наличие системы контроля версий - это хорошо, ошибка в ее эффективном использовании - лучше. Существует несколько способов эффективного ветвления и слияния, два из которых могут работать для вас: "для каждой функции" и "для каждого клиента".

По функции

В этой настройке вы создаете копию основного кода (транк) для каждой новой функции, которую вы реализуете. Как только функция завершена, объедините ее обратно в ствол. Если вы обновите ствол до того, как функция будет завершена, или вы завершите другую функцию, можно объединить эти изменения из ствола во все ветви.

На клиента

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

Repos
+--- Ядро
|   +--- ветви
|   +--- теги
|   \---хобот
+---Client1
|   +--- ветви
|   +--- теги
|   \---хобот
\---Client2
    +--- ветви
    +--- теги
    \---хобот

Менеджер проекта

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

Возможно, вам лучше всего использовать репозиторий исходного кода, такой как Git, Subversion, Mercurial и т. Д.

Какой из них использовать, сильно зависит от ваших потребностей и платформы, однако вы, вероятно, плохо знакомы с инструментами SCM, поэтому я бы порекомендовал Subversion с TortoisSVN.

Есть решение вашей проблемы, используя ] project-open [, но это не так просто:

  • ]po[включает трекер билетов, который вы можете использовать для отслеживания запросов клиентов на изменение.
  • После реализации запроса на изменение вам необходимо включить #ticket_id в комментарии к коммитам, чтобы]po[мог связать коммиты с тикетами на изменение. Для этого необходимо правильно установить и настроить]po[package intranet-cvs-интеграции. Имя пакета включает в себя "CVS", но оно также может интегрироваться с SVN и GIT.
  • Наконец, вы должны создать сценарий, который избирательно применяет коммиты к базовому уровню кода, в зависимости от состояния каждого запроса на изменение.

Таким образом, вы можете автоматически создавать свои файлы релизов, в зависимости от статуса ваших билетов изменений.

Другие вопросы по тегам