Как: перемещать символическую ссылку, сохраняя цель - PullRequest
2 голосов
/ 14 сентября 2011

Мне нужно переместить несколько символических ссылок в VOB в динамическом представлении.

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

Подробности: Давайте предположим следующую структуру папок:

/myVOB
  /Originals
  /LinksA
    /SubDir
  /LinksB

Если переместить ссылку на файл myVOB/Originals/readme.txt, расположенный в myVOB/LinksB на myVOB/LinksA/SubDir, ссылка не найдет свою цель, так как она ищет myVOB/LinksA/SubDir/../Originals/readme.txt.

Кто-нибудь знает, можно ли сказать ClearCase корректировать пути при перемещении символических ссылок? Обычно я думаю, что это должно быть сделано из коробки, но никто не знает, с ClearCase ... Тем не менее, возможно, кто-то может попытаться воспроизвести это и сказать мне, если это удалось или нет, возможно это просто ошибка в моей системе?

Редактировать: ОК, похоже, перемещение относительных символических ссылок не поддерживается "из коробки" . Если бы мне нужно было переместить большое количество символических ссылок, я бы сейчас написал скрипт, который бы взял несколько файлов / каталогов и переместил их в новое место. Если он обнаружит символическую ссылку (целью которой может быть файл или каталог), он не просто вызовет cleartool mv или что-то еще, но будет следовать процедуре, опубликованной VonC.

Но я не знаю, так что я, вероятно, сделаю это вручную. Возможно, кто-то уже написал такой сценарий, тогда это было бы подходящим местом для его продвижения;)

1 Ответ

3 голосов
/ 14 сентября 2011

Если учесть эту технику о том, «Как управлять символическими ссылками в ClearCase interop , кажется, что:
(даже если вы не находитесь в среде взаимодействия, то есть даже если ваши представления Windows видяти сервер Vob оба находятся в Windows)

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

Как изменить путь символической ссылки VOB

Единственный способ изменить символическую ссылку VOB на относительный путь - создать новую символическую ссылку :

Примечание: Вы не можете редактировать (пересматривать) символическую ссылку VOB, если она была создана с использованием абсолютного пути для использования относительного пути.

-Check the directory - Удалить старую ссылку VOB, используяcleartool rmelem команда - Создать новую ссылку с тем же именем

Пример:

cleartool ln -slink -nc ../../same_file_name.txt
Check in the directory

Примечания :

Рекомендуется использовать относительные символьные ссылки VOB вместо абсолютных символьных lчернила .
Символическая ссылка абсолютного VOB требует, чтобы вы использовали абсолютные имена путей на уровне тега представления, например, \view-tag\VOB-tag\filename.
Следовательно, они действительны только в представлении вкоторые они были созданы .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...