PYBAG РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

Содержание

  1. Содержание
  2. Лицензия
  3. О программе
  4. Установка
  5. Требования к ресурсам
  6. Быстрый старт с графическим интерфейсом
  7. Быстрый старт с командным интерфейсом
  8. Основы PYBAG
  9. Графический интерфейс
    1. Главное окно
    2. Меню
    3. Панель инструментов
    4. Список файлов
    5. Диалог настроек
    6. Диалог добавления корня
    7. Диалог удаления корня
    8. Дилог распространения программы
    9. Изменение положения оригиналов
    10. Диалог свойств элемента
    11. Диалог статистики
  10. Команды и опции
    1. Команды
    2. Общие опции
  11. Общая информация
    1. Структура директории программы
    2. Файл базы данных
    3. Файл конфигурации

Лицензия

Copyright (c) 2007 .. 2010, Mazhugin Aleksey

All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of the Mazhugin Aleksey nor the names of its contributors may be
used to endorse or promote products derived from this software without
specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

О программе

PYBAG - программа для синхронизации и резервного копирования файлов.

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

С помощью этого приложения вы можете копировать ваши рабочие файлы и директории на переносные устройства (например флэшку или ноутбук) и работать с ними там. После работы с файлами вы можете легко синхронизировать их. Если во время синхронизации возникнут конфликты то о них будет сообщено.
Так же вы можете указывать правила для автоматического разрешения конфликтов.

С помощью PYBAG вы можете делать резервные копии ваших файлов. При синхронизации будут копироваться только измененные файлы.

Очень удобно для резервного копирования использовать PYBAG в следующей ситуации: У вас есть несколько папок с различными документами (журналы, новости, книги) и вы хотите чтобы они были скопированы в оригинальном виде (без сжатия и т.д.) для возможности доступа к ним без специальной программы.


Программа кроссплатформенная и не зависит от ОС и от типа файловой системы. Вы можете свободно синхронизировать ваши файлы например между Windows и Linux.
Символические ссылки поддерживаются в любых ОС (если не поддерживаются то эмулируются).

Эта программа имеет графический интерфейс и может быть использована из коммандной строки.

Страница проекта:
http://pybag.sourceforge.net

Отчет об ошибках: http://sourceforge.net/tracker/?group_id=258722&atid=1129796
ЕСЛИ ВАМ ПОНРАВИЛАСЬ ПРОГРАММА И ВЫ НАШЛИ ЕЁ ПОЛЕЗНОЙ ТО ВЫ МОЖЕТЕ ПОЖЕРТВОВАТЬ НЕМНОГО ДЕНЕГ НА СТРАНИЦЕ ПРОЕКТА:  http://pybag.sourceforge.net/donate_en.html

Если вы не хотите жертвовать денег то можете просто купить автору чашку кофе и пиццу.

СПАСИБО ВАМ.

Установка

Программа не нуждается в установке.

Для работы с PYBAG вы должны создать папку в которой будуте хранить копии ваших файлов и скопировать файл pybag.py в эту папку. После нужно инициализировать программу следующей командой: > python pybag.py --dist -i -m0 Для запуска программы с графическим интерфейсом выполните:
> python pybag.pyЕсли программа не инициализирована то будет выведен запрос на подтверждение инициализации.

Окно с запросом инициализации

Некоторые команды из командной строки не требуют инициализации. Это --dist, --about, --author, --license, --help, --usage, --copyright.

Примечание.

Если вы уже пользуетесь PYBAG то можно просто новую версию программы скопировать в замен старой.

В версии 0.3.0 программы изменился внутренний формат базы данных (v2.0). Все предыдущие версии PYBAG поддерживаются.
Если вы пользуетесь новой версией то в старой версии прочитать новую базу данных не получится, но это не должно вас беспокоить. Пользуйтесь новой версией PYBAG.

Требования к ресурсам

Python 2.5.1 ... 2.7.... - http://sourceforge.net/projects/python.

Для графического интерфейса необходимо:

    wxPython 2.8.10 + - http://sourceforge.net/projects/wxpython.

Быстрый старт с графическим интерфейсом

