Скрипт выгрузки хранилища в GIT на Python (beta)

0. Биос Team (team bios) 23 25.12.15 11:17 Сейчас в теме
Скрипт для выгрузки хранилища 1С в GIT для платформ 8.1, 8.2(не тестировалось), 8.3

Перейти к публикации

Комментарии
1. Артур Аюханов (artbear) 859 26.01.16 16:53 Сейчас в теме
Еще один в клуб разборщиков конфы на исходники :)

Исходники выложены, кто хочет помочь, присоединяйтесь.

Ссылка на исходники не работает.
2. Артур Аюханов (artbear) 859 26.01.16 17:03 Сейчас в теме
3. Артур Аюханов (artbear) 859 26.01.16 17:03 Сейчас в теме
Добавьте лицензию к проекту
4. Егор Иванов (Infactum) 216 26.01.16 17:17 Сейчас в теме
В целом проект радует. После беглого взгляда рекомендовал бы следующее:
- Убрать велосипед git_mng.py. Вместо него есть такая великолепная вещь, как GitPython.
- Заимствуя чужой код не нарушать лицензию :) Намекаю на мой проект. Что мешало просто включить его в качестве зависимости?
- После реализации предыдущих пунктов сделать нормальный setup.py и залить все в pip.
artbear; Evil Beaver; +2 Ответить 2
5. Биос Team (team bios) 23 26.01.16 17:27 Сейчас в теме
(4) Infactum, GitPython - чтот не взлетел по-быстрому, так что пришлось сделать костыль, а так да, в дальнейшем планируется работа с гитом через него.
по проекту вашему, из него была взята идея и небольшая часть кода, мы боролись за скорость и наше решение выигрывало.
6. Егор Иванов (Infactum) 216 26.01.16 17:30 Сейчас в теме
(5) team bios, заимствование части кода как бы не отменяет требований лицензии :)
А если отложить занудство в сторону, то был бы рад получить более подробное описание относительно того, какие проблемы скорости работы вы встретили и как они были решены. В идеале можно и pull request, но настаивать конечно не могу.
7. Биос Team (team bios) 23 26.01.16 17:36 Сейчас в теме
(1) artbear, ссылку поправили, спасибо! И спасибо за интерес!;)
8. Биос Team (team bios) 23 26.01.16 17:38 Сейчас в теме
(6) Infactum, хорошо, будем внимательнее:) Чуть позже отпишем по подробностям. Спасибо!
9. Биос Team (team bios) 23 26.01.16 17:41 Сейчас в теме
(6) Infactum, по лицензии и возможности pull request позже. мы только после последнего ивента занялись вопросом git и open source:)
10. Андрей Овсянкин (Evil Beaver) 3904 26.01.16 18:10 Сейчас в теме
Быструю многопоточную разбиралку CF на базе unpackv8 (С++) делал Сергей Батанов (http://infostart.ru/profile/45491/). Оно как бы хорошо, что вы все наши наработки знаете и пробовали, а все ж теперь есть "еще одна", а не развитие существующих.
11. Андрей Овсянкин (Evil Beaver) 3904 26.01.16 18:18 Сейчас в теме
А, ну и чего не на гитхабе-то?

Предложение-дополнение Infactum:

1. Делаете пакет "разбиралки" файлов guid.0 из CF на файлы Справочник.ЧтоТоТам.Форма
2. Оформляете как самостоятельный пакет в pip
3. Делаете пакет вот этого вот синхронизатора
4. Подключаете существующий "читатель" 1CD, как зависимость
5. Опять же создаете пакет в pip
6. Переписываете все это на 1Скрипт :)
8. Выкладываете на гитхаб.
12. Егор Иванов (Infactum) 216 26.01.16 18:25 Сейчас в теме
(10) Evil Beaver, Ссылка куда-то не туда ведет.
В защиту Python (да и любой скриптовой реализации разбора) скажу, что не смотря на всю быстроту C++ необходимость самостоятельно сборки или наличия готовых бинарников под все системы несколько напрягает. Python например работает везде куда только не посмотри, и в большинстве случаев стоит "по дефолту". Кстати никто так и не решился сделать адекватное сравнение скорости работы распаковки/запаковки на Python и C++. В моем субъективном тесте Python версия как минимум работает так же по скорости.

(11) Evil Beaver, плюсую. НУ разве что кроме последнего пункта :)
А если надумают выйти на совсем взрослый уровень, то крайне желательно наличие тестов и какого-нибудь CI. Тот же Travis например практически идеальный вариант для гитхаба.
13. Артур Аюханов (artbear) 859 26.01.16 19:07 Сейчас в теме
Я на всякий случай сделал 2 origin-а, один из них ведет на исходный сайт автора, другой на гитхаб https://github.com/artbear/cfg_tools_python
(0) Как только определитесь с лицензией, поправлю репо на гитхабе.
14. Андрей Овсянкин (Evil Beaver) 3904 26.01.16 19:24 Сейчас в теме
(12) Infactum, т.е. с предпоследним пунктом все-таки согласен?
15. Валерий Агеев (awa) 2380 26.01.16 20:32 Сейчас в теме
(11)(14) Предпоследний пункт - это пункт 7 ведь?
16. Биос Team (team bios) 23 26.01.16 20:38 Сейчас в теме
(10) Evil Beaver, Мы не нашли "наработок"(кроме Tool_1cd, но у него нет исходников в свободном доступе) на основании которых можно было бы сделать быструю выгрузку. Используя несколько инструментов(tool_1cd и unpuck, например) мы бы тратили лишнее время на сборку cf а потом разборку, когда, например, в коммите был 1 файл.
17. Биос Team (team bios) 23 26.01.16 20:40 Сейчас в теме
(11) Evil Beaver, У нас была одна задача на этом этапе - быстро перекинуть код. В будущем постараемся развить, спасибо за советы! А разработку оставим на питоне, потому как нравится:). А не на гитхабе, потому что после ивента решили познакомиться с гитом, "покурили" тему и выбрали гитлаб, потому что его можно бесплатно развернуть у себя (у нас есть закрытые проекты, такой режим на гитхабе платный). Вот и расшарили этот проект на своем сервере. Создаем учетку на гитхабе, опубликуем там проект. Спасибо!
theshadowco; +1 Ответить 1
18. Андрей Овсянкин (Evil Beaver) 3904 27.01.16 09:54 Сейчас в теме
(17) team bios, судя по недавним тикетам на gitsync и данной статье, вы с theshadowco - коллеги?

То, что в статье предложено, мне нравится. Я же не с критикой выступаю, а с предложениями. Ну и вообще, я сторонник подхода share the knowledge. Отсюда и желание видеть это в опенсорсе, на сервере, который не будет сегодня-завтра отключен владельцем. Это раз. И хочется видеть это в виде продукта, готового к повторному использованию, с соответствующей документацией и лицензией - это два.
19. Андрей Овсянкин (Evil Beaver) 3904 27.01.16 10:51 Сейчас в теме
(15) awa, нет, предпоследний - это пункт 6. Просто он две единицы занимает ))
20. Евгений Сосна (pumbaE) 527 27.01.16 11:20 Сейчас в теме
Добавили бы еще в gitsync частичную выгрузку только изменных модулей - цены б не было. Т.е. если в версии поменялся только модуль или толстая форма, тогда только их выгружаем по правильному пути, а в случаи изменения объектов или упр.форм тогда выгружаем все полностью всю конфигурацию.
JohnyDeath; +1 Ответить
21. Биос Team (team bios) 23 27.01.16 12:53 Сейчас в теме
(18) Evil Beaver, нет, не коллеги и не знакомы)
Очень рады предложениям и с радостью их воспринимаем, спасибо! Про гитхаб все поняли, зарегились, опубликовали там проект https://github.com/TeamBIOS/cfg_tools ((3) artbear, лицензию добавили).
Про готовый продукт обсуждали между собой, чтобы все по-человечески доделать и опубликовать, но решили сделать это сейчас и после доработки обновить (для этого и приписали beta). В общем, оно и хорошо получилось, учтем все предложения при развитии проекта.
22. Биос Team (team bios) 23 27.01.16 14:00 Сейчас в теме
(4) Infactum, Добавили лицензию и включили в нее Вас
23. Биос Team (team bios) 23 27.01.16 14:25 Сейчас в теме
(6) Infactum, про проблемы сложно сказать, т.к. проект был написан с нуля с использованием части Вашего кода(разбор описания таблиц и преобразование типов + некоторые идеи) за это вам большое спасибо, уже исправились в части лицензировния:)). В чистом виде Ваше решение у нас не взлетело, решили писать свой велосипед (уже поняли, что это не популярное мероприятие в местных кругах, но интересно же:)). Можно только по итогу сказать - разница в быстродействии - примерно в 2 раза (база ~ 3гб; onec_tools: 06:28.567312; cfg_tools: 03:49.299595). Если есть желание можем попробовать объеденить наши проекты. но это надо обсуждать отдельно.
24. Артур Аюханов (artbear) 859 27.01.16 15:38 Сейчас в теме
(21) Первый форк у меня :)
Лицензию увидел
team bios; +1 Ответить
25. Егор Иванов (Infactum) 216 27.01.16 16:16 Сейчас в теме
(23) team bios, опубликуйте код теста, которым вы производительность сравниваете, пожалуйста (например на GIST). Как будет время я обязательно посмотрю, что там с быстродействием.
26. Биос Team (team bios) 23 27.01.16 16:26 Сейчас в теме
(25) Infactum, текст кода, была идея сначала, что дело в BLOB, но увы они мало влияют. А так, профйлер покажет что надо улучшать.
27. Станислав Крякин (Stas26) 25.07.16 13:09 Сейчас в теме
Разместил хранилище с помощью гит хранилище на сайте bitbucket.org. Загрузка идет прекрассно. Можно ли каким-то образом сделать загрузку обратно в к конфигурацию 1С (хранилище), но не всю целиком (git clone ...), а выборочно? То есть, на сайте bitbucket.org хранится информация в коммитах. Допустим коммит 1 - Справочник Номенклатура, коммит 2 Справочник - Организация, коммит 3 - Справочник контрагенты. Мне нужно загрузить в конфигурацию 2 (хранилище 2) из этих 3 коммитов только 1, коммит 2, а остальные не загружать, так как например имеются там какие-нибудь ошибки. Можно это сделать? Если да, то как?
28. Биос Team (team bios) 23 25.07.16 13:25 Сейчас в теме
(27) Stas26, На данный момент (в нашем инструменте) нет такой возможности.

Можно посмотреть в строну Tool_1cd, умеет ли он, если да то, можно выгрузить средствами гита нужные коммиты, привести имена файлов к нужному виду(для Tool_1cd) и скормить из ему. А может Tool_1cd уже имеет необходимый функционал.
29. kav kav (alexkmbk) 16 14.08.16 07:41 Сейчас в теме
(6) Infactum, А равзе MIT лицензия не предусматривает что проект является общественным достоянием и код можно использовать по своем усмотрению, в том числе использовать код в своих проектах?
30. Егор Иванов (Infactum) 216 14.08.16 10:20 Сейчас в теме
(29) alexkmbk, можно.
У лицензии MIT всего лишь одно условие:
Указанное выше уведомление об авторском праве и данные условия должны быть включены во все копии или значимые части данного Программного Обеспечения.
Оставьте свое сообщение