Как обновить импорт, когда они меняют местоположение - PullRequest
0 голосов
/ 09 ноября 2018

Я вижу, что в Go вы можете импортировать пакеты прямо из Github, например:

import "github.com/MakeNowJust/heredoc"

Я понимаю, что путь, который я вижу в строке импорта, - это не URL, а только путь, в котором находится пакет (обычно относительно $ GOROOT / src / pkg или $ GOPATH / src). Таким образом, пакет heredoc, скорее всего, находится в каталоге $ GOPATH / src / github.com / MakeNowJust / heredoc.

Теперь предположим, что разработчик пакета решил перенести репозиторий на Bitbucket. Теперь URL библиотеки - bitbucket.com/muchMoreCoolerName/heredoc. Он также добавил некоторые новые функции в репозиторий.

Мой вопрос: как вы получите обновленный код?

Единственное решение, которое я могу придумать, - это изменить все операции импорта на новый URL и снова выполнить go get. Но изменение кода для обновления библиотеки кажется немного неудобным.

1 Ответ

0 голосов
/ 09 ноября 2018

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

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

РЕДАКТИРОВАТЬ Вы также можете использовать dep для управления зависимостями, если вы еще не перешли на модули.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...