Изглежда, че в самия CVS няма нищо, което да прави нещо с commitid, освен да го настройва.
Ето какво се казва в документацията (info cvs
):
В commit
, уникален commitid се поставя в RCS файла вътре в хранилището. Всички файлове, изпратени наведнъж, получават един и същ commitid, низ, състоящ се само от шестнадесетични цифри (обикновено 16 в GNU CVS, 19 в MirBSD и MirDebian GNU CVS). FSF GNU CVS 1.11, MirOS GNU CVS 1.11 и OpenBSD OpenCVS все още не поддържат commitids. Комитидът може да бъде извлечен с командата log
и status
; вижте *note log:: и *note File status::.
Други инструменти могат да анализират изхода на cvs log
и да определят commitid за даден къмит. По-специално, промените, които са били извършени в една команда cvs commit
, ще имат един и същ commitid. Мога да си представя, че това е полезно за инструменти, които конвертират CVS хранилища в други системи като SVN или Git.
Но такива инструменти ще трябва да позволяват хранилища, създадени от по-стари версии на CVS, които нямат тази функция. Например, един файл, който поддържам в CVS, има 211 комита, от които първите 186 нямат комити; очевидно тогава съм преминал към по-нова версия на CVS (края на 2007 г. или началото на 2008 г.).
Промените, извършени заедно, също трябва да споделят едно и също времево клеймо, въпреки че това е по-малко надеждно. Комбинирането на времевия печат с автора би трябвало да е малко по-надеждно, но все още не е перфектно.
person
Keith Thompson
schedule
14.02.2013