считать строки кода между двумя версиями - PullRequest
1 голос
/ 01 декабря 2010

Есть ли способ сравнить строки кода между двумя версиями в чистом виде или, в этом отношении, независимо от того, какой контроллер версий, я хочу сравнить две разные версии, скажем, сравнить основную ветку с веткой разработки.Я ищу эту тему для Java

Ответы [ 5 ]

2 голосов
/ 06 октября 2011

если вам нужно сравнить + просмотреть + отредактировать строки, то рекомендация VonC о WinMerge превосходна, , но , если вам нужно сравнить количество строк кода (количество), тогда инструмент sloc diff, такой как ProjectCodeMeter или CLOC будет лучше.

1 голос
/ 01 декабря 2010

Хотя вы можете использовать любой инструмент сравнения / слияния (например, WinMerge в Windows) для сравнения всех наборов файлов, я бы порекомендовал использовать:

  • два представления ClearCase с правильной конфигурацией для выбора правильных версий
  • два динамические представления для быстрого получения всех соответствующих версий (представления для снимков слишком длинные для загрузки)
0 голосов
/ 04 декабря 2010

Вы можете, как VonC, предложить использовать два разных представления. В качестве альтернативы вы можете использовать синтаксис file@@version для прямого доступа к обеим версиям, если вы точно знаете, что ищете. Два представления, вероятно, являются наилучшим вариантом, если вы собираетесь автоматизировать что-то (что мне предлагает реализация чего-то в java).

Когда вы говорите «сравнивать строки кода между двумя версиями в прозрачном формате», я предполагаю, что вы ищете что-то отличное от стандартного cleartool diff (кстати, KDiff3 - отличная утилита сравнения, которая имеет интеграцию с открытым регистром, Я настоятельно рекомендую это) и предполагаю, что это больше в направлении «количества строк», которое вы смотрите.

Однако, просто подсчет разницы в строках даст только ограниченную информацию, обычно также интересно узнать, добавлены или удалены строки, составляющие различие. Чтобы предоставить такую ​​информацию, вы можете использовать diffstat (см. этот ответ , например, вывод).

На моей последней работе я написал Java-интерфейс для запуска

diff -u file@@/main/branch1/LABEL1 file@@/main/branch2/LABEL2 | diffstat

учитывая две метки, перебирая несколько файлов, но затем я зависел от bash, diff и diffstat от cygwin, я не знаю здесь никаких альтернативных вариантов java.

0 голосов
/ 01 декабря 2010

Если единственное, что вы хотите сделать - это считать строки, а вы используете svn, я предлагаю вам запустить

svn blame -r N:M | wc -l

Я не могу проверить, работает ли эта командная строка прямо сейчас, но идея состоит в том, чтобы использовать svn blame между двумя интересными ревизиями (N и M), а затем запустить wc -l (количество строк).

Я считаю, что каждый элемент управления исходным кодом имеет команду, аналогичную svn blame.

0 голосов
/ 01 декабря 2010

есть множество инструментов слияния / различий.я использую meld , который имеет отличную визуализацию и обработку сравнения файлов и каталогов

...