Как да използвам функцията CVS commitid?

Забелязах, че по-новите версии на CVS използват commitids.

Предполагам, че това е скорошно допълнение - защото „навремето“ нямаше такова нещо.

Търсейки в гугъл намирам предимно коментари, свързани с CVSNT - но изглежда, че commitids присъстват и в стандартния CVS с отворен код.

Как мога да се възползвам от функцията commitid (в стандартния CVS)?

Например:

  • Как да покажа разлика между към commitids?
  • Как да изброя файловете/номерата на версиите, които са свързани с определен commitid?

person maxschlepzig    schedule 13.02.2013    source източник


Отговори (1)


Изглежда, че в самия 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