git оформление заказа занимает несколько часов - PullRequest
1 голос
/ 09 февраля 2020

Я экспериментирую с собственным экземпляром GitLab, поэтому я перенес на него репо git. Репозиторий на GitLab занимает 14 ГБ и включает несколько объектов lfs. Клонирование моей ветви с помощью приведенной ниже команды занимает около 1-2 минут.

$ git clone http://[ip:port]/repo/bavoo.git
Cloning into 'bavoo'...
remote: Enumerating objects: 773299, done.
remote: Total 773299 (delta 0), reused 0 (delta 0), pack-reused 773299
Receiving objects: 100% (773299/773299), 541.07 MiB | 2.44 MiB/s, done.
Resolving deltas: 100% (633879/633879), done.

Но следующая проверка занимает больше двух часов (возможно, даже дольше, я ее отменил). Я не знаю, что делает git. Есть ли какой-нибудь шанс увидеть, что занимает так много времени, чтобы оформить ветку?

$ git checkout bavoo_test

Для полноты, вот номера версий моей ОС, git и git lfs

$ macos-version
10.15.3 (19D76)
$ git --version
git version 2.24.1
$ git lfs --version
git-lfs/2.8.0 (GitHub; darwin amd64; go 1.12.7)

Редактировать:

По запросу, вот вывод git lfs env:

Endpoint=http://[ip:port]/repo/bavoo.git/info/lfs (auth=basic)
LocalWorkingDir=/Users/daniel/Desktop/bavoo
LocalGitDir=/Users/daniel/Desktop/bavoo/.git
LocalGitStorageDir=/Users/daniel/Desktop/bavoo/.git
LocalMediaDir=/Users/daniel/Desktop/bavoo/.git/lfs/objects
LocalReferenceDirs=
TempDir=/Users/daniel/Desktop/bavoo/.git/lfs/tmp
ConcurrentTransfers=3
TusTransfers=false
BasicTransfersOnly=false
SkipDownloadErrors=false
FetchRecentAlways=false
FetchRecentRefsDays=7
FetchRecentCommitsDays=0
FetchRecentRefsIncludeRemotes=true
PruneOffsetDays=3
PruneVerifyRemoteAlways=false
PruneRemoteName=origin
LfsStorageDir=/Users/daniel/Desktop/bavoo/.git/lfs
AccessDownload=basic
AccessUpload=basic
DownloadTransfers=basic
UploadTransfers=basic
GIT_EXEC_PATH=/usr/local/Cellar/git/2.24.1/libexec/git-core

Ответы [ 2 ]

2 голосов
/ 09 февраля 2020

Запустите git lfs env и убедитесь, что все выглядит нормально.

Установите для переменной среды GIT_TRACE значение 1, чтобы получить информацию об отладке.

1 голос
/ 21 марта 2020

Обратите внимание, что git checkout включает в себя удаленное взаимодействие LFS под капотом.

Если вам просто нужно оформить заказ локально, у вас есть следующие опции:

  • GIT_LFS_SKIP_SMUDGE=1 git checkout origin/master - для проверки без загрузки с пульта дистанционного управления
  • git reset --soft origin/master до go до фиксации ha sh без изменения рабочего пространства

Излишне говорить, что GIT_LFS_SKIP_SMUDGE можно экспортировать, чтобы вы могли не нужно вводить его всегда, когда git оформить заказ. Или вы можете работать с .lfsconfig, чтобы отключить автоматическую загрузку c LFS, см. https://github.com/git-lfs/git-lfs/issues/2717.

...