У вас есть три места с вашими файлами:
Выхотите иметь идентичные копии файлов во всех местах. Так же ваша флэшка с копиями будет являтся резервной копией ваших файлов. После изменения каких либо файлов вы хотите легко их синхронизировать.

На домашнем компьютере у вас есть несколько файлов и директорий, которые выхотите синхронизировать, расположенных в разных местах:
1. /home/user/docs1/... - всякие документы.
2. /home/user/memo.txt - файл который вы часто изменяете (ежедневно например).
3. /home/user/news/... - директория с полученными новостями (вы скачиваете новости, а читаете их когда выпадет свободная минутка).

Мы имеем две точки синхронизации:

Теперь начнем пользоваться PYBAG.

Создаем директорию-портфель (bag) на флэшке:/flash/bag/Копируем в эту директорию файл программы "pybag.py":
/flash/bag/
...........pybag.py

Запускаем PYBAG на флэшке:python /flash/bag/pybag.pyБудет выведено диалоговое окно с вопросом об инициализации текущего местаположения программы (портфель на флэке - /flash/bag/ ).

Вопрос об инициализации PYBAG

Нажмите Да, и PYBAG запустится. Теперь давайте синхронизируем флэшку и домашний компьютер.

Главное окно PYBAG

В главном окне программы выключим режим эмуляции убрав галочку с опции  "Emulation".
В главном меню выберите "File --> Add root ..." для добавления нового корня (root) - ваших директорий и файлов которые вы хотите синхронизировать.

Добавление корня в PYBAG

Отметте в типе пути "Select path type" опцию "Directory" для директории. Введите с клавиатуры или нажав кнопку " ... " выберите первый путь /home/user/docs1, оставте остальные опции без изменений и нажмите "Add root".
Так же добавте следующий файл /home/user/memo.txt только в типе пути отметте что это файл "File or symlink".
Добавте третий путь - директорию /home/user/news.
На панели инструментов нажмите кнопу "Сравнить" ("Compare files")  Compare files. Файлы в оригинале будут прочитаны и сравнены с портфелем. Это первая синхронизация и все файлы будут отмечены как новые и копируемые в портфель.
Вы можете посмотреть список файлов и действия над ними в главном окне программы.
Для синхронизации нажмите "Синхронизировать" ("Synchronize files")  Synchronize files.
Если не возникло ошибок то вы увидите пустой список файлов. Нажмите фильтр "Filter OK synchronization" Filter OK synchronization и посмотрите какие файлы были синхронизированы (точнее скопированы в портфель).
Теперь портфель содержит копию ваших файлов.

/flash/bag/
...........pybag.py
...........pybagfiles/
......................docs1/
............................ ... any files
............................ ... any files
......................news/
............................ ... any files
............................ ... any files
......................memo.txt
...........pybag.cfg
...........pybag.db
Ваша флэшка теперь полностью синхронизирована с домашним компьютером.

Теперь вы идете на работу и создаете на рабочем компьютере директорию-портфель который мы будем синхронизировать с флэшкой.

Создайте на рабочем компьютере следующую папку:
/work/user/bag
Запустите PYBAG на флэшке:python /flash/bag/pybag.pyИ распространите PYBAG и все корни с их настройками из флэшки в портфель на рабочий компьютер: выключите эмуляцию выключив опцию
 "Emulation" и выберите команду меню "File --> Distribute ..." для распространения. В появившемся диалоге выберите  "Initialize" (инициализировать).

Распространение PYBAG

После вы увидите окошко со списком корней, Отметте все и нажмите "OK".

Распространение PYBAG, выбор корней

Настройки программы PYBAG  и корней будут скопированы в /work/user/bag.
Распространение нужно только один раз. В следующие разы нужа будет только синхронизация.

 Запустите PYBAG на рабочем компьютере:python /work/user/bag/pybag.pyВы видете главное окно PYBAG. Теперь вы можете синхронизировать флэшку с рабочим компьютером.
