Перенос зависимости пакета в подкаталог репозитория git

#git #dart #dart-pub

#git #dart #dart-pub

Вопрос:

У меня есть пара небольших демонстрационных проектов dart в одном репозитории git. Таким образом, каждый проект находится во вложенной папке репозитория, а файлы yaml каждого из этих проектов находятся в соответствующей папке, а не в корне репозитория. Есть ли способ указать зависимость git от такой подпапки в репозитории git? Я знаю, что могу клонировать репозиторий вручную и использовать путь к файлу в спецификации зависимостей. Но то, что я ищу, — это способ иметь прямой URL-адрес git для этого пакета в поддиректории. Возможно ли это?

Комментарии:

1. вы пытались добавить имя каталога к URL-адресу? git: url: git://github.com/munificent/kittens.git/somedir В документации упоминается только ref: some-branch (ссылка может быть любой, которую Git позволяет идентифицировать фиксацию) см. dartlang.org/tools/pub/dependencies.html#git-packages

2. Это не работает, потому что pub сначала запускает клонирование git, но URL-адрес с добавленным каталогом не ссылается на действительный репозиторий git, и поэтому клонирование завершается с ошибкой.

3. Я думаю, вам следует сделать запрос функции dartbug.com/new

4. Я создаю запрос функции. См . code.google.com/p/dart/issues/detail?id=19797

Ответ №1:

Несколько лет спустя была добавлена поддержка этого:

https://github.com/dart-lang/pub/pull/1650

Теперь вы можете разделить git зависимость на url и path :

 dependencies:
  protobuf:
    git:
      url: git://github.com/dart-lang/protobuf.git
      path: protobuf
  

Дальнейшее чтение: https://dart.dev/tools/pub/dependencies#git-packages

Ответ №2:

Это ответ, который я получил от команды разработчиков:

«Это не то, что мы планируем поддерживать. Репозитории должны иметь взаимно однозначные соответствия с пакетами, а пакеты должны располагаться на верхнем уровне репозиториев. «

Это затрудняет использование зависимостей от пакетов в репозитории git, поскольку Eclipse всегда использует корень проекта в качестве вложенной папки в репозитории.

Комментарии:

1. Теперь это возможно — см. Мой ответ 🙂