Перейти к содержимому

Git extensions что это

  • автор:

Аналоги Git Extensions

Git Extensions также интегрируется с Windows Explorer и Microsoft Visual Studio (2010/2012/2013/2015/2017). Linux поддерживается версией 2.51 с некоторыми проблемами.

  • Управление версиями
  • Интеграция с GitHub
  • Интеграция с Windows
  • Просмотр в виде дерева
  • API интерфейс для плагинов

Альтернативы для Git Extensions

Персональный компьютер
Мобильный телефон

271

  • Бесплатная
  • Windows
  • Mac OS

Скриншот 1 программы SmartGit

Предназначен для разработчиков, предпочитающих графический пользовательский интерфейс клиента командной строки. Станьте более продуктивным с Git!

241

  • Бесплатная
  • Windows
  • Mac OS

Скриншот 1 программы SourceTree

Мощный клиент для Mac и Windows для распределенных систем контроля версий Mercurial и Git.

115

  • Бесплатная
  • Windows
  • Mac OS

Скриншот 1 программы GitKraken

Интуитивно понятный и быстрый кроссплатформенный Git-клиент.

93

  • Бесплатная
  • Windows

Скриншот 1 программы TortoiseGit

TortoiseGit — это интерфейс оболочки Windows для Git, основанный на TortoiseSVN. Имеет открытый исходный код и может быть полностью построен с помощью свободно доступного программного обеспечения.

74

  • Бесплатная
  • Windows
  • Mac OS

Скриншот 1 программы GitHub Desktop

Простое сотрудничество с вашего рабочего стола.

Что в этом списке?

В списке находится программы которые можно использовать для замены Git Extensions.

Это аналоги похожие по функционалу на Git Extensions, которые заменяют программу частично или полностью. Этот список содержит 5 замен.

С помощью пользователей мы собираем каталог похожих друг на друга программ, чтобы вы могли подобрать альтернативу и скачать их. На сайте можно скачать популярные программы для Windows, Mac Os, Android и iPhone

Pro Git

Ну и рассмотрим еще этот инструмент. Качаем тут.

GE0000

Git Extensions в установке по умолчанию идет сразу с msysGit и KDiff3, мне это не надо, так как у меня все это уже стоит. Версия без них весит куда меньше. В данном случае 9.3Мб против 38Мб.

Можно так же скачать и портабельную версию, но с ней могут быть вот такие проблемы при запуске

GE0005

Так что качаем ту что посрединке и устанавливаем

GE0006

GE0007

GE0008

GE0009

Так как у меня PuTTy уже стоит в комплекте с TortoiseGit, то я выбрал его. Правда потом пути к нему надо прописать в настройках Git Extensions, но он даже сам подскажет как это сделать.

GE0010

GE0011

Если возникает такая ошибка то это легко правится кнопкой Repair, надо просто указать путь к sh.exe в каталоге Git. Но он сам находит этот путь.

GE0002

GE0003

Далее может быть ошибка что не увидит PuTTy. Это тоже легко правится

GE0012

GE0013

GE0014

GE0015

GE0018

Ну и запускаем тулзу

GE0016

GE0017

Все в принципе достойно.

Git Extensions

Git Extensions широко называют единственным графическим интерфейсом, доступным через Интернет для пользователей Git, который может управлять Git, даже не требуя командной строки. Git Extensions является одной из самых популярных платформ Git, доступных через Интернет. Git Extensions широко доступны для операционных систем Windows и Max OS X. Для помощи начинающим Git Extensions предлагает несколько видеоуроков, основными из которых являются расширения клон-Git, фиксация изменений, push-изменения, pull-изменения и обработка конфликтов слияния. Основные выделенные функции и функции Git Extensions — это интеграция Windows Explorer для Git, наличие плагина Visual Studio для Git, многофункциональный и удобный интерфейс для Git, поддержка 32-битных и 64-битных версий, наличие единой программы установки для установки MSysGit. , mergetool KDiff3 и GitExtensions. В двух словах, Git Extensions — это, в основном, пакет расширений Git, который предназначен для работы с Git на Windows в более дружественной среде. Это просто один из лучших источников обучения для новичков.

Читать описание

Программа Git Extensions
Лицензия Бесплатная
Исходный код Открытый
Разработчик Henk Westhuis
Официальный сайт

Скриншоты

Найдено 3 аналогов Git Extensions. Эти программы имеют схожий набор функций и отлично подходят для замены.

Найдено 16 похожих программ, которые могут быть использованы только в качестве частичной альтернативы Git Extensions.

Кровь, пот и GIT

Ведущий разработчик 1С Андрей Карпов на конференции Infostart Event 2021 Post-Apocalypse поделился ошибками, которые совершают новички в работе с GIT. В докладе четыре кейса с пошаговыми инструкциями, которые позволят не допускать конфликтов в разработке.

GIT – это система для хранения и ведения истории изменения файлов. Это своего рода аналог хранилища 1С, но со своими особенностями и ограничениями. Большинство статей о GIT демонстрируют только процесс его первоначальной настройки и подключения. Они не показывают, с какими проблемами столкнулись авторы во время его использования, как их решали, и какие нехорошие мысли у них возникали в процессе.

Как обычно внедряется GIT

Как обычно внедряется GIT:

  • фаза 1 – внедрили GIT;
  • фаза 2 – ?
  • фаза 3 – все отлично.

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

