2017-02-21 6 views
1

Я ищу процесс, который позволит мне передать произвольное дерево каталогов ClearCase. Дерево может содержать обычные файлы, каталоги и символические ссылки (для файлов или каталогов).Как скопировать произвольное дерево каталогов

Мы работаем с динамическими представлениями исключительно, и мне было дано старшими членами команды следующий процесс, чтобы следовать в таких случаях (предположим, что мне нужно совершить, чтобы ClearCase всю структуру каталога foo):

  1. перейти в справочник, где есть foo и не показывать:

    ct checkout.

  2. регистр все файлы в foo как ClearCase объектов:

    кт mkelem -mkpath $ (найти Foo -типа е)

  3. регистрация в новоиспеченных объектов ClearCase:

    каратов či $ (кт lscheckcout -me -cvi -recu -sho Foo)

  4. совершают

    ct ci.

Выше, похоже, работает для обычных файлов, но не при наличии символических ссылок.

E.g. если я сделаю следующее:

mkdir foo && cd foo 
touch a && ln -s a a2 && cd .. 

& hellip; и затем следовать выше процессу (изменение find колдовства на шаге 2, чтобы использовать find -type f -o -type l), шаги # 1 и # 2 успешно выполнить:

$ ct co . 
Checkout comments for ".": 
. 
Checked out "." from version "/main/dbdev_br/2". 
$ ct mkelem -mkpath $(find foo -type f -o -type l) 
Creating parent directory element "foo". 
Created directory element "foo". 
Checking out parent directory "foo". 
Created branch "dbdev_br" from "foo" version "/main/0". 
Creation comments for "foo/a": 
. 
Created element "foo/a" (type "text_file"). 
Created branch "dbdev_br" from "foo/a" version "/main/0". 
Checked out "foo/a" from version "/main/dbdev_br/0". 
Creation comments for "foo/a2": 
. 
Created element "foo/a2" (type "text_file"). 
Created branch "dbdev_br" from "foo/a2" version "/main/0". 
Checked out "foo/a2" from version "/main/dbdev_br/0". 

& hellip; но когда я пытаюсь выполнить шаг # 3, я получаю:

Checked in "foo/a" version "/main/dbdev_br/1". 
Private version of "foo/a2" saved in "foo/a2.keep". 
cleartool: Warning: Operation "view_change_oid" failed ("foo/a2"): Read-only file system. 
cleartool: Warning: VOB updated, but view update of uncheckout of "foo/a2" failed: error detected by ClearCase subsystem. 
Checked in "foo/a2" version "/main/dbdev_br/1". 

Что процесс, который я должен использовать, чтобы совершить произвольное дерево каталогов (с регулярными файлами, каталогами и симлинками) в ClearCase? Я ищу что-то, что я могу выполнить сценарий, так что мне не нужно делать это вручную, файл по файлу, каталог по каталогу и т. Д. Сценарий также позволит мне применять одно и то же сообщение фиксации.

В мерзавца было бы так просто, как:

git add foo 
git commit -m 'foo added' 

ответ

1

What's the process I should use to commit an arbitrary directory tree (with regular files, directories and symlinks) in ClearCase?

Попробуйте сначала clearfsimport, что я подробно в "How can I quickly checkin a large number of files in clearcase".
Это официальная команды для добавления большого количества файлов из любой папки (эта папка может находиться в другом виде или обычной папке простого ОСА) в цели ClearCase (снимок или динамические, ЦСМ или нет)

Нет больше checkout папки назначения, не более mkelem: clearfsimport позаботится об этом.

У вас есть выбор, используя -follow вариант:

Processes the object to which a UNIX or Linux symbolic link points, instead of importing the link itself into the VOB.

+0

Когда я пытаюсь '$ clearfsimport -recu Foo .' (совершить каталог' Foo', где он уже есть) я получаю: 'clearfsimport : Ошибка: разрешение отклонено: не владелец VOB или привилегированный пользователь. clearfsimport: Ошибка: невозможно импортировать в ".". '. Если я попробую '$ ct clearfsimport', я получаю' cleartool: Ошибка: Unrecognized command: "clearfsimport" ' –

+0

@MarcusJuniusBrutus Нет: переместите папку foo в« внешнее »представление, затем очистите его обратно в представлении. – VonC

+0

Я переместил его в какой-то временный каталог, а затем выполнил: 'clearfsimport ~/tmp/foo /.' Аналогичная проблема: 'clearfsimport: Error: Permission denied: не владелец VOB или привилегированный пользователь. clearfsimport: Ошибка: невозможно импортировать в... –