Получение измененных/проверенных файлов из Clear Case Activity

Этот запрос связан с программированием Rational Clear Case Cm API с использованием java. У нас есть требование, в котором мы хотим получить список измененных файлов определенного потока. Я могу получить список действий типа CcActivity из данного потока и, используя эту информацию списка действий, я также могу получить информацию о версии. Я не могу получить информацию о наборе изменений, т. е. имена измененных файлов, поскольку такой метод не определен.

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

PropertyRequest propertyrequest = new PropertyRequest(
                    CcStream.ACTIVITY_LIST,CcStream.TASK_LIST
                    );
            stream=(CcStream) stream.doReadProperties(propertyrequest);

            List<CcActivity> listOfAct = stream.getActivityList();
            for(int i=0;i<listOfAct.size();i++){

                CcActivity ccActivity = listOfAct.get(i);

                PropertyRequest activityPropertyRequest = new PropertyRequest(
                        CcActivity.COMMENT,CcActivity.ID,CcActivity.DISPLAY_NAME,CcActivity.LATEST_VERSION_LIST,CcActivity.CREATOR_DISPLAY_NAME,CcActivity.NAME_RESOLVER_VIEW
                        ,CcActivity.TASK_LIST,CcActivity.CREATOR_LOGIN_NAME,CcActivity.HEADLINE,CcActivity.COMMENT); 

                ccActivity = (CcActivity)ccActivity.doReadProperties(activityPropertyRequest);

trace(ccActivity.getDisplayName());
                trace(ccActivity.getCreatorDisplayName());
                trace("CREATOR_LOGIN_NAME :" +ccActivity.getCreatorLoginName());
                trace("Headline:" +ccActivity.getHeadline());


ResourceList<javax.wvcm.Version> versionList = ccActivity.getLatestVersionList();

                for(int j=0;j<versionList.size();j++){
                    Version version = versionList.get(j);
                    PropertyRequest versionPropertyRequest = new PropertyRequest(
                            Version.PREDECESSOR_LIST,Version.VERSION_NAME,Version.VERSION_HISTORY.nest(VersionHistory.CHILD_MAP),Version.DISPLAY_NAME,Version.COMMENT
                            ,Version.PATHNAME_LOCATION,Version.ACTIVITY.nest(Resource.CONTENT_TYPE)); 

                    version = (Version)version.doReadProperties(versionPropertyRequest);
                    trace("Version Info");

                    trace("Version Name : " + version.getVersionName());
                    trace("Version Comment :" +version.getComment());

person Gazala Shaikh    schedule 15.10.2015    source источник
comment
Имя версии или путь должны дать вам файловую (элементную) часть этого действия.   -  person VonC    schedule 16.10.2015
comment
@VonC: — Я использую имя версии, но оно выдает мне вывод в следующем формате: — Имя версии: /main/AlnAuto_11_Int/Auto.03.38.00.00_Dev/6. Это не дает мне точное имя файла, в котором сделаны изменения. и использование свойства имени пути дает мне следующую ошибку: - CRVAP0231E (сбой извлечения свойства): свойство 'pathname-location' {xmlns.rational.com/TEAM}pathname-location в настоящее время пуст на ресурсе cc.repo.cc-activity:1577971@503edae3d5e24be6a36dba433c49b5e8   -  person Gazala Shaikh    schedule 16.10.2015
comment
Странно, если только этот элемент больше не виден в текущем представлении (имя было переименовано)   -  person VonC    schedule 16.10.2015


Ответы (1)


Старый поток, но недавно я пытался научиться отображать измененные файлы через API. Я считаю, что проблема в том, что объект версии, возвращаемый методом get ResourceList, должен быть приведен к типу CcVersion.

Это предоставляет метод StpResource.doReadProperties(контекст ресурса, обратная связь), которому требуется дескриптор интересующего нас представления. Мы также можем запросить конкретные свойства CcVersion, которые нас интересуют.

Тогда пример станет чем-то вроде:

ResourceList<javax.wvcm.Version> versionList = ccActivity.getLatestVersionList();

            for(int j=0;j<versionList.size();j++){
                Version version = versionList.get(j);
                PropertyRequest versionPropertyRequest = new PropertyRequest(CcVersion.DISPLAY_NAME, CcVersion.VIEW_RELATIVE_PATH, CcVersion.CREATION_DATE); 

                version = (CcVersion) version.doReadProperties(view, versionPropertyRequest);
                trace("Version Info");

                trace("Version DISPLAY_NAME : " + version.getDisplayName());
                trace("Version VIEW_RELATIVE_PATH : " + version.getViewRelativePath());
                trace("Version CREATION_DATE : " + version.getCreationDate());
            }
person Owen H    schedule 16.01.2019
comment
Интересный. +1. Хотя, учитывая дату вопроса с 2015 года, было бы полезно, если бы вы могли указать используемую версию ClearCase и в какой ОС (для клиента и для сервера) - person VonC; 16.01.2019