В главном окошке выключите режим эмуляции  "Emulation".
На панели инструментов нажмите кнопу "Сравнить" ("Compare files")  Compare files. Файлы в оригинале будут прочитаны и сравнены с портфелем. Это первая синхронизация и все файлы будут отмечены как новые и копируемые в портфель.
Вы можете посмотреть список файлов и действия над ними в главном окне программы.
Для синхронизации нажмите "Синхронизировать" ("Synchronize files")  Synchronize files.
Если не возникло ошибок то вы увидите пустой список файлов. Нажмите фильтр "Filter OK synchronization" Filter OK synchronization и посмотрите какие файлы были синхронизированы (точнее скопированы в портфель).
Теперь в портфеле на рабочем компьютере содержаться копии всех фаших файлов.
Перед тем как идти домой нужно синхронизировать портфель. Запустите PYBAG на рабочем компьютере, выключите эмуляцию
"Emulation", нажмите кнопку "Compare files"  Compare files.
В списке файлов будут показаны все измененые, новые и удаленые файлы. Для синхронизации нажмите
"Synchronize files" button Synchronize files.
Теперь идите домой и запустите PYBAG на флэшке - синхронизируйте все файлы.
Все изменения будут записаны на ваш домашний компьютер.

Быстрый старт с командным интерфейсом

У вас есть три места с вашими файлами:
Выхотите иметь идентичные копии файлов во всех местах. Так же ваша флэшка с копиями будет являтся резервной копией ваших файлов. После изменения каких либо файлов вы хотите легко их синхронизировать.

На домашнем компьютере у вас есть несколько файлов и директорий, которые выхотите синхронизировать, расположенных в разных местах:
1. /home/user/docs1/... - всякие документы.
2. /home/user/memo.txt - файл который вы часто изменяете (ежедневно например).
3. /home/user/news/... - директория с полученными новостями (вы скачиваете новости, а читаете их когда выпадет свободная минутка).

Мы имеем две точки синхронизации:

Теперь начнем пользоваться PYBAG.

Создаем директорию на флэшке, портфель (bag) - где будут хранится наши файлы:/flash/bag/Копируем в эту директорию файл "pybag.py" или распространяем программу из уже имеющегося места при помощи команды:
python pybag.py --dist -m0 /flash/bagгде m0 - выключает режим эмуляции (этот режим по умолчанию включен что бы избежать ошибочного использования программы).
/flash/bag/
...........pybag.py

Изменяем рабочую директорию на /flash/bag:cd /flash/bagИнициализируем программу в портфеле (/flash/bag) в текущем месте:flash/bag > python pybag.py --dist -i -m0
 Также можно просто запустить программу с нужной командой. Если текущее положение программы не инициализировано, то будет предложена инициализация. Достаточно ответить утвердительно "y" и после инициализации продолжится выполнение заданной команды. /flash/bag/
...........pybag.py
...........pybagfiles/
...........pybag.cfg
...........pybag.db
Добавляем в портфель исходные (origin) файлы (корни - roots):flash/bag > python pybag.py --add -kc -e".*,*~" "/home/user/docs1" "/home/user/memo.txt" "/home/user/news"где kc - копировать символьные ссылки (или игнорировать их если использована опция -ki), e".*,*~" - игнорировать скрытые файлы (начинающиеся с точки), и игнорировать все архивные файлы (заканчивающиеся на тильду).
Последние параметры - пути к директориям и файлам (к корням) которые вы хотите добавить в портфель.

Теперь нужно выполнить синхронизацию портфеля.
flash/bag > python pybag.py --sync -m0Вы увидите что в исходном месте (origin) будет найдено несколько новых файлов (Это те три корня - roots которые вы добавили и другие файлы содержащиеся в этих директориях). Так же в отчете будет показана информация об возникших ошибках и о проигнорированных файлах. Если вы хотите увидеть более детализированный отчет то вы должны использовать опцию -v4 (по умолчанию используется -v3). Так же детальный отчет о работе программы можно посмотреть в файле "pybag.log" в директории портфеля.

Командный интерфейс

Вы увидете отчет об изменившихся и требующих синхронизации файлах и приглашение меню "Enter action (h - for help):"  при согласии о синхронизации нужно ответить "y", иначе для выхода ответить "n".
Для просмотра дополнительных возможностей меню нажмите "h".
/flash/bag/
...........pybag.py
...........pybagfiles/
......................docs1/
............................ ... any files
............................ ... any files
......................news/
............................ ... any files
............................ ... any files
......................memo.txt
...........pybag.cfg
...........pybag.db
Ваша флэшка теперь полностью синхронизирована с домашним компьютером.

