• Выберите язык EN RU

Основы PYBAG

Перед началом использования PYBAG хорошо бы узнать о принципах работы с программой.

PYBAG синхронизирует файлы между оригиналами-исходниками (origin) и портфелем (bag).

origin

Это исходное расположение оригинальных файлов.

bag

В это место копируются все файлы которые вы синхронизируете.

Например оригинал (origin) - это папка на вашем домашнем компьютере, портфель (bag) - папка на флэшке. Для примера давайте рассмотрим папки на домашнем компьютере:

  • /home/user/docs1/... - всякие документы.

  • /home/user/memo.txt - файл с напоминаниями который вы часто редактируете (каждый день например).

  • /home/user/news/... - полученные новости, которые вы читаете в свободное время.

Все эти папки и файлы (docs1, memo.txt, news) называются оригиналами (origin).

Также в PYBAG есть корни (root) - это название оригиналов (исходных папок и файлов) которые добавлены в портфель (bag). Если вы добавляете ёё/home/user/docs1ёё для синхронизации то это будет называется корень (root) «docs1». /home/user/memo.txt будет называться корнем (root) «memo.txt». И так далее.

Портфель имеет следующую структуру файлов:

  • pybagfiles/ - Директория в которую все файлы сохраняются в портфель.

  • pybag.db - База данных файлов.

  • pybag.cfg - Файл конфигурации в кодировке utf-8.

  • pybag.log - Файл с логом программы в кодировке utf-8.

  • ...~ - Файлы заканчивающиеся на тильду «~» - резервные копии.

Все корни и их содержимое (синхронизированные файлы) помещаются в подпапке pybagfiles. На пример корень «docs1» находится тут /flash/bag/pybagfiles/docs1.

Все файлы из оригинала когда вы их синхронизируете сохраняются в соответствующие корни. И если вы хотите работать с файлами в портфеле то вы должни искать необходимые файлы по следующему пути /flash/bag/pybagfiles/"rootname"/...

В портфеле структура ваших файлов будет такой:

/flash/bag/
...........pybag.py
...........pybagfiles/
......................docs1/
............................ ... any files
............................ ... any files
......................news/
............................ ... any files
............................ ... any files
......................memo.txt
...........pybag.cfg
...........pybag.db

Синхронизация в PYBAG происходит в несколько шагов:

reading

Чтение файлов в оригинале, в корнях в портфеле и в базе данных (база данных PYBAG сохраняет информацию о ваших файлах).

comparing

PYBAG сравнивает файлы друг с другом и решает что делать - копировать, удалять или оставить как есть.

synchronization

В этом шаге выполняются все действия которые приняты при сравнении (копировать, удалять, …).

clearing

Очистка базы данных от игнорируемых и удаленных файлов.

saving

Сохранение информации о файлах в базе данных.

Когда вы нажимаете кнопку «Сравнить» (Compare) то происходит чтение и сравнение. При нажатии «Синхронизировать» (Synchronize) происходит синхронизация, очистка и сохранение. Если вы нажмете «Синхронизировать» (Synchronize) без сравнения то все необходимые шаги будут сделаны автоматически. В процессе сравнения и синхронизации PYBAG может писать информацию о своей работе в лог-файл (так же он может писать туда и отладочную информацию). Когда PYBAG сравнивает файлы могут возникнуть различные конфликты. Например если файл был модифицирован и в портфеле и в оригинале тоn PYBAG не будет знать что с ним делать. В этой ситуации файл будет помечен как конфликтный ( conflict ) и вы сможете посмотрев его решить что с ним делать. Так же при не серъезных ситуациях (например если файл и в портфеле и в оригинале был удален а в базе данных остался) файл помечается предупреждением ( warning ). В критических ситуациях (например при ошибках чтения, записи файлов) файл помечается ошибкой ( error ). При просмотре операций которые определил PYBAG после сравнения вы можете их изменять - форсировать (force). Например если при сравнении возник конфликт то вы можете в ручную указать что делать с файлом - куда копировать, удалить или не изменять. Файлы в PYBAG сравниваются по статической информации ( statistic ) - (размер, дата модификации) и если вы включили дополнительно по контрольной сумме crc32 (по контрольной сумме файлы сравниваются только в случае равенства других параметров). PYBAG может синхронизировать директории, файлы и символьные ссылки. Символьные ссылки поддерживаются не на всех операционных ситемах но PYBAG может эмулировать символьные ссылки если ОС их не поддерживает. Эмуляция символьных ссылкок происходит так: создается текстовый файл с таким же именем как символьная ссылка и в него записывается специальная информация о ссылке.

