Мерзавец отслеживает Версии?

Я - новичок Мерзавца с UNIX опыт Microsoft Visual SourceSafe и SCCS.

В SCCS каждый файл имеет версию (я %), который сделан из Выпуска (%R), Уровень (L %), Ответвление (%B), и Последовательность (S %). %I равен % R. % % L.B. % S, хорошо? Они упоминаются как идентификационные Ключевые слова.

Цель - Вы, вставляют эти идентификационные Ключевые слова в исходный код перед регистрацией их, затем когда Вы проверите их для только для чтения (для не изменения), Это преобразует их в их номер версии. Например:

printf (“Версия s\n”, “%I “);

... станет,

printf (“Версия %s\n”, “1.4.6.2”);

Который распечатает,

Версия 1.4.6.2

SCCS отслеживает версии на основе файла файлом и увеличивает их каждый раз, когда в них регистрируются.

Там что-нибудь похожее к этому в Мерзавце?

5
задан PalaDolphin 2 March 2010 в 20:33
поделиться

2 ответа

Как обсуждалось в вопросе SO « Чтобы добавить префикс? К кодам Git / Svn », Git не имеет расширения ключевых слов RCS.

Ближайшей командой Git была бы git describe , чтобы иметь какую-то ссылку на фиксацию.

Но обычно не рекомендуется смешивать метаданные (т.е. данные «идентификатор версии» о данных «файл») с данными (файлами).
Если вам действительно нужна такая информация, более практичным будет отдельный специальный файл, в котором перечислены другие ваши обычные файлы с их идентификатором версии.

Даже ClearCase, который имеет те же понятия, что и SCS, с точки зрения ветвления и последовательности для каждого файла, не имеет встроенных номеров версий: см. Встроенные номера версий - хорошо или плохо? .

5
ответ дан 14 December 2019 в 01:06
поделиться

Вы можете сгенерировать уникальные имена тегов, используя git-describe .

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

Пример того, как определить номер версии программного обеспечения с помощью 'git describe' ( отсюда ):

01  git commit -m'Commit One.'
02  git tag -a -m'Tag One.' 1.2.3
03  git describe    # => 1.2.3
04  git commit -m'Commit Two.'
05  git describe    # => 1.2.3-1-gaac161d
06  git commit -m'Commit Three.'
07  git describe    # => 1.2.3-2-g462715d
08  git tag -a -m'Tag Two.' 2.0.0
09  git describe    # => 2.0.0
4
ответ дан 14 December 2019 в 01:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: