2010-01-26 4 views

ответ

1

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

RCS может быть способом store, and then display the version, чтобы не генерировать один.

Варианты числовых схем are many (p4 uses its own), плюс этикетки должны быть cleaned up once in a while.
Вам понадобится какое-то сценарий, чтобы сгенерировать один (followinf приходит из списка рассылки p4):

Для слабак, который настаивает, что «каждое последнее изменение требует новой версии штампа» Я хотел бы предложить следующее: [Внимание: это неволя-ориентированное.]

  1. Ваш Makefile может генерировать version.h, запустив скрипт, который делает что-то вроде этого:
CHANGENUM=`p4 changes -m1 -s submitted //depot/main/...#have | cut -f2 -d' '` 
echo "#define VERSION \"main codeline to change #$CHANGENUM\" " > $SRC/include/version.h 

2. Затем вы делаете сборку и строку версии (для чего-либо, что ссылок VERSION) автоматически исправляется.
Конечно, я бы это сделал version.h трюк для «официальных сборок» и «overnight builds» и сделать по умолчанию version.h, которые используют разработчики, с жестко запрограммированной строкой на основе «build from main codeline, но не официальной - не используйте ".

+0

Спасибо, VonC. То, с чем я имею дело, - это не проект C/C++, это всего лишь куча документов (периодически меняю их с номером версии). Но я думаю, что основная идея такая же. Я собираюсь создать файл VERSION и использовать ваш скрипт для его обновления. Я просто получаю еще два вопроса: 1. Где я должен положить этот файл VERSION? Если я обновляю файл VERSION, я думаю, что CHANGENUM снова изменится; 2. Таким образом, я не гарантирую, что этот скрипт автоматически обновит файл VERSION, верно? (Есть несколько парней, которые могут достичь и изменить содержимое этой папки) – aXqd

+0

@aXqd: идея действительно то же самое, для любого языка. Обычным местом для такого файла является корневой каталог, но любое другое место *, определенное в согласии * в вашем проекте. Триггер не гарантирован * всегда * запускается таким образом, поэтому здесь может быть лучше какой-то триггер смены контента. – VonC

+0

К сожалению, английский язык не мой родной язык. То, что я хотел задать по первому вопросу, состоит в том, что «после того, как я сделаю отправку, я запустим скрипт для обновления файла VERSION, но затем я должен снова отправить этот новый файл VERSION, чтобы CHANGENUM снова изменился». Кажется, это петля. – aXqd

Смежные вопросы