Теперь вы пришли за рабочий компьютер и хотите на нем создать портфель и синхронизировать его с флэшкой.

Создаем портфель на рабочем компьютере:
/work/user/bagИзменяем рабочую директорию на портфель на флэшке:
cd /flash/bagРаспространяем портфель с флэшки и все корни (roots) из него в портфель на рабочем компьютере:
flash/bag > python pybag.py --dist -i -a -m0 "/work/user/bag"Изменяем рабочую директорию на портфель на рабочем компьютере:
cd /work/user/bagСмотрим отчет об изменениях:
work/user/bag > python pybag.py --sync -m0И при согласии подтверждаем продолжение синхронизации "y".

Теперь вы можете поработать с файлами на рабочем компьютере.

Перед тем как отправиться домой необходимо выполнитьт синхронизацию портфеля:work/user/bag > python pybag.py --sync -m0Все изменения записаны на флэшку.

Когда вы прийдете домой вы так же выполните синхронизацию портфеля:  flash/bag > python pybag.py --sync -m0Теперь все изменения внесены на домашний компьютер.

Основы PYBAG

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

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

1. /home/user/docs1/... - всякие документы.
2. /home/user/memo.txt - файл с напоминаниями который вы часто редактируете (каждый день например).
3. /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 могут быть следующих типов:
Проблема летнего/зимнего времени.

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


PYBAG имеет несколько настроек процесса синхронизации.
  • verbosity - Устанавливает уровень детализации отчета -1 ... 5. По умолчанию используется 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 - Специальный режим для синхронизации резервных корней. В этом режиме будут отслежены изменения не только в оригинале но и в портфеле тоже.

Графический интерфейс

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

Вопрос об инициализации PYBAG

Главное окно

В этом окне вы делаете все операции. Вы можете выбрать команду из меню или использовать панель инструментов. На панели инструментов есть команды для сравнения и синхронизации файлов, фильтры и форсирование операций.
В главном окне программы вы можете настроить все нужные параметры синхронизации. В списке файлов отображаются результаты сравнения и рекомендованные действия над файлами, либо результаты синхронизации. В окне отчета вы можете видеть информацию о процессе а также результаты.
Вы можете скрывать и отображать окно информации через меню View --> Output, очищать выходное окно командой меню View --> Clear output. Если вы дважды щелкните мышкой на разделителе выходного окна то оно скроется.
В списке файлов вы можете через контекстное меню (вызывается правой кнопкой мыши) вы можете производить различные операции над файлами и изменять колонки.
Двойной щелчек мышью на элементе списка показывает окно со свойствами элемента.

Доступные установки в главном окне:
Auto Conflict
Устанавливает правила для автоматического разрешения конфликтов.
Verbosity
Устанавливает уровень детализации выводимой информации.
Emulation
Включает / выключает режим эмуляции. При включеной эмуляции - в файлах не производится ни каких изменений, так же не сохраняются настройки программы.
Logging
Включает / выключает логирование в файл pybag.log.
Debug logging
Включает / выключает добавление отладочной информации в файл лога.
Modify date delta
Устанавливает допустимую разницу в дате модификации файлов (difference) - используется при сравнении. Если разность времени модификации файлов меньше этого значения то файлы считаются одинаковыми.
Backup full synch
Используется для полной синхронизации резервных корней. В этом режиме оригиналы и корни синхронизируются полностью (в стандартном режиме отслеживаются только изменения в оригиналах).
Time shift
Отображает режим сдвига по времени: направление сдвига (Bag - в портфель, Origin - в оригиналы, None - нет сдвига), и время сдвига в секундах для портфеля "b:0.0" и для оригинала "o:0.0"
List path filter ( ... )
Здесь можно указать фильтр для списка файлов. Фильтр применяется для колонки с путем к файлу ( Path ). Вы можете использовать или простой шаблон ( * - означает любое количество символов, ? - означает любой один символ) или регулярное выражение (оно должно начинаться с восклицательного знака "!"). Фильтр применяется при нажатии клавиши ВВОД ( ENTER ) или кнопки "Обновть список" ( Refresh list ).

Главное окно

Меню

Панель инструментов