Вы можете выбрать как синхронизировать символьные ссылки:

  • c, copy - копировать ссылки и эмулировать их при необходимости.

  • cn, copynoemul - копировать ссылки, но не эмулировать их (ОС должна их поддерживать).

  • i, ignore - игнорировать ссылки и эмулировать для проверки специальных файлов ссылок.

  • in, ignorenoemul - игнорировать и не проверять на эмуляцию.

Корни в PYBAG могут быть следующих типов:

  • standart - «стандарт» - это все корни по умолчанию. В таких корнях файлы можно изменять как в портфеле так и в оригиналах, все измнения будут отслеживаться.

  • backup - «резервный» - это специальный режим для резервных копий. В этом режиме отслеживаются измнения только в оригиналах. Этот режим до 2х раз быстрее стандартного. Если вы всетаки изменили файлы в портфеле то нужно воспользоваться специальным режимом синхронизации для резервных копий - «полная синхронизация» ( Backup full synchronization ) при синхронизации.

Проблема летнего/зимнего времени.

При некоторых условиях (например при синхронизации Windows и FlashDrive с ситемой FAT) вы можете наблюдать проблему летнего/зимнего времени. Детали следующие - вечером вы синхронизировали все ваши файлы, а ночью перевели летнее время на зимнее или наоборот. С утра вы обнаруживаете что все ваши файлы отмечены как изменившиеся (время модификации файлов в портфеле и оригиналах отличается примерно на 3600 секунд)!!! Теперь для синхронизации будут копироваться все ваши файлы. Это плохо копировать все файлы - они ведь не менялись на самом деле! Вы можете использовать операцию time shift (сдвиг по времени) вместо копирования всех файлов. Сдвиг по времени только изменяет дату модификации (и доступа) у файла. Time shift to bag сдвиг времени в портфеле, означает что у всех файлов будет установлена дата модификации такая же как и у оригинальных файлов. Time shift to origin сдвиг времени оригиналов, означает что у всех файлов в оригинале дата модификации будет установлена такой же как и у файлов в портфеле.

В коммандном интерфейсе программы вы можете использовать опцию -y для сдвига по времени в ручную либо использовать действие tsbag, tsorigin, tsreset для установки (сброса) сдвига по времени по шаблону. В графическом интерфейсе вы можете использовать меню Action ‣ Timeshift ‣ … для установки сдвига по времени на основе шаблона. Установка сдвига по времени на основе шаблона означает что вы указываете файл который нуждается в корректировке даты модификации и он используется в дальнейшем как шаблон - разница дат модификации этого файла (портфеля и оригинала) используется и при обработке остальных файлов.

PYBAG имеет несколько настроек процесса синхронизации.

verbosity

Устанавливает уровень детализации отчета -15. По умолчанию используется 3.

  • -1 - Ничего не выводить. Только можно писать лог-файл.

  • 0 - Толко глобальные ошибки.

  • 1 - Мало сообщений, только об успехе или ошибке.

  • 2 - Как 1 но еще сообщает и о возникшых конфликтах.

  • 3 - Нормальная детализация. Общая информация, ошибки, конфликты, предупреждения.

  • 4 - Много информации. Как 3 и в добавок про операции над файлами.

  • 5 - Очень много информации. Как 4 и еще различная лог-информация.

Emulation mode

Если этот режим эмуляции включен то PYBAG не будет производить ни каких изменений в файлах и конфигурационных файлах. Режим эмуляции удобен для тестирования.

Logging

Разрешает или запрещает писать лог-файл.

Debug logging

Разрешает или запрещает писать в лог-файл отладочную информацию.

Auto Conflict resolution

Автоматическое разрешение конфликтов с файлами при сравнении. Могут быть следующие правила:

  • bag - при конфликтах писать измененые файлы в портфель.

  • origin - писать измененые файлы в оригиналы.

  • newer - использовать более новые файлы.

  • older - использовать более старые файлы.

  • no - не разрешать конфликты автоматически (По умолчанию).

  • bagall - переносить все изменения в портфель (удалять если нужно).

  • originall - переносить все изменения в оригиналы (удалять если нужно).

  • bagcopy - копировать все измененые файлы в портфель, но ничего не удалять из портфеля.

  • origincopy - копировать все измененый файлы в оригинал, но из оригинала ничего не удалять.

Modifycation time delta (MDDELTA)

Это разница между датами модификации сравниваемых файлов. Если разница меньше чем MDDELTA то файлы считаются не изменными.

Backup full synchronization

Специальный режим для синхронизации резервных корней. В этом режиме будут отслежены изменения не только в оригинале но и в портфеле тоже.