Чтобы не возникало вопросов, давайте определимся с терминологией.

  • Репозиторий – это каталог, где хранятся все версионируемые данные GIT.
  • Commit – это фиксация текущих изменений и внесение их в историю вашей ветки.
  • Конфликт – это ситуация, возникающая при объединении веток, когда изменения есть и с той, и с другой стороны. При этом GIT объединить их в автоматическом режиме не может.
  • Merge – объединение одной ветки GIT с другой.
  • Pull request – запрос на добавление ваших изменений в другую ветку. Он используется в том случае, если вам запрещен доступ для обновления через commit (пул-реквесты часто используются для объединения веток master и develop).

Дисклеймер: образ Андрюши является собирательным. Все возможные совпадения с реальным человеком случайны.

На слайде разработчик Андрюша. У него есть мечта – разрабатывать правильно, в большом коллективе единомышленников, и чтобы каждый был доволен процессом.

В свои молодые годы Андрюша уже “осознал” каково это – использовать хранилище 1С на практике. А может и вы сталкивались с таким?

Не приходилось ли вам восстанавливать затертые доработки форм в хранилище?

Или, может, просили “корень” у коллеги? А может быть, у вас была доработка одного и того же объекта?

Из-за таких вот ситуаций казалось, что GIT – это решение всех проблем.

Рекомендации для разработки через хранилище

Некоторые возразят, что хранилище 1С – это очень удобный инструмент, просто нужно грамотно настроить процесс разработки. Например:

  • не захватывать надолго корень конфигурации;
  • либо захватывать объекты только перед помещением в хранилище;
  • или вообще воспользоваться рекомендациями фирмы 1С «Технология разветвленной разработки».

И с этим можно согласиться, но спишем стремление нашего молодого человека к GIT на его неопытность и желание опробовать новый инструментарий.

По счастливой случайности, а может и божественному провидению, Андрюша все же нашел ту самую “компанию мечты”, где 1С-ники недавно отказались от хранилища 1С в пользу использования GIT и вместе с нашим Андрюшей им предстояло пройти тернистый путь командной разработки.

В процессе разработки поддерживалось две конфигурации.

  1. Жутко старый «Документооборот» еще первой версии, который был подключен к хранилищу;
  2. 1С:ERP, разработка которой перешла на GIT.

Сам процесс разработки велся по SCRUM. У каждого разработчика были собственные базы, которые они могли сами актуализировать из копии продуктива.

Помимо этого, использовался:

  • Redmine – для учета задач и трудозатрат;
  • Bamboo – для тестирования, формирования релизов и дополнительных служебных операций (в частности, для обновлений баз разработчиков);
  • сервер Bitbucket, как система для версионирования, хранения и рецензирования кода;
  • GIT Extension – локальный клиент для GIT. Он удобен тем, что бесплатный, имеет простой и удобный интерфейс, логирует действия пользователей и не вылетает при большом количестве файлов в одном коммите.

Конечно же, все эти системы были на английском языке, ведь нужно приучаться к культуре тру-девелоперов и расширять свой словарный запас словечками: мердж, пул, фича и так далее.

Как выглядит схема ветвления GIT и какие данные можно поместить

Схема ветвления веток GIT похожа на GitFlow:

  • основная ветка «develope»,
  • от нее формировались задачи «feature», соответствующие номерам задач из Redmine;
  • при выполнении задачи, разработчик мерджил эту ветку с веткой «test»;
  • ветка «test» была подключена к отдельной базе, на которой отдел сопровождения проверял доработки;
  • после проверки ветку разработчика объединяли с веткой «develope»;
  • раз в день, после проведения автоматизированных тестов, ветку «develope» объединяли уже с веткой «master», и из нее формировался релиз, который загружался в продуктив;
  • помимо этого существовала ветка «origin1c» – в ней была размещена конфигурация поставки, ее использовали для обновления конфигураций через GIT и для сравнения, чем модуль из «develope» отличается от типового.

Версионировались не только файлы конфигурации, но и расширения, внешние отчеты, обработки и правила обмена:

  1. Внешние отчеты и обработки выгружались стандартным способом через пакетный режим конфигуратора.
  2. Правила обмена – для выгрузки использовалась утилита Gitrules, разработанная Олегом Тымко. Утилиту пришлось немного доработать, добавив поддержку выгрузки не только правил конвертации, но и правил регистраций и их сборку.
  3. Конфигурация и Расширения. Раньше они выгружались стандартным способом через команду «Выгрузить конфигурацию в файлы», но разработчики вскоре перешли на другое решение – утилиту автономного сервера ibcmd.

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

Пример команды для выгрузки конфигурации в файлы с помощью утилиты:

"C:\Program Files (x86)\1cv8\8.3.18.1334\bin\ibcmd.exe" infobase --dbms=MSSQLServer --db-server="Имя сервера" --db-name="Имя базы" --db-user="Имя пользователя SQL" --db-pwd="Пароль пользователя SQL" config export "Путь к репозиторию GIT" --base="Путь к ConfigDumpInfo.xml"

В таком процессе и начались рабочие будни нашего Андрюши.

Все было бы хорошо, и можно было бы сказать, что GIT – это удобный и практичный инструмент, но точно не для 1C:ERP.

В ней все очень тормозило: переключение между ветками, сравнение 2-х коммитов или веток.

Неприятной проблемой стало обновление на новый релиз – при этом коммитился cf-файл поставки, и в изменения попадали сразу все объекты конфигурации.

Разработчиков это сильно не устраивало. Стали искать способы ускорения — один из них стал GIT LFS.