Compare Сравнить файлы. Если нужно то файлы будут прочитаны (только один раз).
Syncronize Синхронизировать файлы. Если нужно то файлы будут автоматически прочитаны и сравнены. Команда --sync.
Filter OK synchronization Фильтр. Показать элементы успешно синхронизированные.
Filter Warning Фильтр. Показать элементы с предупреждениями.
Filter conflict Фильтр. Показать конфликты.
Filter errors Фильтр. Показать ошибки.
Filter to bag Фильтр. Показать элементы копируемые в портфель.
Filter to origin Фильтр. Показать элементы копируемые в оригинал.
Filter new Фильтр. Показать новые элементы.
Filter changed Фильтр. Показать измененые элементы.
Filter delete Фильтр. Показать удаляемые элементы.
Filter ignored Фильтр. Показать игнорируемые.
Filter unchanged Фильтр. Показать не изменившиеся.
Filter forced Фильтр. Показать элементы с форсированным действием.
Filter file Фильтр. Показать файлы.
Filter directory Фильтр. Показать директории.
Filter symlink Фильтр. Показать символьные ссылки.
Filter unknown items Фильтр. Показать неизвестные элементы.
Force unchanged Фильтр. Показывать файлы со сдвигом по времени.
Force unchanged Форсировать. Оставить элемент не изменным.
Force to bag Форсирование копирования в портфель. Если в оригинале пусто то ничего не делать.
Force to origin Форсирование копирования в оригинал. Если в портфеле пусто то ничего не делать.
Force delete Форсировать удаление.
Restore Восстановить действие рекомендуемое PYBAG (которое было после сравнения).
Auto Conflict Выбрать правило для автоматического разрешения конфликтов.
Verbosity Выбрать уровень детализации
Emulation Включить / выключить режим эмуляции.
Logging Включить / выключить логирование.
Debug logging Включить / выключить логирование отладочной информации.
Modify date delta Установить допустимую разницу дат модификации файлов при которой они считаются одинаковыми.
Backup mode synchronize Устанавливает использование полной синхронизации для резервных корней.

Список файлов

Список файлов отображает информацию об объектах, их состояние и действия над ними. Список заполняется после сравнения или синхронизации. Можно использовать фильтр для выбора нужной информации. Для фильтрации списка можно использовать панель инструментов или меню Filter. 
Вы можете выбрать колонки которые вы хотите что бы отображались.
Для настройки колонок используйте контекстное меню при щелчке правой кнопкой мыши на заголовке столбца либо меню настроек Options --> Preferences....
  В контекстном меню вы можеть показать / скрыть любую колонку или переместить выбранную в лево ( To left ) или в право ( To right. ). Команда контекстного меню Reset to config возвращает все установки колонок к установкам которые сохранены в файле конфигурации (Эти установки меняются в настройках
Options --> Preferences... ).

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

Заголовой колонки
Описание колонки
Колонка в файле конфигурации
Error Значок ошибок (e - ошибка, c - конфликт, w - предупреждение).
err
State Иконка состояния. stateicon
Action Иконка действия. actionicon
Path Путь элемента в портфеле. path
Description Описание. desc
Direction Действие над элементом:
  • <<< - Новый в оригинале, копировать в портфель.
  • >>> - Новый в портфеле, копировать в оригинал.
  • <-- - Изменен в оригинале, копировать в портфель.
  • --> - Изменен в портфеле, копировать в оригинал.
  • xxx - Удалить.
  • --- - Игнорировать.
  • === - Не изменять.
  • <== - Не изменять. Сдвиг времени в портфеле.
  • ==> - Не изменять. Сдвиг времени в оригинале.
  • *** - Этот значок появляется когда программа не знает что делать, информируйте о такой ситуации автора.
dir
Forced Состояние форсирования (! - действие форсировано). forced
Type Тип элемента:
  • f - файл,
  • d - директория,
  • s - символьная ссылка,
  • пусто - неизвестный тип (или игнорированный).
