Изменение содержимого файла build_file в new_git_repository вызывает клонирование снова - PullRequest
0 голосов
/ 09 октября 2019

Существует внешняя зависимость, объявленная в WORKSPACE, как показано ниже:

new_git_repository(
    name = "someproj",
    build_file = "//:external-deps/someproj/BUILD.someproj",
    commit = "{commit hash}",
    remote = "https://somewhere.com/someproj.git",
    shallow_since = "111111111 -0600",
)

в BUILD.someproj, когда я меняю некоторые цели (например, меняю имя, deps и т. Д.) И запускаю bazel build something/depending/on/someproj:depender bazel пытаетсяклон из https://somewhere.com/someproj.git снова! Однако в репо ничего не изменилось.
Не должно ли оно кешировать клонированное репо? Поскольку он не изменен, но файл BUILD работает на нем.

1 Ответ

0 голосов
/ 10 октября 2019

Содержимое файла BUILD.someproj является частью контрольной суммы, которую Bazel знает, когда следует повторно запустить правило репозитория new_git_repository, наряду с другими атрибутами, такими как remote и commit. Алгоритм аннулирования не имеет ничего общего с git, потому что он применяется ко всем видам правил репозитория и ко всем атрибутам.

Это может быть улучшено за счет интеграции между git_repository и кэшем репозитория Bazel. Запрос функции отслеживается в этой проблеме .

...