GIT LFS – это расширение для GIT, которое преобразует выбранные файлы в текстовые ссылки, перемещая их в отдельное хранилище. После этого размер репозитория существенно сокращался.

Но GIT LFS нужно настраивать сразу при первым коммитом, иначе придется создавать отдельный репозиторий и перемещать туда всю историю изменений – при этом каждый коммит тогда необходимо обрабатывать дополнительно, чтобы он перемещался в GIT LFS.

Таким образом в GIT LFS были перемещены все бинарные общие макеты конфигурации и сам cf-файл поставки.

Общая схема выглядела так:

  • включаем GIT LFS на сервере Bitbucket;
  • на рабочем месте разработчика устанавливаем расширение https://git-lfs.github.com/ , сейчас git-lfs уже включен в дистрибутив git по умолчанию;
  • в консоли репозитория прописываем команду
git lfs install
  • указываем список файлов, которые необходимо отслеживать, командой
git lfs track "*.cf" git lfs track "/Config/CommonTemplates/*/Ext/*.bin"

Стоит обратить внимание, что GIT LFS по факту удаляет файлы из каталога. Чтобы корректно загрузить конфигурацию из файлов, необходимо вначале получить их из центрального хранилища командой:

git lfs fetch --all

И заменить текстовые ссылки на реальные файлы командой:

git lfs checkout

Популярные задачи с GIT, частые ошибки и их решение

Задача №1: перенести из актуального релиза новый регламентированный отчет

Андрюше поручили перенести из актуального релиза новый регламентированный отчет по 6-НДФЛ. Да так, чтобы все объекты при обновлении сопоставились.

Как хороший разработчик, Андрюша знал, что для корректного обновления объекты должны иметь такие же идентификаторы, что и типовые. Для этого он сравнил и объединил с конфигурацией релиза, отметил отчет для объединения и выгрузил изменения в Git.

Задача отправилась на тестирование и прошла его.

Позже конфигурацию на сервере обновили до актуального релиза – для этого объединили ветку «origin1c» с «develop».

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

В чем же была причина?

Ошибка: весь список метаданных в выгруженном виде содержится в одном файле configuration.xml. Когда Андрюша добавил новый отчет, он был автоматически добавлен в конец этого списка.

В релизе же все файлы хранятся по алфавиту. А GIT работает с 1С, как с текстом. Доработка и добавление Андрюшей нового отчета и вендором, рассматривались как две разные доработки, так как были добавлены в разные места одного и того же файла. И при этом даже конфликтов не возникало.

Решение: вручную отредактировать файл Configuration.xml, удалив задублированные метаданные.

Чтобы ситуация не повторялась, необходимо:

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

Способы сохранения ConfigDumpIngo.xml

Объекты из 1С попадают в GIT с помощью команды конфигуратора «Выгрузить конфигурацию в файлы». Чтобы выгрузка проходила быстрее, разработчики 1С в версии платформы 8.3.10 добавили возможность инкрементальной выгрузки.

При этом формируется файл ConfigDumpInfo.xml, в котором содержатся идентификаторы всех выгружаемых объектов.

Если в процессе разработки объект меняется, меняется и его идентификатор – таким образом, платформа может отследить, что именно изменилось, чтобы выгрузить только изменения.

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

Но на практике вам надо заботиться об этом файле: холить и лелеять его. Не дай Бог, 1С посчитает его не актуальным. Тогда начнется выгрузка всей конфигурации.

ConfigDumpInfo.xml – это файл Шредингера.

Его наличие в репозитории обязательно, но его нежелательно коммитить. Иначе он попадет в конфликты при объединении. И добавить в .gitignore нельзя, так как тогда он пропадет из видимости репозитория, и ты не поймешь, есть он в каталоге, или нет.

Самое забавное, что возможность сформировать этот файл вручную разработчики платформы добавили только спустя два года от появления инкрементальной выгрузки – в версии платформы 8.3.15:

  • для этого необходимо запускать конфигуратор в пакетном режиме с командой «load-config-from-files» и параметром «—update-config-dump-info only»;
  • либо воспользоваться утилитой автономного сервера ibcmd и выгружать с помощью режима «infobase config export info».

До выхода релиза 8.3.15, разработчикам пришлось сделать скрипт, который бы сравнивал два коммита, а разницу загружал в конфигурацию. При этом автоматически формировался актуальный ConfigDumpInfo.xml.

Этот файл ConfigDumpInfo.xml они прятали из видимости GIT с помощью команды git stash – она перемещает выбранный файл в специальное отдельное хранилище, не добавляя в репозиторий.

Из хранилища его можно доставать командой git stash pop. Единственное ограничение – чтобы git stash работал — надо один раз поместить configdumpinfo.xml в коммит репозитория.

Если вы не сумели сформировать ConfigDumpInfo или забыли его застэшить, вам предстоит увлекательное мероприятие по поиску своих изменений в списке измененных файлов полной выгрузки конфигурации

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

Задача №2: создать «ОченьВажныйСправочник»

Следующий пример. Андрюша разработал справочник, выгрузил изменения в GIT и отправил задачу на тестирование.

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

Протестированную задачу Андрюши тоже отправили в рабочую базу, но при этом произошел конфликт версий xml.

Ошибка: в основном, файлы 1С в выгруженном виде представляют собой XML. В зависимости от версии платформы, структура XML для одного и того же объекта может меняться.

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

При слиянии типового релиза и изменений Андрюши как раз произошел конфликт этих версий, т.к. у Андрюши справочник был добавлен в более старой версии платформы, а после перехода на новую версию, этот файл тоже изменился – его версия поменялась.