type
Size DB Размер элемента из базы данных ( DB ), байт. sizedb
CRC32 DB Контрольная сумма CRC32 из DB. crc32db
Symlink DB символьная ссылка из DB. symlinkdb
MDate DB Дата модификации элемента из DB, вещественное число. mdatedb
GMT Date DB Дата модификации элемента из DB, GMT. gmdatedb
Local Date DB Дата модификации элемента из DB, местное время. lmdatedb
Size  bag Размер объекта в портфеле, байт. sizebag
CRC32 bag Контрольная сумма CRC32 из портфеля. crc32bag
Symlink bag Символьная ссылка из портфеля. symlinkbag
MDate bag Дата модификации элемента в портфеле, вещественное число. mdatebag
GMT Date bag Дата модификации элемента в портфеле, GMT. gmdatebag
Local Date bag Дата модификации элемента в портфеле, местное время. lmdatebag
Size origin Размер элемента в оригинале байт. sizeorigin
CRC32 origin Контрольная сумма CRC32 в оригинале. crc32origin
Symlink origin Символьная ссылка в оригинале. symlinkorigin
MDate origin Дата модификации в оригинале, вещественное число
mdateorigin
GMT Date origin Дата модификации в оригинале, GMT. gmdateorigin
Local Date origin Дата модификации в оригинале, местное время. lmdateorigin
TS
Сдвиг по времени:
  • b - сдвиг по времени в портфеле,
  • o - сдвиг по времени в оригинале,
  • пусто - нет сдвига по времени.



State icon
(значок состояния) - отображает информацию о типе элемента и ошибках.

File Файл.
Directory Директория.
Symlink Символьная ссылка.
Unknown Неизвестный тип.
Конфликт Этот знак означает что PYBAG не знает какой значек показать (можете сообщить об этой ситуации автору).
File OK Directory OK Symlink OK Элементы после синхроницации - ошибок нет.
File warning Directory warning Symlink warning Элементы с предупреждениями. Они будут синхронизированы но вы можете захотеть посмотреть более подродно их описание
File conflict Directory conflict Symlink conflict Элементы с конфликтами. Показываются только не разрешенный конфликты (которые программа сама не разрешила). Элементы не будут синхронизированы. Для синхронизации форсируйте нужное действие.
Описание конфликтов в колонке описания.
File error Directory error Symlink error Элементы с ошибками (обычно чтения, записи). Более подробная информация в окне отчета программы

Action icon (значок действия) - необходимые действия после сравнения или результаты синхронизации.

To bag Элемент изменен и будет скопирован в портфель.
To origin Элемент изменен и будет скопирован в оригинал.
New, to bag Новый элемент в оригинале, будет скопирован в портфель.
New, to origin Новый элемент в портфеле, будет скопирован в оригинал.
Delete Элемент будет удален.
Unchanged Элемент не изменен, действий не требуется.
Unchanged, time shift to bag Элемент не изменен, сдвиг времени в портфеле - установить дату модификации объекта в портфеле такой же как и у оригинала.
Unchangedб time shift to origin Элемент не изменен, сдвиг времени в оригинале - установить дату модификации объекта в оригинале такой же как и в портфеле.
Forced Эта рамочка показывает что действие форсировано (в ручную или при автоматическом разрешении конфликтов).
OK Во время синхронизации ошибок не было.
WarningConflictError Ошибки синхронизации.
Attention Программа не может определить какой значек нужен.

Диалог настроек

  Здесь можно сделать все настройки по умолчанию для PYBAG.

Диалог имеет три закладки:
Для того чтобы изменения настроек сохранились - режим эмуляции должен быть выключен. Если режим эмуляции включен то настройки сохранены не будут.Сохранение настроек происходит только при нажатии кнопки Применить ( OK ). Если нажмете Отменить ( Cancel ) то все изменения будут отменены.


Глобальные настройки

Здесь задаются настройки которые будут использоваться программой при запуске.

Глобальные настройки


Настройки корней

Здесь изменяются настройки корней. Выберите необходимый корень и поменяйте его настройки.

Настройки корней


Настройки колонок

Здесь отображаются настройки колонок, которые сохранены в файле конфигурации.
Вы можете изменять порядок расположения колонок, показывать / скрывать их, изменять их ширину.
Вы можете:
Если вы отметите Save columns changes when exit from PYBAG то все изменения колонок в главном окне программы будут сохранятся в файл конфигурации при выходе из программы (режим эмуляции должен быть отключен, иначе настройки не сохранятся).

