От переводчика: В блоге Войтеха Рузички по программированию имеется 13 постов с тегом IDEA. Один из был переведен и опубликован на Хабре — Лучшие плагины IntelliJ IDEA. Он оказася довольно популярен и я решил попробовать перевести и другие посты об IDEA. Надеюсь будут полезны для вас.
IntelliJ IDEA предлагает множество способов сравнения файлов, папок и фрагментов кода и даже синхронизации содержимого папок.
Сравнение файлов проекта
Допустим, в вашем проекте есть два похожих файла, и вам нужно сравнивать их построчно. С IDEA это очень просто. Просто выберите оба файла в окне вашего проекта (удерживая Ctrl для множественного выбора).
Теперь у вас есть два варианта:
- Щелкните правой кнопкой мыши один из файлов и выберите в меню опцию «Compare Files».
- Нажмите Ctrl + D
После чего открывается новое окно, которое содержит две панели, в каждой из которых отображается содержимое одого файла. Это очень похоже на diff в системах контроля версий, таких как Git.
Каждое отличие имеет цветовую кодировку:
- Отсутствие окраски означает, что содержание одинаково
- Синий означает наличие изменений в той же строке
- Зеленый означает новый контент
- Серый означает удаленный контент
Вы можете нажать иконки со стрелками » и «, чтобы применить конкретное изменение из одного файла в другой.
Cравнение работает и для изображений, хотя вы не можете видеть и использовать индивидуальные различия.
Сравнение с файлом вне проекта
Второй пример, когда вам нужно сравнить файл из вашего проекта с другим файлом вне его.
Процесс очень похож на описанный выше. Выберите один файл в окне вашего проекта и:
- Щелкните правой кнопкой мыши один из файлов и выберите в меню опцию «Compare With...»
- Нажмите Ctrl + D
Последний шаг — поиск внешнего файла для сравнения. Далее сравнение происходит так же, как и в примере выше.
Сравнение с буфером обмена
Возможно, у вас есть файл в вашем проекте, и вам нужно сравнить его с некоторым внешним контентом, который не сохраняется как файл на вашем компьютере. Может быть, это фрагмент кода из Интернета, например, с сайта stackoverflow.
Во-первых, вам нужно открыть файл из вашего проекта в вашем редакторе. Затем скопируйте в буфер обмена фрагмент, который вы хотите сравнить (Ctrl + C).
Теперь у вас есть два варианта. Либо сравните весь файл с буфером обмена, либо сравнить выделенный текст.
- Если вы хотите, чтобы весь файл сравнивался, просто щелкните правой кнопкой мыши в любом месте редактора и выберите «Compare with Clipboard» в контекстном меню.
- Если вы хотите сравнить только выделенный текст, сначала выберите какой-то фрагмент файла, а затем щелкните правой кнопкой мыши, как и раньше.
Собственное сравнение
Как насчет случая, когда вы хотите сравнить два фрагмента кода из внешних источников? Вы тоже можете это сделать! Просто запустите Find Action с помощью Ctrl + Shift + A и затем найдите опцию Open Blank Diff Window в контекстном меню.
Откроется новое окно сравнения с пустыми обеими панелями, так что вы сможете скопировать и вставить оба фрагмента для сравнения.
Сравнение с предыдущей локальной версией файла
Даже если вы не используете какую-либо систему контроля версий, IDEA хранит исторические версии ваших локальных файлов. Вы можете щелкнуть правой кнопкой мыши в вашем редакторе и выбрать Local history → Show history в контекстном меню.
Здесь вы можете просмотреть более старые версии вашего текущего файла и увидеть разницу между старой и текущей версией и применить любые изменения, если это необходимо.
Сравнить с использованием VCS
Если вы используете систему контроля версий (VCS), у вас есть еще несколько вариантов сравнения. Например, если вы используете Git, вы можете перейти к VCS → Git или щелкнуть правой кнопкой мыши на вашем редакторе и выбрать Git. Теперь вы можете:
- Сравнить с той же версией репозитория: сравнивает текущий локальный файл с версией в вашем удаленном репозитории
- Сравнить с веткой: сравнивает локальный файл с тем же файлом в другой ветке
- Показать историю: сравнивает локальный файл с его предыдущими версиями
Сравнение папок
Сравнение работает не только для отдельных файлов, но и для целых каталогов. Процесс такой же, как и для файлов — просто выберите две папки в окне вашего проекта и нажмите Ctrl + D или щелкните правой кнопкой мыши и выберите Compare Directories в контекстном меню.
Здесь вы можете увидеть список всех файлов, присутствующих в обоих или в одном из каталогов. Вы можете легко определить, какие файлы присутствуют только в одной папке, а какие в обеих. Файы в обоих папках вы можете сравнить, как обычно.
Синхронизация папок
Инструмент сравнения каталогов полезен не только для выявления различий в обоих каталогах, но и для синхронизации изменений. Вы можете применить изменения для отдельных разделов каждого файла, как обычно. Но вы также можете пометить файлы, присутствующие только в одном из каталогов, для сохранения или синхронизации с другим каталогом. Вы можете изменить желаемое действие для каждого файла в столбце *. Как только вы закончили свой выбор, вы можете нажать либо Synchronize selected, либо Synchronize all для выполения нейобходимой синхронизации.