Решение: для правильного решения, Андрюше пришлось бы взять ветку до обновления и загрузить конфигурацию из файлов с этим обновлением. После этого сделать мердж его ветки с веткой «develope» с актуальным релизом. И заново выгрузить конфигурацию в файлы.

При этом 1С обновит структуру метаданных в соответствии с новым форматом. И тогда уже можно делать пул-реквест.

Однако кто в здравом уме будет этим заниматься? Достаточно просто вручную поменять версию XML через блокнот. Ошибок совместимости при этом не замечено.

Задача №3: исправить ошибку версии формата XML

С переходом на GIT появилась возможность редактировать конфигурацию, не прибегая к конфигуратору. Ведь правильно, зачем нам такая громоздкая IDE, если есть Notepad++ или Visual Studio Code? С более мелкими задачами они прекрасно справляются.

Вернемся к задаче про справочник.

Хитрый и ленивый Андрюша, чтобы исправить версию XML, решил воспользоваться глобальным поиском Visual Studio Code. Правда, когда коммитил, заметил небольшую странность – текст запроса динамического списка почему-то отображался, как «измененный». Хотя никаких изменений он не вносил.

«Видимо глюк», подумал Андрюша GIT, и смело отправил задачу на тестирование.

За такие смелые и быстрые решения его уже стали считать косячником.

Но как ни странно, у Андрюши получилось сформировать конфигурацию.

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

Возможная ошибка:

  • Ошибка из-за преобразования переносов строк LF и CRLF. Проблема была бы, если бы изменения внесли в типовые объекты конфигурации.
  • Редактор VS Code автоматически преобразовывает переносы строк LF и CRLF к единому стилю, которые соответствуют форматам Linux и Windows.

То, что Андрюша увидел как глюк GIT – это, на самом деле, было преобразованием формата переноса строк Linux на формат Windows.

Решение:

  • откатиться на предыдущую версию файла через GIT;
  • либо написать специальный скрипт, который обходил бы все незакоммиченные файлы. Он бы подменял точечно некорректные переносы в тегах с многострочным текстом на корректный перенос строк;
  • либо оставить все как есть. Главное знать, что могут быть проблемы с зарплатными модулями – других проблем не будет;
  • и еще в GIT можно настроить автоматическое преобразование переносов строк.

В GIT нет попроцедурного сравнения. С этим просто надо смириться. Реализовать сравнение модулей как в конфигураторе никак не получится.

Задача №4: сменить неприятное имя документа и добавить верхний регистр

Андрюша увидел, что «ОченьважныйДокументДляУчета» называется неправильно, нарушая стандарт CamelCase – буква «в» должна быть в верхнем регистре.

Руководствуясь благими намерениями, он поправил букву.

Однако в GIT отобразились только два измененных файла: файл Configuration и сам объект, хотя должно быть больше. Не чувствуя подвоха, Андрюша отправил задачу на тестирование.

Тестирование она не прошла.

Ошибка: проблема встречалась только на старых версиях GIT, потому что он не понимал смену регистра букв в именах файлов на файловых системах NTFS и Fat32.

А регистронезависимая 1С все-таки учитывает регистр букв, но только в том случае, когда обходит список метаданных в файле Configuration.

1С ищет каталоги соответствующие точно этому списку. Важные документы для учета, которые были уже в правильном регистре, она просто не находила.

Решение: необходимо воспользоваться консолью GIT и переименовать файл через консоль с параметром -f командой

git mv filename.txt FileName.txt -f

Он вносит эти изменения насильно, чтобы это фиксировалось в GIT.

В команде Андрюши все формы редактировались программно. На это были объективные причины, так как, если это сделать интерактивно, возникали проблемы. Например, в таблицу товаров документа реализации добавили колонку «Себестоимость».

Если колонку на форму добавить интерактивно, все выгрузится в GIT, протестируется и отправится в продуктив.

Но ручное редактирование форм может привести к неприятным последствиям:

  • Стоит фирме «1С» что-то поменять в этой таблице, в тех местах, где были сделаны доработки, появится конфликт, который придется решать в текстовом редакторе вручную, что влечет за собой высокую вероятность ошибки при некорректном мердже. Хотя, если у вас прямые руки и хорошее воображение, все пройдет замечательно.
  • Однако конфликт может и не появиться, и тогда GIT объединит все изменения в автоматическом режиме. При этом он может нарушить структуру метаданных XML и при загрузке конфигураций из файлов, конфигуратор будет просто вылетать.

Некоторые скажут, что нужно использовать расширения для редактирования форм. С этим можно согласиться, но:

  • расширение также выгружается в GIT в виде XML-файлов, и теряется наглядность понимания, что именно поменялось на форме;
  • разработчики не раз сталкивались с тем, что когда нажимаешь кнопку «Обновить форму», в захваченной форме слетал фильтр измененных объектов. Измененными становились сразу все объекты. И тогда уже не понять, что именно было доработано.

Также в GIT есть механизм автоматического переименования файлов: в одном коммитe ищется удаленный или/и добавленный файл с одинаковым расширением и определенным уровнем схожести.

Это может привести к ситуации, когда общий модуль преобразуется в общую команду. Это вроде как забавно, пока не появляется конфликт, и нужно определить, что же является источником.

Как убрать такое поведение GIT, Андрюша просто не знал. Он привык, что в каждой системе для каждого параметра есть соответствующий флажок и галочка, как в 1С. Но в GIT он ничего такого не нашел: ни в Git Extensions, ни на форумах разработчиков.