Если вы меняете видимость колонок ( Visible ) или их ширину ( Width ) то нажмите кнопку Применить ( Apply ).
После изменения и сохранения настроек в файл конфигурации, в главном окне изменения не отображаются, они сохранены в конфигурационный файл.
Для применения изменений в главном окне программы вы должны нажать правую кнопку мышки на заголовке любой колонки и в контекстном меню выбрать  Reset to config.


Настройки колонок

Диалог добавления корня

Для добавления нового корня вы должны выбрать его тип ( select path type ). Это может быть директория ( directory ) или файл / символьная ссылка ( file/symlink ). После этого настройте параметры для корня. Нажмите кнопку [ ... ] и выберите оригинал для добавления (вы можете ввести путь вручную).
Нажмите Добавить корень ( Add root ). В окне выходной информации главного окна вы можете прочитать об успехе операции.
Для реального добавления корня нужно что бы режим эмуляции был отключен.

Добавление корня

Диалог удаления корня

Выберите корень который вы хотите удалить и нажмите кнопку Да ( OK ). Корень будет удален и все файлы корня в портфеле тоже будут удалены.
Для реального удаления корня нужно что бы режим эмуляции был отключен

Удаление корня

Дилог распространения программы

Распространение PYBAG в указанное местоположение. Есть несколько вариантов распространения. Во всех вариантах файл программы PYBAG копируется в место назначения.
  Для начала вы должны выбрать что вы хотите:
Initialize
Только инициализация места назначения - создание необходимых для работы файлов и папок.
Copy additional files
Копировать все файлы (кроме специальных для программы PYBAG) найденых в месте расположения программы.
Initialize and copy files
Как два предыдущих вместе.
На следующем шаге выберите корни которые вы хотите распространить. Можете ничего не выбирать если не хотите распространять корни. Нажмите кнопку OK. Об успехе можно прочитать в окне вывода программы.

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

Выбор типа распространения.

Выбор типа распространения

Выбор корней.

Выбор корней

Изменение положения оригиналов

Relocate (изменение места) - позволяет изменить расположение оригиналов. Вы скопировали оригинальные файлы в другое место и хотите указать корням в портфеле новое положение для синхронизации. Выберите корень для изменения положения оригиналов и нажмите OK после чего укажите путь где находятся ваши оригиналы.

Диалог свойств элемента

В этом окне отображается информация о выбранном элементе. Показывается информация из оригиналов, портфеля и базы данных PYBAG.

Свойства элемента

Диалог статистики

В этом диалоге отображается статистическая информация о каждом корне в отдельности и суммарная информация по всем корням

Диалог статистики

Команды и опции

Командная строка:
pybag.py --command -option1 -option2 argument1 argument2 ...Внимание: За один раз может быть выполнена только одна команда.Рекомендация: Используйте режим эмуляции -m1 (по умолчанию всегда включен) до того как выполните реальную команду (исключение --dist). Для выполнения реальных действий с файлами вам нужно будет использовать опцию -m0.

Команды


При запуске программы без аргументов будет открыт графический интерфейс (как команда --gui).--add { -kFLAG -sFLAG -eFILEMASK -bFLAG -rDIR } path1 {path2 ...} Добавляет новые корни (roots) в портфель.
Если опции -k -e -s не указаны то будут использоваться их значения по умолчанию (символьные ссылки игнорируются, все файлы для синхронизации, сравнение по состоянию).
На следующем шаге после добавления вы должны будете синхронизировать портфель командой --sync.
Опции установленные в этой команде будут использованы и при синхронизации.
Позднее вы можете изменить опции в ручную в файле pybag.cfg.

Опции:
Если у вас есть резервная копия в одном из корней в портфеле то вы можете в файле конфигурации для этого корня указать опцию: backup = 1, и использовать теперь этот корень как резервную копию (синхронизация будет в 2 раза быстрее).

> python pybag.py --add -kc -e".*,*~" "/home/user/docs1" "/home/user/memo.txt" "/home/user/news"где kc - копировать символьные ссылки,
e".*,*~" - игнорировать скрытые файлы (начинающиеся с точки), и игнорировать все архивные копии (заканчивающиеся на тильду).
Последние параметры - пути к директориям и файлам которые вы хотите добавить в портфель.
--remove root1 {root2 ...} Удаляет корни и файлы из портфеля. Не изменяет файлов в исходном месте (origin).
--gui
Запускает программу с графическим интерфейсом.
 --dist {-z} {-i} {-a} {-rROOT1 ...} {path1} Распространяет программу PYBAG в заданное место.
