Есть ли способ многократного использования пути для импорта в проектах Go?

Я очень новичок в Go, и мне нужна небольшая помощь, чтобы сделать путь импорта более распределяемым между моей командой.

В настоящее время в верхней части одного из моих файлов Go у меня есть импорт, скажем, «github.teamName.com/teamMemberA/HeartThrob/c».

Я разветвил его проект на свое имя, скачал его и получил несколько довольно очевидных ошибок импорта.

МОЙ путь к файлу, который он пытается импортировать, следующий: "github.teamName.com/myName/HeartThrob/c"

Это изменение пути связано с тем, что я вытаскиваю проект из своего собственного разветвленного репо.

Как я могу это исправить? Возможен ли относительный путь? Я не могу поместить все файлы Go в один каталог из-за размера проекта и некоторых очевидных мест для разделения.

Отказ от ответственности: новичок в Go И Git (хотя мой разветвленный подход является обязательным для команды)


person Shadoninja    schedule 13.02.2015    source источник
comment
облом. Затем, возможно, извлеките /myname/appname в $GOPATH/src/orgname/appname (или любой другой путь, соответствующий основному URL-адресу) и выполняйте свою работу там. Если вам нужно работать с несколькими форками, переключите GOPATH или замените их через mv и т. д.   -  person twotwotwo    schedule 14.02.2015
comment
Тогда поток немного отстой (как минимум, вы больше не можете просто использовать go get), но если ваша команда требует, чтобы вы работали над форками, я не вижу ничего лучше. Хотя, может быть, кто-то ответит лучше.   -  person twotwotwo    schedule 14.02.2015
comment
См. splice.com/blog/contributing-open-source-git- репозитории-перейти   -  person Cerise Limón    schedule 14.02.2015
comment
Да, проверка моего форка на пути к файлу, относящемуся к основному форку, исправила это. Хорошая идея.   -  person Shadoninja    schedule 19.02.2015


Ответы (1)


Предполагая, что GOPATH содержит один элемент, сделайте следующее:

$ mkdir -p $GOPATH/github.teamName.com/teamMemberA
$ cd $GOPATH/github.teamName.com/teamMemberA
$ git clone github.teamName.com/myName/HeartThrob
$ cd HeartThrob/c
$ go install

Альтернативный подход:

$ go get github.teamName.com/teamMemberA/HeartThrob/c
$ cd $GOPATH/github.teamName.com/teamMemberA/HeartThrob
$ git remote add fork [email protected]/HeartThrob.git

Взломайте путь и нажмите на развилку.

person Community    schedule 14.02.2015
comment
Да! Это оно. Несмотря на то, что моя разветвленная версия имеет другой путь, я могу игнорировать это, просто создав файловую структуру, соответствующую путям импорта. Хороший ответ (ваше первое предложение сработало гладко) - person Shadoninja; 19.02.2015