Неудобный кейс начального старта в gitsync. Сложно начать
Функционал: Подключение существующей конфигурации (с хранилищем) к git
Сценарий: Создан пустой репозиторий на сервере git
Допустим, создан пустой репо на сервере git
Когда я захожу в пустой каталог, который должен стать рабочей копией git
И запускаю gitsync в режиме **clone**
И указываю адрес репо GIT
И указываю файловый путь к хранилищу 1С
Тогда gitsync выполняет клонирование в текущий каталог
И формирует файл AUTHORS по данным хранилища
И формирует файл VERSION с пустой версией
Когда я захожу в пустой каталог, который должен стать рабочей копией git
И запускаю gitsync в режиме **init**
И указываю адрес репо GIT
И указываю файловый путь к хранилищу 1С
Тогда gitsync выполняет инициализацию через git init в текущем каталоге
И добавляет git remote на основании параметра ком. строки "адрес репо git"
И формирует файл AUTHORS по данным хранилища
И формирует файл VERSION с пустой версией
Сценарий: Создан пустой репозиторий и уже склонирован в папку рабочей копии средствами git
Допустим, я уже выполнил клонирование удаленного репо в локальную папку
Когда я запускаю gitsync в режиме **clone**
Тогда gitsync обнаруживает, что текущий каталог не пуст и не делает клонирование
И предлагает воспользоваться командой init
И завершается с ошибкой
Когда я запускаю gitsync в режиме **init**
И указываю адрес репо GIT
И указываю файловый путь к хранилищу 1С
Тогда gitsync обнаруживает папку .git и не выполняет инициализацию репозитория
И выдает предупреждение, что параметр ком. строки "адрес репо git" будет проигнорирован, т.к. репо уже существует
И формирует файл AUTHORS по данным хранилища
И формирует файл VERSION с пустой версией
Часть этого функционала не реализована или работает неочевидно. Нужно прогнать данный сценарий и свериться с ожидаемыми результатами.
Help Wanted!
неистово плюсую :+1:
@EvilBeaver ИМХО в обоих сценариях у тебя на самом деле 2 разных суб-сценария описаны. В итоге должно быть 4 сценария.
@artbear А можешь пояснить где именно разделение на 4 сценария? Может предложишь рефакторинг фичи?
Пишу с телефона, поэтому коротко. Попробуй выполнить любой из сценариев, и увидишь, что 2й блок Тогда не выполнится, т.к. шаги выше делают его недействительным
пн, 11 Апр 2016, 14:36 Andrei Ovsiankin [email protected]:
@artbear https://github.com/artbear А можешь пояснить где именно разделение на 4 сценария? Может предложишь рефакторинг фичи?
— You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub https://github.com/EvilBeaver/oscript-library/issues/82#issuecomment-208300196
@artbear а можно еще раз для тупых? Что там не выполнится, я не улавливаю.. (
Следующие шаги сценария противоречат друг другу, т.е сценарий упадет точно. Сначала мы клонируем репо в папку, а далее в этой папке запускаю инит, который не выполнится.
Сценарий: Создан пустой репозиторий на сервере git
Допустим, создан пустой репо на сервере git
Когда я захожу в пустой каталог, который должен стать рабочей копией git
И запускаю gitsync в режиме **clone**
Тогда gitsync выполняет клонирование в текущий каталог
Когда я захожу в пустой каталог, который должен стать рабочей копией git
И запускаю gitsync в режиме **init**
@EvilBeaver а что означают ** в шаге И запускаю gitsync в режиме **clone** ?
В геркине разве учитываются подобные знаки?
оказалось, что нет. Это я хотел так выделить жирным в markdown-style
Сначала мы клонируем репо в папку, а далее в этой папке запускаю инит, который не выполнится.
Да, это как бы два разных теста. Не знаю, как в Геркине оформить правильно
Да, это как бы два разных теста. Не знаю, как в Геркине оформить правильно
Я про и говорю с самого начала. Как и в жизни, в геркине это отдельные сценарии.
На самом деле, конечно, можно извернуться и реализовать подобные шаги.
Например, шаг Когда я захожу в пустой каталог, который должен стать рабочей копией git
создает новый пустой каталог и делает его текущим, тогда последующие шаги при условии использовании именно текущего каталога должны работать.
Но как реализовать шаги
Когда я запускаю gitsync в режиме **init**
И указываю адрес репо GIT
И указываю файловый путь к хранилищу 1С
я лично не понимаю :) как внутри шага установки параметров узнать, что пора бы уже запустить гитсинк ?
@artbear это должен быть один шаг
Либо переделать эти шаги на сбор команды запуска в несколько шагов и отдельно выполнение этой команды запуска
@nixel2007 Тут виден один из примеров того, что сценарий Геркина не всегда возможно реализовать напрямую :(
Например, заказчик/БА пишет сценарий, не думая о реализации. Это хорошо. Но программисту будет очень сложно сделать подобный сценарий :(
Либо переделать эти шаги на сбор команды запуска в несколько шагов и отдельно выполнение этой команды запуска
Конечно, это первое, что приходит в голову. Но это замена текста сценария, который мог быть написан другим человеком, и возможна подмена сути сценария :)
таг, фелософы, вы не выпендривайтесь, вы пальцем покажите )
Я писал желаемое поведение, как оно звучало в голове. Этот фича-файл не предполагает автоматического прогона, он просто чтобы донести свое видение поведения.
@artbear Андрей дело говорит. Фиче-файлы всегда подвергаются рефакторингу. Тут нечего бояться)
Вот тебе палец
# language: ru
Функционал: Подключение существующей конфигурации (с хранилищем) к git
Контекст: создан пустой репо на сервере git
Сценарий: Стартуем в режиме clone при создании пустого репозитория на сервере git
Когда я захожу в пустой каталог, который должен стать рабочей копией git
И запускаю gitsync в режиме "clone"
И указываю адрес репо GIT
И указываю файловый путь к хранилищу 1С
Тогда gitsync выполняет клонирование в текущий каталог
И формирует файл AUTHORS по данным хранилища
И формирует файл VERSION с пустой версией
Сценарий: Стартуем в режиме init при создании пустого репозитория на сервере git
Когда я захожу в пустой каталог, который должен стать рабочей копией git
И запускаю gitsync в режиме "init"
И указываю адрес репо GIT
И указываю файловый путь к хранилищу 1С
Тогда gitsync выполняет инициализацию через git init в текущем каталоге
И добавляет git remote на основании параметра ком. строки "адрес репо git"
И формирует файл AUTHORS по данным хранилища
И формирует файл VERSION с пустой версией
Контекст: я уже выполнил клонирование удаленного репо в локальную папку
Сценарий: Стартуем в режиме clone при создании пустого репозитория на сервере git и его клонировании в папку рабочей копии средствами git
Когда я запускаю gitsync в режиме "clone"
Тогда gitsync обнаруживает, что текущий каталог не пуст и не делает клонирование
И предлагает воспользоваться командой "init"
И завершается с ошибкой
Сценарий: Стартуем в режиме init при создании пустого репозитория на сервере git и его клонировании в папку рабочей копии средствами git
Когда я запускаю gitsync в режиме "init"
И указываю адрес репо GIT
И указываю файловый путь к хранилищу 1С
Тогда gitsync обнаруживает папку .git и не выполняет инициализацию репозитория
И выдает предупреждение, что параметр ком. строки "адрес репо git" будет проигнорирован, т.к. репо уже существует
И формирует файл AUTHORS по данным хранилища
И формирует файл VERSION с пустой версией
А хотите запускалку этой фичи :) ?
А хотите запускалку этой фичи :) ?
так есть же VB
забыли ключевые слова - как кто и хочу и чтобы что, поэтому и не понятно.
@EvilBeaver в понедельник подключаем 3 команды "к веселью" я попробую описать в нескольких сценариях. Сейчас сделана контрольная карта первого запуска - чтобы хоть как-то выкрутиться.
@artbear поддержка фич на 1script обсуждалась вот тут https://github.com/silverbulleters/vanessa-services/issues/20, собственно уже сделана, осталось только в релиз выпустить
@EvilBeaver что касается неудобного старта работы - то наши слушатели просто предложили реализовать "консольный мастер настройки", этакий рабочий стол по первой настройке.
то есть это новая функциональность - типа gitsync first-start-master
Еще один сценарий шагов от @realMaxA
в общем, что делаю.
1. Создаю на git-сервере репозитарий test
2. Клонирую его на локальную машину разработчика.
3. Инициализирую в нём gitsync gitsync clone d:\Data\1C\8.3\Storage\MyProj git@devel:MaxA/test.git src/config
4. Прописываю в VERSION версию.
5. Запускаю синхронизацию gitsync d:\Data\1C\8.3\Storage\MyProj git@devel:MaxA/test.git src/config -v8version 8.3.6.2299
> > Да. Просто указываешь путь внутри локальной копии
6.тогда он создаёт свой отдельный репозитарий git внутри моего репозитария, что неверно
test\
|.git
|src\
|config\
|.git
Сейчас #82 описывает не полный функционал продукта, а только начальную инициализацию. Нужно добавить сценарии реальной работы с продуктом (начальная инициализация, ручные действия пользователя, синхронизация с локальными и удаленными репозитариями гит)
#82 это эпик. К нему можно цеплять другие сценарии на Gherkin
https://github.com/oscript-library/gitsync/issues/82 Залинкую
Люди ругаются и волнуются и еще 4 пул-реквеста протухли
Люди ругаются и волнуются и еще 4 пул-реквеста протухли
@allustin Раскручусь с рабочими делами и постепенно отработаю по всем PR