GithubHelp home page GithubHelp logo

cfg_tools's Introduction

Скрипт для выгрузки версий хранилища 1с в GIT

Скрипт разбирает файл хранилища конфигурации (1CD), распаковывает версию и выгружает как есть, за некоторым исключением - формирует нормальные имена файлов, раскладывает данные по каталогам. Выгружается текст модулей, объекты выгружаются как есть (в скобочном формате "{"), а не в XML. В планах: реализовать выгрузку объектов, форм и т.п. в более читаемом виде - работа над этим ведется в проекте inMeta.

Сценарий использования

  1. Создаем файл настроек
  2. Запускаем python rup.py init <файл настроек>
  3. Настраиваем соответствие пользователей и пользователей GIT в файле Каталог локального репозитория\authors.csv
  4. Запускаем python rup.py export <файл настроек>

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

Содержит настройки логирования и настройки выгрузки. Может содрежать несколько секций с настройками выгрузки

[LOG]
level = DEBUG|INFO|ERROR
file = %%Y-%%m-%%d.log
[BASE]
store = Путь к файлу хранилища
local_repo = Путь к локальному каталогу репозитория
remote_repo = URL удаленного репозитория
use_pull = True|False

###Секция [LOG]:

  • level - уровень выводимых сообщений.
  • file - Имя файла лога, если не указан вывод в консоль. Поддерживает формирование имени по дате
    • %%Y - год
    • %%m - месяц
    • %%d - день
    • %%H - час
    • %%M - минуты
    • %%S - секунды

Секция настройки выгрузки [BASE]:

Может иметь любое имя, кроме LOG

  • store - Путь к файлу хранилища 1с. Пример: c:\store\1cv8ddb.1cd
  • local_repo - Путь к каталогу выгрузки (локальный репозиторий). Пример: c:\store\repo
  • remote_repo - URL центрального хранилища. Пример: git@host:namespace\name_repo.git
  • use_pull - True использовать комманду pull перед выгрузкой версий, False - не использовать

Файл соответствия авторов

Содержит соответствие пользователей хранилица и пользователей git, адресов электронной почты

Имя файла: Каталог локального репозитория\authors.csv

Кодировка: UTF-8

В формате CSV

ИмяПользователяХранилища; ИмяПользователяРепозитория; АдресЭлектроннойПочты

Файл информация о версии

Содержит номер последний выгруженной версии хранилища. При первичной выгрузке либо содержит 0, либо не существует

Имя файла: Каталог локального репозитория\last_version.txt

cfg_tools's People

Contributors

teambios avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

cfg_tools's Issues

Некорректно работает сценарий синхронизации с пустым репо

Как пользователь 
Я хочу синхронизировать свое хранилище с чистым удаленным репо GIT

Когда я указал в файле настроек адрес хранилища
 И указал в файле настроек адрес удаленного репо
 И запустил команду run.py init файл_настроек
Тогда я вижу в логе, как инициализирован репо и создан файл авторов.

Сценарий выше не работает, т.к. пытается еще выполниться git pull, а удаленный репо - пустой.

По той же причине не работает export. Он сначала пытается делать pull, но падает. Выгрузка не происходит.

Требуется:

  • При init не выполнять pull
  • При export добавить ключ ком. строки позволяющий отменить pull (или иным образом его выключить на чистом репо)

Неупорядоченная выгрузка закладок

Закладки выгружаются сначала по порядку, а потом порядок теряется. См. скриншоты:

01-02-2016 14-17-50
01-02-2016 14-17-55

Видно, что номера перепутаны. Причем на втором скриншоте перепутаны сильно.

Подозреваю, что таблица закладок читается из 1CD без применения индекса и ее надо принудительно сортировать.

Error: найден файл не принадлежащий объекту

В процессе синхронизации появляются сообщения вида Error: найден файл не принадлежащий объекту.

Что это и как на это реагировать - забить или кричать "Все пропало?"

Какой эффект на выгрузку будет оказывать появление данного сообщения?

Обрыв выгрузки похожий на ошибку в коде

Выгрузка прервалась. Фрагмент лога ниже:

2016-02-01 13:38:36,283    INFO: Store: Exporting version: 113
2016-02-01 13:38:36,283   DEBUG: Store: Saved 0 files
2016-02-01 13:38:36,284   DEBUG:   GIT: Executing "git add -A ."
2016-02-01 13:38:37,802   DEBUG:   GIT: Exit code: 0
2016-02-01 13:38:37,803   DEBUG:   GIT:
2016-02-01 13:38:37,803    INFO:   MNG: Commiting version: 113
2016-02-01 13:38:37,803   ERROR:  root: Выгрузка версий
Traceback (most recent call last):
  File "run.py", line 37, in <module>
    success = mng.export_new()
  File "c:\Distr\cfg_tools\mng.py", line 274, in export_new
    self.export_versions(start_version, commit=commit)
  File "c:\Distr\cfg_tools\mng.py", line 232, in export_versions
    self._commit(version_info)
  File "c:\Distr\cfg_tools\mng.py", line 116, in _commit
    date=version_info['date'])
  File "c:\Distr\cfg_tools\git_mng.py", line 58, in commit
    os.environ['GIT_AUTHOR_DATE'] = date.strftime('"%Y-%m-%d %H:%M:%S"')
AttributeError: 'str' object has no attribute 'strftime'
2016-02-01 13:38:37,807    INFO:  root: export delay: 728.8549990653992 sec.

Насколько я понимаю Питон, там внизу написано "Свойство объекта не обнаружено 'strftime'"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.