Как работать с пакетом вендора разработки под управлением dep?

Как я могу использовать копию разработки / клон пакета при использовании dep а каталог поставщиков? Каталог поставщиков включен в основной репозиторий.

Например, я раздвоил пакет и заменил его своим собственным на github. Я хочу иметь возможность редактировать код и не должен git push + dep ensure за каждое изменение пакета.

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

Я попробовал подвох .gitignore .git каталог снаружи пакета. Это работает хорошо, пока dep ensure выполняется, где .git каталог обнулен.

2 ответа

Согласно dep Документы, нет встроенного способа сделать это в том виде, как оно есть.

Они также рекомендуют не изменять пакеты в vendor Директория напрямую, по причинам, которые я обнаружил: она запускается при запуске dep ensure,

Их основное предложение - вручную удалить пакет из vendor/ каталог, измените его в обычном $GOPATHи работает dep ensure -update <pkg> когда закончил разработку этого.

Это достаточно лучше, чем нажатие на каждое изменение, но все же требует ручного push/dep ensure при завершении работы по разработке.

Альтернатива "игнорированию" .git"это сохранить .git папка в другом месте! (далеко за пределами вашего проекта Go)

В любое время, когда вам нужно выполнить команду git в специализированном подпроекте, вам нужно будет использовать псевдоним для команды git, который будет:

alias gg='git --git-dir=/path/to/elsewhere/.git --work-tree=/path/to/vendored/subproject'
# Windows
doskey gg=git --git-dir=C:\path\to\elsewhere\.git --work-tree=C:\path\to\vendored\subproject $*

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

Другие вопросы по тегам