Управление изменениями
В настоящее время я работаю в компании, которая имеет несколько продуктов с одинаковым циклом выпуска.
Проблема, которую я получил, мне нужно будет создать файл релиза, который включает в себя все файлы, выпущенные и что за изменение. И есть ряд случаев, когда клиенты отказываются от изменений, близких к дате выпуска.
Сложность, с которой я сталкиваюсь, заключается в том, что каждый раз, когда я создаю файл релиза, мне нужно пройти через весь измененный файл и определить, для чего это изменение, и откатить изменение, если клиент решит откат.
Кто-нибудь знает лучшие решения для управления изменениями, которые я могу предложить руководству?
большое спасибо
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.
- Наконец, вы должны создать сценарий, который избирательно применяет коммиты к базовому уровню кода, в зависимости от состояния каждого запроса на изменение.
Таким образом, вы можете автоматически создавать свои файлы релизов, в зависимости от статуса ваших билетов изменений.