С помощью кода C #, как получить имена всех представлений и VOB на данном хосте - PullRequest
2 голосов
/ 12 июля 2011

Мы разрабатываем инструмент, использующий c # для проверки кода.Мы используем clearcase в качестве источника контроля.

Я использую объект "cleartool" для выполнения любых операций, взаимодействующих с clear case {ex операций ClearCase: получение списка присутствующих меток, файловприкрепленный с указанным ярлыком и т. д.}}

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

Скажем, например, у меня есть "exampleView"и "exampleVOB" на сетевом диске "U".Итак, в моем коде

  • шаг 1. Измените мой рабочий каталог на каталог VOB "cd U:\exampleView\exampleVOB"
  • шаг 2. взаимодействуйте с clear case с помощью команд cleartool.

Проблема:

Так что теперь из моего дизайна инструмента есть

  1. У меня есть 2 комбинированный список для просмотра и другой для VOB .
  2. Пользователь выбирает соответствующий вид и VOB.
  3. С помощью кода получите чистый случай сетевой диск с помощью записи реестра "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Mvfs\Parameters\basedrive"
  4. I formпуть как "basedrive:\viewcomboboxselection\vobcomboboxselectedvalue"

Так что теперь я хотел знать, есть ли способ получить список VIEWS и VOBS в данной системе.

Мои выводы на данный момент:

  1. Запись реестра "HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Atria\ClearCase\CurrentVersion\RecentlyUsedViews" даст мне только выбранные представления, но не все представления в системе.
  2. Запись реестра "HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Atria\ClearCase\CurrentVersion\PersistentVOBs "не выдаст мне все VOB в данной системе.

Есть ли какие-либо записи в реестре или какой-либо способ получить список всех представлений и заданий в системе.

Ответы [ 3 ]

0 голосов
/ 03 февраля 2012

Как рекомендует VonC, попробуйте использовать CAL API.

Вы избавите себя от огромного количества хлопот, если не попытаетесь вызвать и проанализировать вывод cleartool в C #. Если вы посмотрите «cc_cal.chm» в своей папке ClearCase (я полагаю, в «bin»), вы увидите, что CAL API имеет достаточно хорошо документированную иерархию классов, хотя примеры в основном предназначены для пользователей VB (и таким образом требуется некоторая адаптация и тип кастинга). Вы также увидите значительное улучшение скорости, так как запуск новых подпроцессов в Windows будет нетривиальным.

Отладчик Visual Studio станет вашим лучшим другом в будущем - добавьте ссылки ClearCase.Application (и, возможно, ClearCase.Cleartool) в ваш проект, создайте экземпляр экземпляра объекта ClearCase.Application, а затем весело проведите время, осматривая окно наблюдения.

Некоторые инструкции по перечислению представлений с ClearCase.Application доступны здесь: http://www.codeproject.com/Articles/41720/Using-the-ClearCase-Automation-Library-with-C

0 голосов
/ 05 декабря 2012

1.Чтобы получить все вобсы из прозрачного

ccApp = new ClearCase.Application();
ClearCase.CCVOBs ccVobs =  ccApp.get_ProjectVOBs(false, "windows");
foreach (ClearCase.CCVob vob in ccVobs)
{
   //Process it
}

2.Чтобы получить все представления для определенного потока

ClearCase.CCProjectVOB ccVob = ccApp.get_ProjectVOB(projectVob);
ClearCase.CCViews ccViews = ccVob.get_Stream(selectedStream).Views;
foreach (ClearCase.CCView ccView in ccViews)
{
  //Process it      
}
0 голосов
/ 12 июля 2011

Чтобы получить все представления для данного имени хоста, см. cleartool lsview:

cleartool lsview -s -host anHostname -quick

(Обратите внимание на -quick только для CC7.0.1 +, который обеспечивает более быстрый поиск опции -host, перечисляя представления, которые в данный момент хранятся в реестре)


Чтобы получить все вобы (в текущем регионе), см. cleartool lsvob:

 cleartool lsvob

Вы можете вызывать и (анализировать результат) из вашей программы на C # или вызывать VB-скрипт из той же программы на C #, используя CAL API, как показано в этого вопроса .

...