Как получить просмотр конкретной истории файла в открытом виде - PullRequest
1 голос
/ 29 февраля 2012

Я хочу получить историю изменений интересующих файлов в текущий вид прозрачного футляра.

cleartool lshistory {files}

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

Есть ли какая-нибудь удобная команда или сценарий, который позволяет мне достичь этого?

  • Я использую статический вид.
  • Мне нужно, чтобы история была выгружена в стандартный вывод, чтобы я мог использовать ее в скриптах.
  • "cleartool lshistory -cview {files}" - это то, что я хочу, но -cview недоступен.

Большое спасибо за вашу помощь.


Последующее редактирование 29 февраля 2012 г.

Благодаря подсказке @VonC я смог создать простой скрипт что делает

  1. получить видимую ветку текущего вида
  2. список версий истории в ветке

для данного файла и даты «с».

Он не дает точной истории, потому что предполагает следующее аспекты элемента не изменились с указанной даты:

  • Configpec текущего представления.
  • видимая ветвь данного файла.

Без этого предположения, я думаю, мне пришлось бы отслеживать историю текущего представления, а также анализировать конфигурацию, чтобы определить приоритет видимости ветки для представления.

В моей рабочей среде и использовании, охват истории мал и эти предположения почти всегда верны.

Еще раз спасибо за помощь.

1 Ответ

1 голос
/ 29 февраля 2012

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

Поймите, что сделано представление для выбора фиксированной версии (и затем авторизации, если настроено правильно) новых версий, которые будут созданы в определенной ветви.

Так что, я думаю, вы могли бы перечислить все версии определенной ветки.
Если вы не находитесь в представлении UCM, вам нужно будет указать, о какой ветке вы говорите (представление без UCM может авторизовать ответвление через директиву -mkbranch по любым критериям, а не только из другой ветви).

Я бы порекомендовал взглянуть на " Дополнительные примеры команды поиска cleartool " и найти все версии данного brtype.

cleartool find -all -version "brtype(mybranch)" -print

Примечание: не добавляйте -cview к этому, он вернет только одну версию, выбранную в настоящее время вашим представлением.


Странный факт: cleartool lshistory не имеет опции -cview, однако в этой статье упоминается одно: " Отображение истории проверок в UNIX ".


Теперь, прежде чем наш хороший друг Тамир Гефен включит, да, некоторые из его инструментов могут помочь визуализировать историю файла (даже если он не связан с смотреть конкретно)

Но это дополнительный набор инструментов, который может не входить в бюджет вашего проекта.


OP tosh shimayama с тех пор придумали этот скрипт lshistory_cview.sh:

#!/bin/sh
[ $# -ne 2 ] && echo 'please specify date and filename' && exit 1
date=$1; shift; file=$1
ct='cleartool'
# get the current visible branch
branch=$(${ct} find ${file} -cview -print | sed -e 's/.*\\\(.*\)\\\(.*\)/\1/g')
# get the history of the file within the branch
${ct} find ${file} -version "{brtype(${branch}) && created_since(${date})}" -print
...