Это делает чистое распространение без копирования каких либо файлов из текущего портфеля.
Если опции -r или -a указаны то также в месте куда происходит распространение настраивается pybag.cfg так чтобы он указывал на текущий портфель для копируемых корней.
Если путь "path1" указывает на другой портфель то корни и файлы будут добавлены к нему.
Если вы инициализируете портфель опцией -i то вы можете не указывать пути "path1". С другими опциями пути "path1" необходимы.

Опции:
> python pybag.py --dist -i -m0 Инициализирует текущий портфель.

> python pybag.py --dist -i -a -m0 "/work/user/bag" Initialize location /work/user/bagРаспространяет pybag.py, так же добовляет все корни из текущего портфеля в портфель в указанном месте.

 --sync { -fFILE } {-dDIR} {-dDIR} {-sMDDELTA} { -bFLAG } { -gOUTFILTER } { -pA } { -yVALUEFILTER } {path1} Синхронизирует текущий портфель с оригинальными файлами. Если указан путь "path1" то синхронизует с указанным путем (path1).
Если опция "-f" не указана то пытается синхронизировать все корни с путем "path1/".
Если указана опция "-f" то путь "path1" должен соответствовать пути в опции "-f".
После сравнения файлов вам нужно будет подтвердить продолжение синхронизации ответом действием y либо отказатся n.
Опции:
Если вы не указали автопродолжение (опция -p)  то будет отображено интерактивное меню. В меню можете использовать следующие команды:
Когда вы просматриваете отчет постранично (опция -z00) то вы можете осуществлять следующие действия:
Для использования резервной копии добавте корень как рез.копию: python pybag.py --add -b1 root. Если вы уже имеете резервную копию предыдущей версии программы то можете просто в файле конфигурации для соответствующего корня указать опцию: backup = 1, и использовать дальше этот корень как резервную копию (синхронизация будет проходить в 2 раза быстрее).

--relocate -rROOT=NEWPATH { -rROOT=NEWPATH ...}Изменение размещения оригиналов для корней. Заменяет исходный путь для корня ROOT на новый путь NEWPATH. (Изменяется только конфигурационный файл).
--stat { -rROOT -rROOT ... }Вывод статистики по портфелю. Если заданы опции -r то выводится статистика только для указанных корней. Если опция -r не задана то статистика выводится для всех корней.
--cleandb Очищает БД от старых записей (старые корни которые уже удалены).
--help
-h
--usage
Отображает справку о программе.
--versionПоказывает версию программы.
--authorОтображает автора программы.
--copyrightОтображает копирайт.
--licenseОтображает лицензию.
--aboutОтображает описание программы.
--debug {name ...}Включает логгирование и вывод отладочной информации в файл лога и вызывает функцию _debug. Только для целей отладки. Команда должна быть первой в списке параметров. Если дано имя то вызывается только эта функция ("_test_name") если такая существует. Внимание: Правильные тесты могут быть сделаны только в папке с исходниками. В скопированных файлах ( например с помощью --dist ) некоторые тесты могут выполнятся ошибочно.

Общие опции

Эти опции могут использоваться со всеми командами.

Общая информация

Структура директории программы

PYBAG копирует все ваши файлы в директорию "./pybagfiles".

Файл базы данных

Информация обо всех элементах в папке "pybagfiles" записывается в БД "./pybag.db" - заархивированный при помощи gzip текст в кодировке utf-8.
В БД сохраняется информация о файлах в портфеле: размер, дата модификации, crc32 .

БД имеет следующий формат:
DB_VERSION_MARKER
DB_VERSION
F SIZE MDATE CRC32 path_to_file1_in_pybagfiles link_point1
F SIZE MDATE CRC32 path_to_file2_in_pybagfiles link_point2
... and so on.
Все строки должны заканчиваться новой стирокой, где:

Файл конфигурации

Это "pybag.cfg" в котором хранятся настройки и свойства.


Get pybag at SourceForge.net. Fast, secure and Free Open Source software downloads