Изменение информации о записи события в Clearcase

В нашей работе мы вынуждены использовать Clearcase UCM в качестве нашего центрального репозитория (в частности, для маркировки/базового уровня, сборки и проверки кода), но наша команда хочет использовать Git в качестве нашей реальной системы SCM.

То, чего мы хотим добиться, — это, по сути, служба парсинга, которая принимает коммиты по мере их отправки в наш центральный репозиторий Git и отправляет их в Clearcase VOB, доступный только для чтения команде разработчиков. касается, включая важную информацию, такую ​​как комментарий и имя пользователя (точное совпадение даты и времени не важно, важно правильное указание пользователя).

Наш централизованный Git-сервер был настроен (с помощью превосходного scm-manager) для приема пользователей и паролей домена Windows, а наши серверы Clearcase используют учетные записи домена Windows, но я не уверен, как служба парсинга может «выдавать себя за» правильного пользователя, поэтому эта информация правильно дублируется в Clearcase.
Я думал, что команда chevent может иметь некоторые перспективы, но это дает доступ только к комментарию.

Есть ли способ изменить детали записи события Clearcase, когда она находится в базе данных, в частности имя пользователя? Или есть лучший способ сделать это?
Опять же, нам не нужен двунаправленный мост — весь доступ к Clearcase VOB в том, что касается коммитов кода, будет осуществляться через парсер.


person Dunco    schedule 26.07.2013    source источник


Ответы (1)


ClearCase — это пофайловый SCM, а не SCM на основе ревизий.
(См. Каковы основные концепции ClearCase каждый должен знать разработчик?" для более подробного сравнения ClearCase и git)

Это означает, что для каждого коммита git вам необходимо:

  • clearfsimport в ClearCase любой файл, включенный в коммит git.
    Создайте определенное действие UCM для этого импорта.

  • Как администратор ClearCase, cleartool protect -chown в действии: см. "Почему владелец действия clearcase ' никто'" (а также protect -chgrp, если переменная окружения CLEARCASE_PRIMARY_GROUP была установлена ​​неправильно во время импорта).

Обратите внимание, что cleartool protect влияет на весь «элемент» (файл или каталог), а не только на одну версию, поэтому вы не можете записать идентификатор пользователя таким образом: при следующем импорте этот идентификатор будет перезаписан идентификатором нового коммиттера, содержимое которого импортируется.< br> Кроме того, вы не можете изменить первоначального создателя (см. "Изменение имени оригинального создателя элемента")

Это означает, что вы должны записать эту информацию (идентификатор git автора и создателя) в атрибут:
см. cleartool mkattr.


Если я действительно хотел точно отразить пользователя Git как «создателя» новой версии файла, означает ли это, что мне нужен способ запускать clearfsimport от имени этого пользователя — выдавать себя за него?

Да: для каждой фиксации вам потребуется clearfsimport "как" (runas в Windows, как уже упоминалось в этой теме), чтобы ClearCase правильно установил создателя (если это новый элемент) или автора версии (если это является обновлением существующей версии).

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

Другое инструменты импорта (CVS, PCVS, RCS, SCCS, SSafe) просто:

  • полностью игнорировать эту информацию о создателе/авторе.
  • добавлять собственные атрибуты для информации, относящейся к конкретному инструменту (например, группа продвижения «PVCS_GROUP» или RCS_REVISION.

Каждый раз вы найдете ограничение, похожее на:

clearexport_sccs игнорирует информацию в файлах SCCS, не относящуюся к структуре дерева версий; это включает флаги, ключевые слова-идентификаторы, списки пользователей и номера запросов на изменение.


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

Это означает, что другие ваши системы могут полагаться на версию идентификатора пользователя, кроме, если она используется для импорта (в этом случае они будут обращаться к специальному атрибуту, записывающему эти данные из импорта).

person VonC    schedule 26.07.2013
comment
Как обычно VonC, четкий, лаконичный и чрезвычайно полезный ответ. Очень ценю вашу помощь... - person Dunco; 26.07.2013
comment
Если я действительно хотел точно отразить пользователя Git как создателя новой версии файла, означает ли это, что мне нужен способ запускать clearfsimport от имени этого пользователя — олицетворять их? Мне неудобно полагаться на настраиваемые атрибуты для отражения автора изменения/ревизии, так как наша система проверки кода и большинство других наших систем, которым требуется история Clearcase, используют создателя, чтобы отразить, кто внес это изменение. Как с этим справляются другие инструменты импорта/экспорта для Clearcase — например, точно ли инструменты clearexport_* для импорта из RCS и т. д. отражают пользователя? - person Dunco; 29.07.2013