Как я могу сравнить 2 файла и игнорировать любые изменения в комментариях? - PullRequest
2 голосов
/ 06 мая 2009

Я использую C # и VB.NET.

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

Я использую WinMerge и Team Foundation Control Server (да, нет шансов: Subversion не был вариантом, когда я принял эту работу: o). Оба они могут игнорировать пробелы, но не могут игнорировать комментарии. Результат: мне нужно внимательно посмотреть на все изменения, которые я внес в каждый файл, прежде чем регистрировать их. И это довольно громоздко.

(Ну, так как большинство моих коллег вообще не комментируют - эй, они используют довольно длинные имена пространств / класс / методы / свойство / тип / константы, которые все говорят, ребята! работы.)

Есть предложения?

Всего наилучшего, Sylvain.

Ответы [ 6 ]

3 голосов
/ 06 мая 2009

В BeyondCompare есть фильтр для игнорирования "неважных" изменений, и комментарии по умолчанию относятся к этой категории.

1 голос
/ 18 июля 2011

Сравнить ++ имеет опцию «Игнорировать изменения комментария» и «Игнорировать чисто отформатированные изменения», которые должны удовлетворить ваш запрос.

0 голосов
/ 07 мая 2009

Добавление комментария к вашему коду - это запах того, что ваш код трудно читать, код должен быть самоописуем, как кто-то сказал, что хороший код - это хорошая шутка, объяснять его не нужно. Лучше изменить имя переменной, поместив часть кода в подпрограмму. Ре факторинг лучше, чем комментировать. Даже если вы найдете инструмент для решения проблемы комментирования, он не решит реальную проблему, которая облегчит вам понимание кода.

0 голосов
/ 06 мая 2009

Звучит так, будто вы используете комментирование как инструмент для понимания кода при работе с ним. Это интересная идея, эквивалент выделения книги или заметок. Но вам нужно убедиться, что вы удалили все эти временные комментарии, прежде чем работать с другими.

Перед сравнением или продвижением запустите ваши исходные файлы через программу-фильтр, которая удаляет комментарий. Это может быть однострочный Perl-скрипт.

Чтобы сделать это проще, используйте отличительный шаблон для ваших непостоянных комментариев, чтобы их было легче отфильтровать (и различать эти временные комментарии и комментарии, которые вы действительно хотите оставить в источнике). Например. если вы писали на C ++, всегда комментируйте, используя

 //Sylvain: this is my comment here.

или какой-то другой шаблон, который еще проще найти.

0 голосов
/ 06 мая 2009

Вы сказали, что использовали WinMerge - у него есть возможность отфильтровать комментарии.

Однако это работает только для комментариев, которые находятся на отдельной строке, например:

int i; // comment

будет определено как отличное от

int i;
0 голосов
/ 06 мая 2009

Если содержание комментариев не то, что вас волнует и не имеет значения, почему бы не удалить их?

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

...