2013-04-19 2 views
0

Мой вопрос касается метрик LoC. Я должен предоставить статистику вставленных, измененных и удаленных строк. Мои пользователи используют ClearCase и приведенный ниже пример на основе этого, однако я считаю, что мой вопрос является общим.Как бы вы измеряли вставленные/измененные/удаленные коды кода (LoC)?

Обратите внимание на следующий пример (взятый из документов ClearCase). Он сравнивает две версии файлов: /main/1 (с левой стороны) и /main/3 (правая сторона).

******************************** (file summary) 
    <<< file 1: [email protected]@/main/1 
    >>> file 2: [email protected]@/main/3 
    ******************************** 
    ----------[after 15]------|-------[inserted 16]------ (header) 
           | char *s;  (difference) 
           |- 
    ---------[changed 18]-----|----[changed to 19-21]---- (header) 
    return ctime(&clock);  | s = ctime(&clock); (difference) 
          - | s[ strlen(s)-1 ] = '\0'; 
           | return s; 
           |- 

Там нет сомнений в том, что одна линия была ВСТАВИТЬ (строка 16).

Мой вопрос относится к изменению строки 18: сколько строк вы считаете здесь?

  • 3 CHANGED линии?
  • 1 CHANGED линия?
  • 1 ИЗМЕНИТЬ ЛИНИЮ И 2 ВСТАВЛЕННЫХ ЛИНИЯМИ?
  • Вы думаете что-то еще ...?

Пожалуйста, дайте мне знать, что вы думаете о (и почему ...). Спасибо.

ответ

1

Этот пример из cleartool diff man page, и этот diff не ваш обычный diff format.

Для ClearCase:

---------[changed X]----------|----------[changed to Y]--------- 

Один или несколько линий изменены на месте.

  • X указывает, какие строки в первом файле были изменены.
  • Y указывает, где замещающие линии встречаются во втором файле.

Так вот:

  • 1 линия изменилась
  • заменены на 3 линии

Там нет прямого эквивалента с дифф унифицированный формат, используемый другими инструментами (например, git), что означает, что этот вопрос, используя формат cleartool по умолчанию, специфичен для ClearCase.

Если cleartool дифф используется параметр -diff_format, что бы вызывает как заголовки и различия, которые будут представлены в стиле дифф утилиты UNIX и Linux, что пусть бы более общую интерпретацию этого дифференциала.


Whe дело доходит до LOC и различий, хорошая ссылка CLOC, который передаст diff loc фокусировки на линиях whic являются:

  • же
  • модифицированный
  • добавлено
  • удалено

В вашем случае:

  • 1 линия модифицирована
  • 2 строки добавлены
+0

VonC, вы знаете, может ли CLOC отображать для каждой строки кода отдельно, если он был добавлен, изменен или удален? Я не смог найти соответствующий параметр. Спасибо! –

1

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

Смежные вопросы