ClearCase: копирование старых версий с представлениями моментальных снимков в Windows - PullRequest
1 голос
/ 15 апреля 2010

Использование IBM Rational ClearCase: - У меня есть доступ только к просмотрам снимков, поэтому нет динамических просмотров

Я хочу скопировать ВСЕ версии из определенного набора изменений в c: \ temp. Я уже перечислил версии набора изменений в файле (пару сотен версий, мне нужна только последняя версия), у меня нет базового уровня для этого более старого набора.

Что у меня сейчас есть и не работает:

#!/usr/bin/perl -w
#
#  PROGRAM: copytest.pl
$filename = "Design test123.doc";
$view = "D:\\AdminViews\\ABC_R1_READ_2\\ABCD002\\ABC_DESIGN\\BLA Framework\\P0\\";
$version = "\\main\\ABC_R1_READ\\1";
$printhet = 'cleartool find . -name "' . $filename . '" -version version(' . $version. ') -exec "cmd /c copy %CLEARCASE_XPN% D:\temp\%CLEARCASE_PN%"';
system($printhet);

В основном потому, что: http://www -01.ibm.com / support / docview.wss? Uid = swg21150317 (XPN)

обновление: я прочитал В ClearCase, как я могу просмотреть старую версию файла в статическом виде из командной строки? снова, и я вижу, что diff с пустым файлом - это / hack за отсутствие XPN. хорошо ... но diff с пустым и документ в приведенном выше дает мне "0"

1 Ответ

1 голос
/ 15 апреля 2010

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

И мой старый ответ за доступ к содержимому файла с расширенным путем в представлении снимка не является простым для адаптации здесь.


Так почему бы не стремиться к чему-то эквивалентному, но более простому?

Почему бы не создать еще одно представление моментального снимка непосредственно в c:\temp (c:\temp\myview_snap) со спецификацией конфигурации вдоль строк (вы можете оставить '/' вместо '\'):

element * CHECKEDOUT
element "/ABC_R1_READ_2/ABCD002/ABC_DESIGN/BLA Framework/P0/..." /main/ABC_R1_READ/1
element -directory "/ABC_R1_READ_2/ABCD002/ABC_DESIGN/BLA Framework/P0/..." /main/ABC_R1_READ/LATEST
element -directory "/ABC_R1_READ_2/ABCD002/ABC_DESIGN/BLA Framework/P0/..." /main/LATEST
element "/ABC_R1_READ_2/ABCD002/ABC_DESIGN/BLA Framework/P0/..." -none
element /ABC_R1_READ_2/ABCD002 /main/ABC_R1_READ/1
element /ABC_R1_READ_2/ABCD002 /main/LATEST
element /ABC_R1_READ_2/ABCD002/ABC_DESIGN /main/ABC_R1_READ/1
element /ABC_R1_READ_2/ABCD002/ABC_DESIGN /main/LATEST
element "/ABC_R1_READ_2/ABCD002/ABC_DESIGN/BLA Framework" /main/ABC_R1_READ/1
element "/ABC_R1_READ_2/ABCD002/ABC_DESIGN/BLA Framework" /main/LATEST
element * -none
load /ABC_R1_READ_2

Таким образом, вы должны выбрать:

  • любой элемент в /ABC_R1_READ_2/ABCD002/ABC_DESIGN/BLA Framework/P0 (включая P0) с верной версией
  • любой каталог, у которого нет точной версии, сначала попытается загрузить себя как ПОСЛЕДНИЕ на ABC_R1_READ, иначе как /main/LATEST как запасной вариант (всегда существует)
  • если элемент (файл) не имеет этой версии, он вообще не будет выбран и не загружен.
  • любой родительский элемент (/ ABC_R1_READ_2 / ABCD002 / ABC_DESIGN / BLA Framework), если у него неправильная версия, будет выбран как /main/LATEST (всегда существует)
  • любой другой элемент (за пределами соответствующего дерева) будет игнорироваться, невыбранный

Только что проверил: работает нормально.


Примечания:

  • "BLA Framework" - это каталог с пробелом в нем, поэтому вам нужно добавить двойные кавычки там, где он используется.
  • правило загрузки может просто загрузить vob ABC_R1_READ_2: поскольку правила -none не будут не выбирать то, что вам не нужно, они все равно не будут загружены.
...