Сегодня я расскажу об одной замечательной программе, без которой не мыслю своего существования последние месяцы. Ибо только недавно «открыл ее для себя» :). Речь пойдет о программе синхронизации файлов и папок Beyond Compare. Beyond Compare - продукт платный, но, как известно, эта беда решаема. :)
Для чего она нужна? Есть сайт, доступный, к примеру, по FTP. Большой сайт с большим объемом кода и расвлетвленной структурой папок. И есть его же версия (какая-то) локально. Задача - произвести обновление сайта с локала. Как это делалось раньше (во всяком случае, мной, дремучим). Я проходил по всем папкам и заливал то, что нужно. Потому что, во-первых, в дереве папок могут попасться файлы, которые заливать не надо, а во-вторых, могут попасться файлы, которые следует только частично обновить (например, заливаем не все обновления). Ну или, наконец, надо просто найти файл, который по каким-то причинам имеет разные версии на локале и на живом сайте.
Итак, загружаем программу:
Слева мы видим набор возможных действий. 6 пунктов ниже Filder Compare - это частные случаи, с которыми можно столкнуться как раз в процессе сравнения папок. Folder Sync я лично не использовал ни разу :). Потому, о сравнении.
По центру окно Saved Sessions. Это, собственно, сессии сравнения, которые имеет смысл держать, чтобы не настраивать каждый раз снова. Зайдя в первый раз в программу, сессий не будет, поэтому мы, уподобляясь первому разу, тыкаем сразу в Folder Compare.
Сверху над каждой панелью - адрес синхронизируемой папки. Лично я слева настраиваю удаленный каталог (FTP), а справа - рабочую локальную версию. Если все локальное, то все равно слева находится старая версия, справа - новая. Дело вкуса, конечно, но удобно придерживаться единой логики.
Осталось сделать некоторые первичные настройки.
Во-первых, идем в меню Tools/FTP Profiles... и тыкаем в наш единственный удаленный профайл. В закладке Transfer желательно указать Transfer Type - Binary. По умолчанию программа будет передавать файлы ы ASCII формате, в результате, например, виндовые символы переноса будут преобразовываться в юниксовые (если, конечно хостинг юниксовый). Это приводит к тому, что файл может вечно отображаться как разный в обоих папках :)
Кстати, эту настройку можно сделать и для профайла <default>, чтобы не настраивать каждый сайт снова.
Затем, закрыв окно настройки FTP профайлов, жмем на тулбаре иконку с заключенным :). Здесь описываются правила сравнения файлов. Лично я здесь убираю Compare Timestamps в закладке Comparison, т.к. время у файлов почему-то получается все равно разное (локально и на FTP). Однако можно не убирая, просто настроить этот режим тоньше.
Наконец, на тулбаре жмем конку с очками (File Filters), и в область Exclude Folders вписываем ".svn" без ковычек. Теперь служебные папки SVN не будут участвовать в сравнении. Если вы, конечно, вообще юзаете SVN :)
Напоследок можно в тулбаре выбрать режим Show Differences, чтобы показывались только отличающиеся и новые файлы. Мне этого всего вполне достаточно.
На вторм скриншоте видно, что на FTP есть группа новых файлов (синих) и что файл task_submit.php отличается от локального. Жмем на task_submit.php, чтобы посмотреть различия (нажимать можно в любой панели).
Слева - ползунок, на котором сразу видно где и какие отличия (новых областей тут нет, но они бы выделялись синим). Крайне удобно, что можно выборочно перенести изменения из одного файла в другой, или вообще поправить все руками. Останется только нажать Save над соответствующим окном.
Если после этого файл будет одинаковым в обоих панелях, то он из панелей вообще исчезнет.
Если заранее известно, что одна из помеченых как отличающиеся папок более новая, то можно сразу копировать ее соответствующей кнопкой в тулбаре (лично я забиндил Ctrl+Left/Ctrl+Right для быстрого копирования), и новые и измененные файлы будет перенесены.
Думаю, нет смысла описывать каждый пункт меню программы, тем более, что я сам ее изучил пока слабо. Но уже известной функциональности мне достаточно, чтобы внести Beyond Compare в раздел must have :)
30 декабря 2009 в 20:02
А как же Total Commander (Alt+D) или его аналоги? Что надо, то и синхронизируй.
3 января 2010 в 22:08
Alt+D это прекрасно. Но когда речь идет о сравнении десятков файлов, да еще с необходимостью частичного перекидывания измененных областей между ними — Total Commander все-таки сливает.
31 января 2010 в 17:30
Абсолютно с вами согласен Михаил. Всё таки в данном смысле Beyond Compare явно выигрывает у Total Commander-а.
3 февраля 2010 в 14:53
Мне Beyond Compare намного удобнее показалась чем тотал. Теперь буду работать только с этой программой.
14 марта 2010 в 19:08
Да программка неплохая, но не бесплатная и функционал не такой как, например у GoodSync более подробноhttp://websofthelp.ru/infchan/146-sinhronizirovat-faily.html
15 марта 2010 в 23:30
Сильно сомневаюсь, что GoodSync обладает хотя бы близким набором фильтров/настроек :)
Из плюсов GoodSync (кроме полной автоматизации, которая при синхронизации сайтов может только мешать), заметил поддержку SFTP. Это приятно, да.