1

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

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

svn commit -m "altered the regex to parse properly"

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

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

В общем, если бы кто-то мог сказать мне, как отслеживать сообщения журнала и изменения версий для каждого файла при фиксации, я был бы очень благодарен. Спасибо!

2 ответа2

5

Если вы хотите вести текущий журнал изменений по файлам, то вам необходимо:

  • Создайте простой текстовый файл ChangeLog в вашем исходном дереве и введите в него любую необходимую вам информацию (дату, время, идентификатор фиксации, сводку и т.д.) Для каждого файла.

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

VCS, как правило, изначально не поддерживают журнал фиксации для файла, в то время как фиксации содержат несколько файлов. Однако вы можете просто вставить новую строку между описанием изменения каждого файла в многофайловом коммите. Что-то вроде этого:

Summary: Various bug fixes and updates for Flummox 1.5.2.

file1.c: Updated Flummox API for Flummox 1.5.2.
file2.c: Fix a string formatting buffer overflow.
file3.c: Use new Flummox Advanced Regex engine.

Большинство людей фиксируют каждое логически изолированное изменение в коммите, независимо от того, влияет ли оно на 1 файл или 1000.

2

@allquixotic пропустил вторую часть о вашем вопросе, которая была о номерах версий, так что вот ответ на эту часть.

как я могу пометить мой измененный скрипт как v1.0.1 при коммите

Вы на самом деле не помечаете свой скрипт как v.1.0.1, вы, вероятно, установили бы тег для этого коммита с меткой v.1.0.1.

В git это может быть так просто, как что-то вроде git tag v1.0.1 <commithash> . Теги в SVN немного отличаются, так как вы используете функцию копирования SVN Doc .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .