Заметки консультанта

Шамрай Александр Владимирович

Archive for the ‘ClearCase FAQ’ Category

Почему элементы IBM Rational ClearCase помещаются в директорий lost+found и как их удалить оттуда?

Posted by Шамрай Александр на Ноябрь 12, 2010

<< Перейти в раздел «ClearCase FAQ»

Оригинал: About the lost+found directory

Почему элементы помещаются в директорий lost+found

Объект будет размещен в каталог VOB-а lost+found, когда родительский директорий был удален (в этом случае уже нет контекста, в котором отображается объект) или изменен так, что его содержание не имеет ссылки на предыдущую версию каталога. Это может произойти в следующих случаях:

  • Родительский каталог объекта был удален с помощью команды rmelem и более нигде нет прямых ссылок на объект в версионном хранилище.

Пример:

%>cleartool rmelem dir1
CAUTION! This will destroy the element, all its branches and versions,
including all data, meta-data and history, and will remove the element
from all directory versions that now contain it.  Once you destroy the
element, there will be no way to restore it to its current state.
If you want to preserve the element, but remove references to it from
future directory versions, use the «rmname» command.

Element «dir1» has 1 branches, 2 versions, and is entered
in 1 directory versions.
Destroy element?  [no] y
cleartool: Warning: Object «foo.c» no longer referenced.
cleartool: Warning: Moving object to vob lost+found directory as «foo.c.986de380d90b479db49316560deba2f2».
Removed element «dir1».

  • Родительский каталог был изъят на редактирование, были добавлены файлы и/или директории, а затем редактирование директория было отменено (выполнения операция unchecked out).

Пример:

%>cleartool co -nc dir1
Checked out «dir1» from version «/main/7».

%>cleartool mkelem -ci -nc foo.c
Created element «foo.c» (type «text_file»).
Checked in «foo.c» version «/main/1».

%>cleartool unco dir1
cleartool: Warning: Object «foo.c» no longer referenced.
cleartool: Warning: Moving object to vob lost+found directory as
«foo.c.c7592f61ab0b11db83b5000180f96245».
Checkout cancelled for «dir1».

  • Родительский каталог был изъят на редактирование, были добавлены файлы и/или директории, а затем файл или директорий был удален (rmname) перед тем как новая версия родительского директория была зарегистрирована.

Пример:

%>cleartool co -nc dir1
Checked out «dir1» from version «/main/7».

%>cleartool mkelem -ci -nc foo.c
Created element «foo.c» (type «text_file»).
Checked in «foo.c» version «/main/1».

%>cleartool rmname foo.c
cleartool: Warning: Object «foo.c» no longer referenced.
cleartool: Warning: Moving object to vob lost+found directory as
«foo.c.c7592f61ab0b11db83b5000180f96245».
Removed «foo.c».

Когда объект перемещается в корень каталога lost+found его OID (идентификатор объекта) добавляется к его оригинальному имени файла. Например:

Оригинальное наименование: foo.c
Наименование в lost+found: foo.c.282d5d339cba4043905da6ca201e1f3d

Если каталог перемещается в lost+found, все подкаталоги и элементы, которые он содержит, перемещаются вместе с ним (структура каталогов сохраняется). Поскольку содержание каталога не помещается в корень lost+found, файлы и директории внутри перемещенного каталога не переименовываются по правилам, описанным выше.

Удаление объектов из lost+found

Прежде чем принимать какие-либо шаги по очистке lost+found VOB-а, пожалуйста, сделайте резервную копию VOB-а.

Есть два возможных способа для удаления объекта из корня lost+found:

    1. Объект может быть перемещен на новое место в VOB-е использованием команды cleartool mv.
    2. Объект может быть полностью удален из VOB.
      • Чтобы переместить объект в новое место, необходимо изъять на редактирование каталог, в который будет помещен объект, и использовать команду cleartool mv <object>.

      См. IBM Rational ClearCase Command Reference команда mv (cleartool man mv) для дополнительной информации.

      Пример:

      % pwd
      /vobs/myvob/lost+found

      % cleartool ls
      test.c.f9e4e356252a11d0a41508000993b102@@/main/1    Rule: /main/LATEST

      % cleartool checkout -nc /vobs/myvob/src

      % cleartool mv test.c.f9e4e356252a11d0a41508000993b102 /vobs/myvob/src/test.c
      Moved «test.c.f9e4e356252a11d0a41508000993b102» to «/vobs/myvob /src/test.c».

      Примечание: Для перемещения необходимо использовать команду cleartool mv, как описано выше, поскольку операция копировать/вставить из Windows Explorer или ClearCase Explorer будет просто создавать приватный файл представления и не будет перемещать элемент.

      • Чтобы удалить объект из VOB-а, используйте команду cleartool rmelem <object>.

      ВНИМАНИЕ: прочитайте нижеприведенное перед выполнением операции

      Осторожно используйте rmelem при удалении элементов или символических ссылок из каталога lost+found. Хотя lost+found, как правило, содержит нежелательные элементы и символические ссылки, в некоторых случаях он может содержать элементы, которые содержаться в другом месте VOB-а (то есть, с родителем), с которыми связаны символические или прямые ссылки. Поэтому, не запускайте rmelem рекурсивно в lost+found без предварительной проверки его содержимого.

      Если необходимо сохранить элемент, который находится в lost+found, перенесите его в другой каталог с помощью команды mv, как описано в предыдущем разделе.

      См. IBM Rational ClearCase Command Reference команда rmelem (cleartool man rmelem) для дополнительной информации.

      Пример:

      Example:

      % pwd
      /vobs/myvob/lost+found

      % cleartool ls
      test.c.f9e4e356252a11d0a41508000993b102@@/main/1    Rule: /main/LATEST

      % cleartool rmelem test.c.f9e4e356252a11d0a41508000993b102


      CAUTION! This will destroy the element, all its branches and versions, including all data, meta-data and history, and will remove the element from all directory versions that now contain it.  Once you destroy the element, there will be no way to restore it to its current state. If you want to preserve the element, but remove references to it from future directory versions, use the «rmname» command.

      Element «test.c.f9e4e356252a11d0a41508000993b102» has 1 branches, 2 versions, and is entered in 1 directory versions.
      Destroy element?  [no] yes
      Removed element «test.c.f9e4e356252a11d0a41508000993b102».

      Примечание: Если каталог удаляется из lost+found с помощью rmelem, его содержимое будет перемещено в lost+found в том же порядке, который описан в первом разделе выше.

      Если существуют элементы изъятые на редактирование, то изъятие на редактирование должно быть отменено до того, как элемент будет удален из lost+found, см. technote 1259118.

      Использование шаблонов для удаления объектов из lost+found

      Командная строка cleartool в сочетании с шаблонами может быть использована для удаления сразу нескольких элементов из каталога lost+found VOB-а.

      ВАЖНО: Перед выполнением нижеприведенных шагов, Вы должны проверить актуальность файлов в lost+found. Если есть шанс, что эти файлы не должны быть удалены, не используйте эти инструкции. См. раздел Руководства администратора ClearCase The lost+found Directory для дополнительной информации.

      Из представления ClearCase, перейдите в каталог lost+found, запустите командную строку cleartool и вызовите команду rmelem:

      Z:\VOB1\lost+found>cleartool
      cleartool> rmelem *.*

      CAUTION! This will destroy the element, all its branches and versions, including all data, meta-data and history, and will remove the element from all directory versions that now contain it.  Once you destroy the element, there will be no way to restore it to its current state. If you want to preserve the element, but remove references to it from future directory versions, use the «rmname» command.

      Element «nameapp.c.e83edfb9dfa042db90b83d4417fdec5c» has 1 branches, 2 versions, and is entered in 1 directory versions.
      Destroy element?  [no] yes
      Removed element «nameapp.c.e83edfb9dfa042db90b83d4417fdec5c».

      Примечание: Используйте -force для подавления подтверждения запроса «Destroy element?»:

      cleartool> rmelem -force *.*

      См. Руководство по командам ClearCase по теме rmelem (cleartool man rmelem) для получения информации о поведении rmelem при удалении символической ссылки.

      Удаление нескольких уровней каталогов

      Если существуют каталоги в lost+found, которые должны быть удалены, вам нужно запустить команду rmelem несколько раз.

      Почему?

      • После первой итерации, все элементы, которые были в удаляемом каталоге из lost+found, перемещаются в корень lost+found.
      • Последующие итерации rmelem будут удалять элементы, которые были перемещены в корень lost+found.

      Определение UCM компонента, к которому принадлежит элемент lost+found

      Следующая процедура может быть использована для определения, куда перемещать элементы в случаях, когда есть один или несколько элементов lost+found VOB-а, который содержит много компонентов UCM.

      Примечание: Шаги этой процедуры направлены на поиск корневого каталога UCM компонента и не определяют точный подкаталог компонента, в который элемент должен быть перемещен. Кроме того, эта процедура не будет работать в VOB, который не является Компонентным UCM VOB-ом.

      1. Откройте окно командной строки (Пуск> Выполнить> набрать: cmd.exe)
      2. Перейдите в представление и каталог lost+found конкретного VOB-а
      3. Выполните «cleartool dump -l <element-name>@@», например:
        >cleartool dump -l test.txt.3a99f3b26e9d43bb87e48b981708138c@@test.txt.3a99f3b26e9d43bb87e48b981708138c@@ (3a99f3b2.6e9d43bb.87e4.8b:98:17:08:13:8c)
        M:\mra_EclipseTest\ManyComps\lost+found\test.txt.3a99f3b26e9d43bb87e48b981708138c@@
        oid=3a99f3b2.6e9d43bb.87e4.8b:98:17:08:13:8c dbid=289 (0x121)
        mtype=file element type=9
        stored fstat:
        ino: 0; type: 2; mode: 0444
        usid: NT:S-1-5-21-141845252-1443263951-584457872-1453
        gsid: NT:S-1-5-21-141845252-1443263951-584457872-1023
        nlink: 1; size: 0
        atime: Wed Dec 31 19:00:00 1969
        mtime: Wed Sep 24 07:44:00 2008
        ctime: Wed Sep 24 07:44:00 2008
        returned fstat:
        ino: 289; type: 2; mode: 0444
        usid: NT:S-1-5-21-141845252-1443263951-584457872-1453
        gsid: NT:S-1-5-21-141845252-1443263951-584457872-1023
        nlink: 1; size: 0
        atime: Wed Sep 24 07:44:00 2008
        mtime: Wed Sep 24 07:44:00 2008
        ctime: Wed Sep 24 07:44:00 2008
        master replica dbid=3
        source pool=33 cleartext pool=35
        crde=46
        branches:
        290 \main
        292 \main\mra_EclipseTest

      4. Найдите строку, которая имеет «crde =» и запомните число, которое будет после знака равенства. В приведенном выше примере номер «46» то, что нам нужно. Это идентификатор компонента корневого каталога элемента, который мы будем использовать, чтобы найти компонент, в который элемент должен быть перемещен.
      5. Перейдите в корень VOB-а
        >dir
        Volume in drive M is CCase
        Volume Serial Number is 0234-5789 

        Directory of M:\mra_EclipseTest\ManyComps 

         

        08/28/2007  07:13 AM    <DIR>          .
        09/18/2008  12:03 PM    <DIR>          ..
        08/28/2007  07:13 AM    <DIR>          Comp1
        09/24/2008  07:44 AM    <DIR>          Comp2
        09/24/2008  07:44 AM    <DIR>          lost+found
        0 File(s)              0 bytes
        5 Dir(s)  52,428,800,000 bytes free

      6. Выполните «cleartool dump <sub-directory-name>@@» в одном из поддиректориев компонента. Например:

        >cleartool dump -l Comp1@@ 

        Comp1@@ (ebb32a4a.46224a03.b388.40:71:64:7a:1a:7d)
        M:\mra_EclipseTest\ManyComps\Comp1@@
        oid=ebb32a4a.46224a03.b388.40:71:64:7a:1a:7d dbid=42 (0x2a)
        mtype=directory element type=6
        stored fstat:
        ino: 0; type: 2; mode: 0777
        usid: NT:S-1-5-21-141845252-1443263951-584457872-1453
        gsid: NT:S-1-5-21-141845252-1443263951-584457872-1023
        nlink: 2; size: 0
        atime: Wed Dec 31 19:00:00 1969
        mtime: Tue Aug 28 07:13:57 2007
        ctime: Tue Aug 28 07:13:57 2007
        returned fstat:
        ino: 42; type: 2; mode: 0777
        usid: NT:S-1-5-21-141845252-1443263951-584457872-1453
        gsid: NT:S-1-5-21-141845252-1443263951-584457872-1023
        nlink: 2; size: 0
        atime: Tue Aug 28 07:13:57 2007
        mtime: Tue Aug 28 07:13:57 2007
        ctime: Tue Aug 28 07:13:57 2007
        master replica dbid=3
        source pool=33 cleartext pool=35 derived pool=34
        crde=42
        <cropped>

      7. Найдите строку, которая содержит «crde =» и сравните с числом из шага 4. В данном примере это число «42» и это не тот каталог, который нам нужен.
      8. Повторите шаги 6 и 7, пока не найдете нужный каталог. В этом примере каталог компонента Comp2 с » crde = 46″.
      9. Переместите конкретный элемент в любой каталог в рамках структуры каталогов компонента. Вы должны сделать это из командной строки, изъять на редактирование каталог назначения и установить активность. Например:
        >cleartool lsactivity -cact -cview
        2008-09-24T07:43:58-04:00 20080924test mabushee «20080924test»>cleartool checkout -nco Comp2
        Checked out «Comp2» from version «\main\mra_EclipseTest\2».
        Attached activity:
        activity:20080924test@\Projects «20080924test»

        >cleartool move «lost+found\test.txt.3a99f3b26e9d43bb87e48b981708138c» Comp2\test.txt
        Moved «lost+found\test.txt.3a99f3b26e9d43bb87e48b981708138c» to «Comp2\test.txt».

      10. После выполнения шага 9 зарегистрируйте изменения Вашего целевого каталога.

      Если у вас есть дополнительные элементы в каталоге lost+found, необходимо повторить процедуру для каждого из них.

      Дополнительно

      Posted in ClearCase FAQ, IBM Rational | Отмечено: , , , | Leave a Comment »

      Атомарный Check In для ClearCase

      Posted by Шамрай Александр на Июнь 29, 2010

      << Перейти в раздел «ClearCase FAQ»

      Начиная с версии IBM Rational ClearCase 7.1.1, поддерживается атомарная регистрация изменений в хранилище версий. Суть ее заключается в том, что если выполняется check in для группы файлов и для одного или нескольких файлов не могут быть созданы новые версии (например, не удовлетворяют внутренним политикам организации), то новые версии ни для одного из файлов не будут зарегистрированы (не будет выполнена операция check in).

      Для того чтоб атомарный check in поддерживался, его необходимо активировать для хранилища версий, т.к. по умолчанию он отключен. Для этого необходимо выполнить команду cleartool protectvob с опцией -atomic_checkin.

      >cleartool protectvob -atomic_checkin \TestVob

      VOB «\TestVob» set to enable atomic checkin.

      Ниже представлен пример использования атомарного check-in.

      Были изъяты на изменение два файла «n1.txt» и «n2.txt». Для первого файла были выполнены изменения, а второй остался без изменений. Для обоих файлов выполняется регистрация изменений с параметром –atomic. В результате оба файла остались в состоянии check out.

      >cleartool checkin -nc -atomic n1.txt n2.txt

      cleartool: Error: By default, won’t create version with data identical to predecessor.

      cleartool: Error: Unable to complete atomic checkin.

      Если внести изменения во второй файл и повторить операцию check in, то она успешно пройдет.

      >cleartool checkin -nc -atomic n1.txt n2.txt

      Checked in «n1.txt» version «\main\3».

      Checked in «n2.txt» version «\main\3».

      Posted in ClearCase FAQ, IBM Rational | Отмечено: , , , | Leave a Comment »

      Есть ли интеграция Eclipse и ClearCase?

      Posted by Шамрай Александр на Март 31, 2010

      << Перейти в раздел «ClearCase FAQ»

      Такая интеграция существует и ее можно скачать с этой страницы: IBM Rational ClearCase plug-ins. Интеграция включают следующие плагины (при это ClearCase должен быть установлен на локальной машине):

      • ClearCase SCM Adapter – плагин, который обеспечивает доступ ко всем функциям ClearCase из Eclipse.
      • ClearCase MVFS Adapter – плагин, который обеспечивает взаимодействие с динамическими представлениями.

      Процедура установки для плагинов будет следующая (для версии Eclipse 3.5):

      1. Распаковать скачанные архивы с плагинами.
      2. Перейти в Eclipse в меню «Help > Install New Software…» и нажать в новом окне «Install» кнопку «Add…«.
      3. В появившемся окне нажать кнопку «Local…«.
      4. Выбрать папку «eclipse» распакованного архива с плагином и нажать «Ok«.
      5. Нажать снова «Ok«.
      6. Проверить, чтобы не был отмечен пункт «Group items by category«.
      7. Выбрать доступные плагины для установки и нажать «Finish».
      8. Перезапустить Eclipse.

      В результате в меню Eclipse появиться пункт ClearCase с доступными функциями:

      Кроме этого при нажатии правой кнопкой мыши на файлах проекта в меню «Team» также будут доступны функции ClearCase:

      Posted in ClearCase FAQ, IBM Rational | Отмечено: , , , , | Leave a Comment »

      Служба albd не запускается автоматически

      Posted by Шамрай Александр на Май 22, 2009

      << Перейти в раздел “ClearCase FAQ”

      Проблема:

      Служба Atria Location Broker не запускается автоматически после входа в домен на MS Windows XP.

      Причина:

      Связано это с тем, что при входе в домен под управлением MS Windows XP некоторые процессы долго выполняются и процесс albd не может запуститься.

      Решение:

      Выполнить перезапуск службы после ее неудачного запуска. Для этого нужно перейти в «Панель управления»-> «Администрирование»->»Службы», выбрать службу «Atria Location Broker»  и на закладке «Восстановление» выставить перезапуск службы через 1 минуту после сбоя:

      cc_albd_restart

      Posted in ClearCase FAQ, IBM Rational | Отмечено: , , , | Leave a Comment »

      Ошибка на VOB-сервере: db_VISTA error 10048 from connect()

      Posted by Шамрай Александр на Апрель 18, 2009

      << Перейти в раздел “ClearCase FAQ”

      Симптомы:

      На VOB-сервере под управлением Windows, при попытке db_server подключится к albd_server, возникает ошибка:

      db_VISTA error 10048 from connect()

      Причина:

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

      Решение:

      Разрешить процессам использовать дополнительные порты.

      Для этого необходимо перейти в реестр в ветку HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters, создать ключ MaxUserPort с типом DWORD и значением 65534. После добавления ключа сервер необходимо перезагрузить.

      Posted in ClearCase FAQ, IBM Rational | Отмечено: , , , | Leave a Comment »

      Ошибка при создании представления: View Storage is not found

      Posted by Шамрай Александр на Апрель 18, 2009

      << Перейти в раздел “ClearCase FAQ”

      Симптомы:

      При создании представления появляется ошибка: View Storage is not found. При этом хранилище представлений доступно по сетевому пути и все разрешения к нему установлены верно.

      Причина:

      Создающий представление пользователь не имеет права на модификацию ветки реестра:

      HKLM\System\CurrentControlSet\Services\LanmanServer\Shares

      Решение:

      Обеспечить доступ на изменение для ветки:

      HKLM\System\CurrentControlSet\Services\LanmanServer\Shares

      1. Открыть редактор реестра (regedit).
      2. Перейти к ветке: HKLM\System\CurrentControlSet\Services\LanmanServer
      3. Правой кнопкой нажать на папке Shares, выбрать разрешения и добавить необходимого пользователя в список разрешенных.

      Posted in ClearCase FAQ, IBM Rational | Отмечено: , , , | Leave a Comment »

      Как увидеть / удалить все приватные файлы в представлении?

      Posted by Шамрай Александр на Апрель 18, 2009

      << Перейти в раздел “ClearCase FAQ”

      1. Для того чтобы получить весь список приватных файлов в представлении  необходимо выполнить следующие команды:
        1. Для статического представления (Snapshot View)
          • cleartool ls -recurse -view_only
        2. Для динамического представления (Dynamic View)
          • cleartool lsprivate
      2. Удалить все приватные файлы в представлении можно следующими способами:
        1. Использовать вышеприведенные команды в следующей комбинации:
          • for /f %i in (‘cleartool ls -recurse -view_only’) do echo %i&&del /Q %i
        2. Удалить и заново создать представление.

      Posted in ClearCase FAQ, IBM Rational | Отмечено: , , , | Leave a Comment »

      Как переименовать / перенести репозиторий?

      Posted by Шамрай Александр на Апрель 18, 2009

      << Перейти в раздел “ClearCase FAQ”

      1. Удалить ссылку на репозиторий (tag):
        cleartool rmtag -vob -all <vob tag>

         

      2. Удалить регистрационную запись для репозитория:
        cleartool unregister -vob <vob storage pname>.vbs

         

      3. Переименовать или перенести директорий репозитория.
      4. Зарегистрировать новый директорий для репозитория:cleartool register -vob <new vob storage>.vbs
      5. Создать новую ссылку на репозиторий:cleartool mktag -vob -public -tag \<new vob tag> <new vob storage>.vbs

      Posted in ClearCase FAQ, IBM Rational | Отмечено: , , , | 2 комментария »

      Как удалить checkout-ы представления, которого уже не существует?

      Posted by Шамрай Александр на Апрель 18, 2009

      << Перейти в раздел “ClearCase FAQ”

      Симптомы:

      Было удалено представление, которое содержало файлы в состоянии checkout.

      Решение:

      Необходимо удалить ссылки на представление из воба, при этом все checkout-ы будут автоматически удалены.

      Последовательность действий:

      1. Узнать уникальный идентификатор UUID удаленного представления с помощью команды describe для воба, который содержит checkout-ы этого представления:

        cleartool describe -long vob:vobtag
        versioned object base «vobtag»
        created …
        VOB family feature level: …
        VOB storage host: …
        VOB storage global  …

        VOB holds objects from the following views:
        ? [uuid b10a1021.c23311a4.fe25.00:01:60:c7:32:de]

      2. Удалить ссылки на представление со всех вобов:

        cleartool rmview -force -avobs -uuid b10a1021.c23311a4.fe25.00:01:60:c7:32:de
        Removing references …

      Posted in ClearCase FAQ, IBM Rational | Отмечено: , , , | Leave a Comment »

      Как увидеть изменения, сделанные между двумя датами?

      Posted by Шамрай Александр на Апрель 16, 2009

      << Перейти в раздел “ClearCase FAQ”

      Для этого нужно использовать команду cleartool find с запросом created_since с таким шаблоном:

      cleartool find . -version ‘created_since(first_date) && !created_since(second_date)’

      Пример:

      cleartool find . -all -version ‘created_since(15-Jan) && !created_since(21-Mar)’ -print

      Posted in ClearCase FAQ, IBM Rational | Отмечено: , , , | 2 комментария »

       
      %d такие блоггеры, как: