1C-Company / 1c-edt-issues

Пространство для пожеланий и обсуждения ошибок 1C:Enterprise Development Tools
https://edt.1c.ru/
134 stars 8 forks source link

ring берет имя проекта из путей #199

Open DitriXNew opened 2 years ago

DitriXNew commented 2 years ago

Описание ошибки

Имя проекта берется из пути к проекту, который я указываю при экспорте через ring.

Как воспроизвести

Есть комманда "edt workspace export --configuration-files $PathToXML --project $PathToProjectEDT --workspace-location $EdtWorkspace" Где $PathToProjectEDT = "C:\Ut11" Программа работает корректно, все экспортируется. Но, если я потом хочу сделать валидацию проекта в той же рабочей области, то система ругается:

C:\>ring edt@2021.2.4:x86_64 workspace validate --file D:\BuildAgent\work\1a6f877412bed20\log.tsv --project-name-list Ut11 --workspace-location D:\BuildAgent\work\1a6f877412bed20\WP
Projects validation operation failed.
Reason: org.eclipse.core.internal.resources.ResourceException: A resource exists with a different case: '/Ut11'.
 Reason: A resource exists with a different case: '/Ut11'.
  Reason: A resource exists with a different case: '/Ut11'.
1C:Enterprise Development Tools process execution failed.

C:\>ring edt@2021.2.4:x86_64 workspace validate --file D:\BuildAgent\work\1a6f877412bed20\log.tsv --project-name-list UT11 --workspace-location D:\BuildAgent\work\1a6f877412bed20\WP
Projects validation operation failed.
Reason: Workspace project with name UT11 does not exist
1C:Enterprise Development Tools process execution failed.

В самом манифесте написано имя проекта:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>UT11</name>
    <comment></comment>
</projectDescription>

Но при этом, получается какая то не понятная картина. В этом случае в области появляется проект с именем Ut11, т.е. t - маленькая, а не большая. А в манифесте прописано UT11, с большой буквы. Получается что имя проекта определяет путь? Это мега странно. Так как теперь пытаясь сделать валидацию проекта - какое бы я имя не указал, система проект не находит. Выше я привел результат выполнения попытки валидации с именем Ut11 и UT11

Скриншоты

No response

Ожидаемое поведение

Имя проекта должно браться из манифеста.

Лог рабочей области

-

Версия 1С:EDT

2021.2.4

Операционная система

Windows

Установленные плагины

No response

Дополнительная информация

No response

MaksimDzyuba commented 2 years ago

Здравствуйте, к сожалению не смог воспроизвести на 2021.3, скажите, а проблема актуальна? Выполнил 2 такие команды:

ring edt@2021.3.1:x8664 workspace export --configuration-file C:\Ut11 --project C:\Ut11 --workspace-location C:\Workspaces\ring-workspace

ring edt@2021.3.1:x86_64 workspace validate --file C:\log.tsv --project-name-list Ut11 --workspace-location C:\Workspaces\ring-workspace

image

Извиняюсь за такую долгую реакцию(

DitriXNew commented 2 years ago

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

MaksimDzyuba commented 2 years ago

имя проекта должно быть указано так, как оно создалось при экспорте из xml, с учетом регистра, то есть, если в файле .project написано, что имя проекта "Ut11", то также должно быть и в запросе на валидацию написано

DitriXNew commented 2 years ago

Давайте еще раз. В проекте у меня имя UT11. Я же проект импортирую через параметр --project $PathToProjectEDT. Т.е. по пути. Где путь оканчиваниется на Ut11. И в воркспейс импортируется проект с именем Ut11. А не UT11. И после этого я не могу валидацию сделать ни по имени UT11, ни по имени Ut11. Т.е. там важен рнгистр букв. Вот о чем я писал.

MaksimDzyuba commented 2 years ago

вот в исходном описании ошибки, путь "Где $PathToProjectEDT = "C:\Ut11"", а в манифесте проекта уже "UT11". Вот это странно, мы не проводим преобразования, то есть имя проекта должно совпадать с именем папки при экспорте. Если сейчас на 2021.3 ситуация повторяется, то можно прислать, пожалуйста, логи, они лежат в папке рабочей области, которую указываете при операции экспорта

DitriXNew commented 2 years ago
C:\Users\DitriX>ring edt@2021.3.1:x86_64 workspace export --configuration-files C:\Users\DitriX\Documents\WS\XML --project C:\Users\DitriX\Documents\WS\Test\Ut11 --workspace-location C:\Users\DitriX\Documents\WS\Temp
Project is successfully exported to 1C:Enterprise platfrom configuration XML files.

C:\Users\DitriX>ring edt@2021.3.1:x86_64 workspace validate --file C:\Users\DitriX\Documents\WS\log1.tsv --project-name-list UT11 --workspace-location C:\Users\DitriX\Documents\WS\Temp
Projects validation operation failed.
Reason: Workspace project with name UT11 does not exist
1C:Enterprise Development Tools process execution failed.

C:\Users\DitriX>ring edt@2021.3.1:x86_64 workspace validate --file C:\Users\DitriX\Documents\WS\log1.tsv --project-name-list Ut11 --workspace-location C:\Users\DitriX\Documents\WS\Temp
Projects validation operation failed.
Reason: org.eclipse.core.internal.resources.ResourceException: A resource exists with a different case: '/Ut11'.
 Reason: A resource exists with a different case: '/Ut11'.
  Reason: A resource exists with a different case: '/Ut11'.
1C:Enterprise Development Tools process execution failed.

UT11.zip

marmyshev commented 2 years ago

то есть имя проекта должно совпадать с именем папки при экспорте.

@MaksimDzyuba Вот в этом и есть "ошибочное поведение" имхо - т.к это требование привнесено алгоритмом ринг-команды (предполагаю). В ЕДТ/Eclipse при интерактивном импорте - не важно где лежит проект или как папка называется - импорт будет по манифесту проекта из файла .project

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

DitriXNew commented 2 years ago

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

MaksimDzyuba commented 2 years ago

Всем привет, дело в команде экспорта, "--project C:\Users\DitriX\Documents\WS\Test\Ut11", тут путь написан, не так, как он в операционной системе, что приводит к тому, что когда проект импортируется в рабочую область, у него не верно записывается расположение проекта, вместо, ожидаемого "/UT11", написано "/Ut11". из-за этого, валидация и не работает, вот на скрине это отчетливо видно. Дело не в том, как написано имя проекта, написано оно большими буквами, пусть и будет, а дело именно как написано в команде ринга. Поэтому предлагаю везде писать честно, а мы попробуем такую разницу убрать.

image

safer-bwd commented 2 years ago

то есть имя проекта должно совпадать с именем папки при экспорте. Если

Считаю, что такой подход ошибочен. ИМХО имя проекта должно браться из манифеста и не должно быть связано с каталогом проекта.