Ситуация разрешилась случайно.

Блуждая по интернету, он забрел на официальный сайт платформы EDT, где на одной из страниц был текст: «Для комфортной работы воспользуйтесь следующими настройками». Последние два параметра как раз и убирают поиск переименования в GIT.

Мораль: не будьте Андрюшами и читайте документацию.

Наверное вы заметили, что здесь практически не упоминается EDT. Это связано с тем, что в компании Андрюши его практически не использовали.

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

Итоги

Прошли месяцы. Если вы решили, что Андрюша сбежал, то это не так.

Хотя и описанные в докладе проблемы позволяют думать, что GIT – это пытка, но Андрюша уже привык.

Он прокачался – ему уже не резали слух иностранные термины, он мог вручную отредактировать коммиты, не внося изменения в конфигуратор, и отсечь чужие доработки, чтобы избежать конфликтов с его доработками.

Смотря на себя из прошлого, он понял, каким был наивным идеалистом: не бывает волшебной кнопки, которая все делает за тебя.

Отмечу, что на GIT очень тяжело перейти, так как это требует больше знаний и большего понимания всех процессов. И тогда некоторые разработчики скажут: «Ну и зачем нам тогда GIT?»

Так данный доклад и не агитирует переходить на GIT. Это просто инструмент, который вы используете. Но надо знать, что у него есть определенные плюсы.

В отличие от хранилища, GIT позволяет работать с большим пулом задач, когда:

  • часть задач на тестировании;
  • часть в разработке;
  • а часть ждет, когда ты к ним вернешься, спустя полгода.

Если рассматривать такую доработку не через GIT, то для каждой мало-мальски крупной задачи приходится создавать отдельное хранилище.

В заключении, не совершайте ошибок, которые описаны в докладе, а совершайте свои и делитесь их решением с сообществом.

Вопросы.

На последней картинке с коммитами GIT я не увидел нормального описания, что сделал разработчик. Я бы посоветовал в тексте описания коммита все-таки писать, что сделал разработчик.

Это так исторически сложилось, потому что настроен специальный скрипт, который парсит эту строку и автоматически закрывает задачи в Redmine. Он немного криво сделан, поэтому нельзя туда добавлять дополнительный текст, кроме стандартного.

Какая конфигурация компьютера использовалась у разработчика? И почему он не мог использовать EDT для разработки ERP?

Был достаточно мощный удаленный сервер – 240 Гб оперативной памяти. Но поскольку это удаленный сервер, на нем одновременно через RDP работало много разработчиков, и в EDT тормозила даже контекстная подсказка – в таких условиях работать было невозможно.

На сайте 1С есть рекомендации по серверам для малых, больших и очень больших конфигураций. Если брать для ERP конфигурацию компьютера, на которой была запущена EDT, то это минимум 16 гигов оперативной памяти и все на SSD дисках. При нормальной конфигурации компьютера это рабочий вариант. Но да, не для RDP, а на одного человека.

Для ЗУПа, для Бухгалтерии, для домашнего компьютера с 32-гиговой оперативкой, я использовал EDT, но на рабочем сервере это было проблематично.

Статья написана по итогам доклада (видео), прочитанного на конференции Infostart Event 2021 Post-Apocalypse.

30 мая — 1 июня 2024 года состоится конференция Анализ & Управление в ИТ-проектах, на которой прозвучит 130+ докладов.

Темы конференции:

  • Программная инженерия.
  • Инструментарий аналитика.
  • Решения 1С: архитектура, учет и кейсы автоматизации на 1С.
  • Управление проектом.
  • Управление продуктом.
  • Soft skills, управление командой проекта.

Конференция для аналитиков и руководителей проектов, а также других специалистов из мира 1С, которые занимаются системным и бизнес-анализом, работают с требованиями, управляют проектами и продуктами!

См. также

Системы контроля версий для 1С-разработчиков.

Основы командной разработки на 1С. Использование систем контроля версий при разработке на платформе 1С:Предприятие 8

4900 4410 руб.

29.06.2022 8204 75 4

102 75 4 8204

Отдай корень! Библиотека OneScript для получения информации о захваченных объектах в хранилище

Хранилище конфигурации 1С — это инструмент групповой разработки. Работают с хранилищем следующим образом: захватывают какой-либо объект, редактируют, потом отдают его в хранилище. Хранилище помечает уже захваченные объекты и не дает возможности захватить их другим пользователям. Это рождает и самый большой недостаток хранилища — невозможность работы с одним объектом нескольких пользователей, например в случае доработки разных методов в одном большом модуле. Корень конфигурации — это самый верхний ее узел. Только захватив корень, мы можем добавить в конфигурацию новые общие модули, документы, справочники, регистры и подобное. Только захватив корень можно изменить настройки поддержки конфигурации. Соответственно, если корень захвачен одним программистом, другой программист не может добавить новые объекты или снять что-то с поддержки. Потому то и всплывает эта фраза — отдай корень, мне нужно тоже что-то добавить.

26.12.2023 775 ardn 1

Git Code Review — инструмент для рецензирования кода

Git Code Review — инструмент, позволяющий быстро анализировать изменения из git-репозитория прямо в 1С

1 стартмани

20.12.2023 2815 39 salexdv 22

67 39 22 2815

Захват в хранилище по составу подсистем

Обработка для захвата объектов в хранилище согласно составу подсистем.

1 стартмани

21.11.2023 1015 5 ImHunter 0

14 5 0 1015

Работа с GitLab API

Работа с API GitLab на примере запуска pipeline с переменными, отслеживания его статуса и загрузкой полученных артефактов.

1 стартмани

06.10.2023 758 1 itsys 0

Наш путь в Git – история одного внедрения CI/CD

Чтобы перейти от разработки в хранилище до полноценного релизного цикла CI/CD, с автотестированием кода, сборкой конфигураций из исходников и ветками разработки для каждой задачи, нужно пройти большой путь. Расскажем о том, как организовать полностью автоматическую доставку проверенного и рабочего кода в 2000 конфигураций.

02.10.2023 3069 MrWonder 4

Jenkins на службе 1С

Основная специализация Jenkins – это, прежде всего, CI/CD. Но его можно использовать и для других важных задач: разбора хранилищ, настройки копий баз данных, раздачи прав пользователям, рестарта кластера и проверки кода проектов.

19.07.2023 2088 yukon 4

Приемы быстрой работы в EDT/Git

Статья даёт ответы на некоторые вопросы, возникающие у разработчиков, которые погружаются в океан технологий EDT и Git, омывающий царство DevOps. Сколько и какие ветки нужны? Какой репозиторий выбрать? Кто должен сливать доработки в мастер ветку или ветку версии? Как не тратить время в EDT на ресурсоёмких операциях? Зачем нам сборочный конвейер и как его построить? Зачем нам нужно тестирование и как его реализовать? Как вести разработку, если есть разработчики, не умеющие вести разработку в EDT или не имеющие технической возможности, но нам нужны их skills в 1С? Что такое фантомы и нужно ли с ними бороться? Как слить 20 доработок с конфликтами и уложиться в 4 часа? Опыт использования модных технологий в реальных проектах.

30.03.2023 8228 check2 10

87 10 8228
Посмотреть ещё
Комментарии

  • Дата
  • Дата
  • Рейтинг всех уровней
  • Рейтинг 1-го уровня
  • Древо развёрнутое
  • Древо свернутое

Свернуть все
1. kuzyara 1815 17.01.23 12:12 Сейчас в теме
> GIT Extension
Рекомендую попробовать gitkraken
2. karpik666 3729 17.01.23 12:29 Сейчас в теме

(1) пробовал, очень красивый, только интерфейсно показался сильно не привычным, и так и не нашел где можно запускать произвольные скрипты прямо из интерфейса, плюс он вроде платный

3. Segate 216 17.01.23 14:04 Сейчас в теме
(1) Vsode наше все ) Зачем еще что-то, когда в иде есть отличный гит клиент )
4. karpik666 3729 17.01.23 14:18 Сейчас в теме

(3) vscode также используем, с подсветкой синтаксиса 1С, но это все равно целиком не заменит работу с конфигуратором, это хорошее дополнение, но не его полная замена, имхо.

5. Segate 216 17.01.23 14:20 Сейчас в теме
(4) Ни в коем случае это не заменит конфигуратор. Но вот другой гит клиент -имхо ни к чему )
6. karpik666 3729 17.01.23 14:24 Сейчас в теме

(5) все-таки не соглашусь, git клиент как расширение vs code не столь удобен, как отдельный git клиент, как минимум, для меня показалось не удобным переключение между ветками, также отмечу, что там также нельзя запускать произвольные скрипты из интерфейса, как это есть в git extensions, для меня vscode, это удобный инструмент редактирования кода, или его поиска по структуре каталога, но точно не удобный git клиент.

7. user1559729 17.01.23 16:52 Сейчас в теме
Хорошая статья. Легко читается. Написано просто и доступно.
8. Brawler 446 17.01.23 18:31 Сейчас в теме

Пока читал статью, в очередной раз понял нафига оно не надо. чтоб это поддерживать нужно тоже специалистов держать и гуру по решению нештатных ситуаций, которых не возникает при использовании «1С Хранилище конфигураций» + сервера хранилищ.

Я уже 10 лет пользуюсь со своей командой «1С Хранилищами конфигураций», никаких биений лбами практически не происходит, захват корня минимизируем вполне может быть и смешным способом, например на примере обработок и отчетов.
Создаешь в структуре метаданных: Отчет01, Отчет02. ОтчетХХ, Обработка01, Обработка02. ОбработкаХХ.
Если кому требуется создать новый отчет или обработку, у него полно болванок, захватил и играйся от души. Создание болванок минутное дело, Ctrl+C, Ctrl+V, Ctrl+V, Ctrl+V, Ctrl+V, Ctrl+V, Ctrl+V, Ctrl+V, Ctrl+V, Ctrl+V, Ctrl+V, Ctrl+V, Ctrl+V, Ctrl+V, Ctrl+V, Ctrl+V, Ctrl+V.
Общие модули делим по типа ХХ_ПечатныеФормыПродажи, ХХ_ПечатныеФормыЗакупки, ХХ_Производство, ХХ_УправлениеСвойствами, ХХ_Константы, ХХ_ТЕкстЗапросов, ХХ_ОбщегоНазначения. по итогу дробится функционал и редко кто-то пересекается из разработчиков.
Разработка вся только в расширении конфигурации, ОДНОМ ЕДИНОМ, а не зоопарке. Упрощен поиск ошибок, легко обновлять базу на новые релизы.

Да все знают, что «Хранилище конфигураций» и конфигуратор не навороченный VisualStudio, но блин его мне хватает на все 100%, ибо и отладка пашет хорошо, и интерфейс не вырви глаз как в EDT, легкая среда разработки имеющаяся везде, даже часто на тачках пользователей. Устанавливается крайне быстро. Прикручивать всякие гиты почти кощунство. Надеюсь 1С просто доработку проведет у «Хранилища конфигураций» может не зря они опрос и провели недавно.

triviumfan; Dimkasan; ivan1703; user658002_SvanMoscow; info1i; dima_home; ixijixi; + 7 – 1 Ответить
10. karpik666 3729 17.01.23 19:30 Сейчас в теме

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

VladC#; kuntashov; + 2 – Ответить
11. Brawler 446 17.01.23 20:20 Сейчас в теме

(10) Ну как бы в хранилище есть функция выборочного сравнения объектов, где не тянется вся конфигурация целиком для сравнения, а только то что ты сравнивать хочешь. Мы доработками ERP занимаемся не снимая замков, и все дорабатываем в расширении, а поскольку расширение не такой гигант как сама типовая конфигурация, то даже полное сравнение в расширении происходит довольно быстро.
По поводу долгоиграющих доработок. Ну вот сижу я пилю реально два с лихом месяца что-то. И тут кому-то понадобилось внести правку там, он как и принято всегда просит отпустить объект, я же понимаю что не могу. Но на самом деле могу. Сохраняю CFE, отпускаю объект. Там человек делает правку быстро. Я смотрю, что он менял. Захватываю объект, делаю сравнение и объединение, вношу такую же правку как тот человек и продолжаю работать. Это краааайне редко так делать приходится ибо как правило все разработчики занимаются разными областями.
Я реально много чего переписывал комплексно и не один месяц, и я не сцу за свои доработки, я могу их сдавать тупо частями, освобождаю объекты, а есть (не в моей команде) туча программистов сыкунов, которые не могут гарантировать работу своего кода и потому будут миллион захваченных объектов держать. Я при том сдавая частями что-то могу уже даже наблюдать как что-то частично уже жить начинает, а я достраиваю все остальное, шаг за шагом. А могут мои сданные кусочки функционала начинать использовать и другие программисты.
Меня веселят люди пытающиеся использовать докеры шмокеры для отладок, создают себе кучу работы искусственно, вместо того чтобы просто сесть и хорошо продумать систему чтобы она обладала свойствами самотестирования там где ну прям вообще труба и сложные алгоритмы расчетов. Вот и Git у меня ассоциируется с бесполезной созданной искусственной работой, где перед руководством потом можно козырять красивыми и все равно не понятными ему словами.

Я не отрицаю, может для некоторых команд Git единственный выход, но я в такую опу еще не попадал к счастью!

Dimkasan; dima_home; + 2 – Ответить
13. karpik666 3729 17.01.23 22:22 Сейчас в теме

(11) данная статья не агитирует за git, она только показывает какие ошибки могут быть, вы вольны использовать собственный инструментарий. Не понимаю такого негатива. И докеры и шмокеры хороши в определенных ситуациях, если вы их не используете это не значит, что они не нужны.
Я правильно понимаю, что вы ERP дорабатываете через расширение? это проект на сколько программистов и пользователей? Лично мое мнение, если ERP находится на поддержке у команды разработчиков, что нужно всячески уходить от расширений, они только усложняют дальнейшую работу и поддержку, а расширение использовать как патчи, вместо динамического обновления. Также хотелось уточнить, а как вы храните документацию, или внешние обработки и отчеты, вы их не версионируете, или например доработанные внешние регламентированные отчеты? Использование GIT призвано стандартизировать работу команды, а не выделять личность, которая может сдавать проект частями (правда непонятно, зачем неготовые объекты в системе, еще не протестированные пользователями), и те кто имеют меньше квалификацию. Процесс разработки делится на этапы выполнения работы и дополнительного контроля со стороны более квалифицированного коллеги, который и принимает решение о корректности выполнения задачи, дополнительно может проводиться код ревью, плюс задачи проходит этап тестирования, которая проводится заказчиком или ответственным сотрудником, и после переезжает в рабочую базу. Все это можно делать и через хранилище 1С, и через GIT , просто через git это проще. В хранилище при такой реализации нужно как-то покрывать дополнительно скриптами для переезда доработок между отдельными хранилищами: разработка, тестирование, рабочие. Конечно, если ты сам себе постановщик, разработчик, тестировщик, и тимлид, то такая схема работа вообще не нужна.

VladC#; kuntashov; + 2 – Ответить
15. Brawler 446 18.01.23 00:04 Сейчас в теме

(13) Сейчас программистов 6 человек включая меня. Пользователей более ста. На предыдущей работе пользователей было свыше 300. Да как и писал выше сейчас нет того ада наверное, который есть у других, что они вынуждены использовать более так сказать серьезные системы типа Git. Я не негатювлю, просто люди должны понимать, что Git не панацея и не всегда нужен, можно обходиться и более простым функционалом.

Я правильно понимаю, что вы ERP дорабатываете через расширение?

Да дорабатываем через расширения все, при этом стремимся чтобы расширение было только одно, но сейчас их два. Второе заточено под интеграции с 1С ДО 2.1 (в нем тоже одно расширение). С Самого начала как начали использовать ERP, все дорабатывали только через расширения. Эта практика пока не подводила не считая иногда встречавшиеся глюки платформы. Разработка с применением расширений проходит куда интереснее чем портить типовой код, обновления на новые релизы протекают гладко, большое подспорье это проверка возможности применения расширений с автоматическим поиском проблем, хоть и не всех. В свое время я услал восстанавливать допилы в БП 2.0 — 3.0 при обновлении, в начале своей карьеры, кошмарная рутина стала. На ERP это было бы еще то удовольствие, не завидую тем кто пилит типовую.

Если снимать замки с типовой ERP, то банально как было замечено, обновление ставится не 30 минут, а 3 часа. Применять хранилище на типовой конфигурации пробовал, лютый трэш с длительностью захвата всех объектов, со сдачей в хранилище. Само по себе хранилище растет в размере большими темпами.

Также хотелось уточнить, а как вы храните документацию,

Документации к сожалению мало, по сути как и везде кто-то ставит ТЗ на ломанном языке, мы пытаемся реализовать. В сложных отчетах или обработках сразу в расширении пишется справка, чего вполне хватает.
От внешних отчетов и обработок планомерно уходим, разгребаем технический долг доставшийся в конце 2021 года, все переносим в то самое расширение где и версионируется оно уже хранилищем конфигураций.
До этого программисты 1С на предприятии пытались Git использовать для внешних обработок и отчетов, посмотрев на что я прекратил эту практику на корню ибо времени на то чтобы запихнуть в Git обработку или отчет, а потом положить в базу в справочник внешних обработок, уходило больше чем просто работать с хранилищем (свыше 300 обработок и отчетов было внешних). А ведь те программисты гавкались даже на этапе размещения в базе своей обработки ибо кто-то на несколько минут раньше туда положил такую же, но со своими доработками, ну и закономерно доработки одного терялись, так что внешние файлики это очень плохое решение. Позволительно только с нуля что-то как внешнее писать, отлаживается, а потом вживляется в расширение и уже потом групповая доработка через хранилище.

(правда непонятно, зачем неготовые объекты в системе, еще не протестированные пользователями),

Вы там видимо в каки-то тепличных условиях доработки ведете, видимо в столице родины нашей. Мы тут в глубинке не избалованы огромным количеством тестировщиков, кодревьверов и еже с ними. Приходится полагаться на свой многолетний опыт и то как ты изначально код пишешь, то есть не как курица лапой, где ничего не понятно. Я гоняю за несоблюдения аккуратности. Так и вот сдается код в котором ты уверен и конечно же протестирован хоть даже и бегло на тестовых базах. От того, что ты например выполняя большую работу в некотором общем модуле изобрел новую функцию получения минимума из двух чисел и сдал ее в хранилище, система не упадет, зато другой программист получает возможность и свое что-то в модуль сдать, а ты в каких-то других частях еще не дописанной программы уже используешь свою функция получения минимума.
И разве кто-то мешает допустим сделать костяк некоторого справочника, без блэк джэка и . и сдать его в хранилище и применить. Потом юзеры возможно без некоторого комфорта начинают туда вбивать данные, а ты тем временем пилишь кнопочки, которые добавят в будущем комфорта. Стоит упомянуть, что все же между программистами и юзерами у нас есть и только одна линия обороны в виде пяти специалистов 1С, которые в отличии от юзеров в состоянии материалы с 1С ИТС читать и так же проверить за программистом потыкав кнопочки в новом или допиленном старом функционале и то чисто для успокоения и отрапортованию юзеру, что работа сделана.

В хранилище при такой реализации нужно как-то покрывать дополнительно скриптами для переезда доработок между отдельными хранилищами: разработка, тестирование, рабочие.

У нас кощунство, мы и разрабатываем и тестируем, и применяем в боевые базы все из одного хранилища, экономия времени катастрофичная, отладке не мешает, ибо у программистов и так у всех свои базы, где еще до сдачи доработок может проверить функционал как он сам, так специалист 1С и юзер.

Конечно, если ты сам себе постановщик, разработчик, тестировщик, и тимлид, то такая схема работа вообще не нужна.

Вот вот, ближе к истине, я тимлид, а моя команда программистов молодцы, каждый сочетает в себе: постановщика (под контролем меня), разработчика, тестировщика.

Такой состав функций у каждого программиста позволил за пол года без лишних соплей перевести 15 (1С КА 1.1) филиалов крупной фирмы в ERP, под знаменем новой одной организации. Потом в эту же базу за 3 месяца завести крупное производственное предприятие (1С УПП 1.3) являющейся материнским для той первой организации. Потом выполнить там же слияние организаций за 3 месяца. Предприятие видя, что программистов мало, а работ море пыталось привлечь много разных франчей. Только они слились все уже на этапе коммерческих предложений. И только из Первого Бита пару ребят удалось все же на процентов 5 работ задействовать на момент объединения фирм.

На новой работе применяя тот же подход, за 2.5 месяца удалось перевести фирму с релиза ERP 2.4 на 2.5.7, очень запущенная база. Ударными темпами, но вытянули, теперь разгребаем технический долг доставшийся по наследству (и это не только ERP). И тут хранилищ конфигураций за глаза хватает. В каждый момент времени программисты видят, что кто-то уже колупает некий объект и что можно просто заняться или другой работой или узнать, а нужен ли он еще, решается все без конфликтов и быстро. Проблем со слиянием доработок разных программистов нет ибо разработка и изменения последовательные получаются, сначала один допилил, потом другой, и так далее. Мы уже готовы ставить 2.5.11 релиз ERP, как только он перекочует в колонку стабильных. При этом нужно переименовать в расширении только одну подсистему и мы обновились (проверено на тестовой).

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

Ладно все это не о Git.
Кому надо тот его будет использовать.
Но я надеюсь, что все же на волне санкций, фирма 1С развивать будет свой инструментарий.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *