Skip to content
This repository has been archived by the owner on Mar 12, 2021. It is now read-only.

gitsync: Помещать файлы авторов/версий в нужный подкаталог создаваемого репозитария Git #112

Closed
artbear opened this issue Jun 14, 2016 · 23 comments

Comments

@artbear
Copy link
Collaborator

artbear commented Jun 14, 2016

Важно для сценария в одном репозитарии Git хранятся как исходники конфигурации 1С, так и прочие исходники/файлы продукта (например, документация, тесты и прочее)

Шаги, приводящие к ошибке:

1. Создаю локальный каталог для репозитария гит
2. Инициализирую в нём `gitsync init d:\data src/config`
4. тогда создаётся свой отдельный репозитарий git внутри моего будущего репозитария, что неверно

  data\
    |src\
        |config\
            |.git

В дополнение к #82

@artbear
Copy link
Collaborator Author

artbear commented Jun 14, 2016

Вместо текущего поведения

  1. сd src\config
  2. git init
  3. создание файлов авторов и версий в этом каталоге

хочется правильного:

  1. git init
  2. сd src\config
  3. создание файлов авторов и версий в этом каталоге

@realMaxA
Copy link

Текущее поведение команды корректно.
Сравните:

mkdir git-repo-1
cd git-repo-1
git init
mkdir git-repo-2
cd git-repo-2
git init

В данном случае происходит ровно то же самое.

@nixel2007
Copy link
Contributor

@realMaxA некорректно. второй репозиторий не нужен.

@realMaxA
Copy link

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

@artbear
Copy link
Collaborator Author

artbear commented Jun 15, 2016

@realMaxA Прав @nixel2007
Для гита это поведение верно, для нашего продукта нет.
Мы не должны создавать еще один внутренний репозитарий, если мы знаем о наличии существующего репозитария

@artbear
Copy link
Collaborator Author

artbear commented Jun 15, 2016

А гит соответственно ничего не знает, что где-то на верхнем уровне есть репозитарий, и потому его поведение абсолютно нормально.

@EvilBeaver
Copy link
Owner

@artbear git умеет в большинстве команд понимать, что на верхнем уровне есть репозитарий. Это в односкриптовом коде менять надо обработку

@artbear
Copy link
Collaborator Author

artbear commented Jun 15, 2016

@EvilBeaver про гит согласен, главное, что код гитсинк нужно менять, поэтому и создана эта задача

@realMaxA
Copy link

realMaxA commented Jun 15, 2016

Параметр <ЛокальныйКаталогГит> подразумевает указание расположения git-репозитария в файловой системе. Он обязан быть корнем git-репозитария.
Если исходники нужно класть в какой-то подкаталог текущего репозитария, нужно вводить новый параметр.

@artbear
Copy link
Collaborator Author

artbear commented Jun 15, 2016

Про новый параметр согласен.

@EvilBeaver
Copy link
Owner

СТОП!
Параметр, может быть неудачно назван, но везде в коде он интерпретируется, как "Каталог в котором лежат исходники и файл VERSION". В команде init это не так. НО я вообще сомневаюсь в необходимости команды init. С ней только путаница. Она должна создать нужные файлы и все. Не надо ей, имхо, вообще иметь дел с механикой git-а

@realMaxA
Copy link

Именно

@realMaxA
Copy link

realMaxA commented Jun 15, 2016

но везде в коде он интерпретируется, как "Каталог в котором лежат исходники и файл VERSION"

Самое простое решение, это отказаться от git init и git clone в gitsync (т. е. gitsync clone совсем отмирает), и будет счастье.
Но это не в полной мере решит проблему со сложностью освоения.

Потому, что при gitsync init ничего не говорится про git-репозитарий, но gitsync sync, при этом делает и commit и push, т. е. репозитарий всё-таки подразумевается. Здесь наблюдается разрыв.

@EvilBeaver
Copy link
Owner

Господа, я не спроста завел #82
Там приведен сценарий, как может быть. Он не идеален. Правьте должный сценарий, а реализация вторична уже. В частности, данная issue - попадает в сценарий из #82?

@realMaxA
Copy link

Данная issue вообще не нужна.

@EvilBeaver
Copy link
Owner

@artbear ?

@artbear
Copy link
Collaborator Author

artbear commented Jun 15, 2016

Сейчас есть обозначенный баг для текущей реализации. Поэтому задача нужна.

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

Все остальные задачи по гитсинку после выпуска нового релиза можно будет поправить (удалить, отменить) в соответствии с тем, нужна задача в новом поведении или нет.

@EvilBeaver
Copy link
Owner

подниму. Что с задачей?

@realMaxA
Copy link

Сейчас появилось небольшое окно, пытаюсь нарисовать фичи. Опыта совсем не хватает.
При благоприятном стечении обстоятельств сегодня дорисую в каком-то виде. Нужно будет доводить до ума.

@realMaxA
Copy link

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

features.zip

@artbear
Copy link
Collaborator Author

artbear commented Jul 20, 2016

@realMaxA Спасибо за фича-файлы.

Предлагаю тебе сделать пулл-реквест в проект, добавив файлы фич в каталог gitsync\features

В этом PR и сможет обсудить конкретные детали конкретных фич и предложения по их доработке.

Что скажешь?

@realMaxA
Copy link

src/gitsync/features?
да, сделаю. Заодно узнаю, что это такое )

artbear added a commit that referenced this issue Jul 28, 2016
Реализовано как правильное поведение, так и неправильное
@artbear
Copy link
Collaborator Author

artbear commented Jul 29, 2016

Реализовано через BDD-фичи проекта https://github.com/artbear/1bdd

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants