Почему git висит на git commit с каталогом ~ 1000 файлов - PullRequest
1 голос
/ 29 мая 2019

У меня есть большой вложенный каталог с <1000 файлами.Они находятся на внешнем жестком диске <code>exthd.

$ cd /Volumes/exthd/project
$ tree 10/44/
├── 0
│   └── record.yaml
├── 00
│   ├── 11
│   │   └── record.yaml
│   ├── 18
│   │   └── record.yaml
│   ├── 37
│   │   └── record.yaml
│   ├── 41
│   │   └── record.yaml
│   ├── 43
│   │   └── record.yaml
│   ├── 47
│   │   └── record.yaml
│   ├── 77
│   │   └── record.yaml
│   └── 83
│       └── record.yaml
├── 01
│   ├── 02
│   │   └── record.yaml
│   ├── 07
│   │   └── record.yaml
│   ├── 27
│   │   └── record.yaml
│   ├── 61
│   │   └── record.yaml
│   ├── 63
│   │   └── record.yaml
│   ├── 67
│   │   └── record.yaml
│   ├── 68
│   │   └── record.yaml
│   ├── 73
│   │   └── record.yaml
│   └── record.yaml
├── 02
│   ├── 17
│   │   └── record.yaml
│   ├── 33
│   │   └── record.yaml
│   ├── 38
│   │   └── record.yaml
│   ├── 47
│   │   └── record.yaml
│   ├── 58
│   │   └── record.yaml
│   ├── 63
│   │   └── record.yaml
│   ├── 77
│   │   └── record.yaml
│   └── 88
│       └── record.yaml
├── 02
│   ├── 01
│   │   └── record.yaml
│   ├── 41
│   │   └── record.yaml
│   ├── 48
│   │   └── record.yaml
│   ├── 73
│   │   └── record.yaml
│   ├── 83
│   │   └── record.yaml
│   └── record.yaml
├── 04
│   ├── 27
│   │   └── record.yaml
│   ├── 33
│   │   └── record.yaml
│   ├── 48
│   │   └── record.yaml
│   ├── 61
│   │   └── record.yaml
│   ├── 67
│   │   └── record.yaml
│   ├── 73
│   │   └── record.yaml
│   └── record.yaml
├── 05
│   ├── 08
│   │   └── record.yaml
│   ├── 11
│   │   └── record.yaml
│   ├── 17
│   │   └── record.yaml
│   ├── 38
│   │   └── record.yaml
│   ├── 41
│   │   └── record.yaml
│   ├── 53
│   │   └── record.yaml
│   ├── 58
│   │   └── record.yaml
│   ├── 71
│   │   └── record.yaml
│   └── 87
│       └── record.yaml
├── 06
│   ├── 07
│   │   └── record.yaml
│   ├── 11
│   │   └── record.yaml
│   ├── 31
│   │   └── record.yaml
│   └── 41
│       └── record.yaml
├── 07
│   ├── 43
│   │   └── record.yaml
│   ├── 67
│   │   └── record.yaml
│   ├── 78
│   │   └── record.yaml
│   ├── 88
│   │   └── record.yaml
│   └── record.yaml
├── 08
│   ├── 08
│   │   └── record.yaml
│   ├── 51
│   │   └── record.yaml
│   ├── 53
│   │   └── record.yaml
│   ├── 63
│   │   └── record.yaml
│   ├── 68
│   │   └── record.yaml
│   └── record.yaml
├── 08
│   ├── 01
│   │   └── record.yaml
│   ├── 67
│   │   └── record.yaml
│   ├── 73
│   │   └── record.yaml
│   ├── 77
│   │   └── record.yaml
│   └── 78
│       └── record.yaml
├── 1
│   └── record.yaml
├── 10
│   ├── 27
│   │   └── record.yaml
│   ├── 37
│   │   └── record.yaml
│   ├── 48
│   │   └── record.yaml
│   └── 88
│       └── record.yaml
├── 11
│   ├── 21
│   │   └── record.yaml
│   ├── 33
│   │   └── record.yaml
│   └── 47
│       └── record.yaml
├── 12
│   ├── 31
│   │   └── record.yaml
│   ├── 37
│   │   └── record.yaml
│   ├── 53
│   │   └── record.yaml
│   ├── 58
│   │   └── record.yaml
│   ├── 67
│   │   └── record.yaml
│   ├── 73
│   │   └── record.yaml
│   ├── 83
│   │   └── record.yaml
│   └── 87
│       └── record.yaml
├── 13
│   ├── 37
│   │   └── record.yaml
│   ├── 38
│   │   └── record.yaml
│   ├── 57
│   │   └── record.yaml
│   ├── 68
│   │   └── record.yaml
│   ├── 73
│   │   └── record.yaml
│   └── 88
│       └── record.yaml
├── 14
│   ├── 11
│   │   └── record.yaml
│   ├── 23
│   │   └── record.yaml
│   ├── 27
│   │   └── record.yaml
│   ├── 33
│   │   └── record.yaml
│   ├── 38
│   │   └── record.yaml
│   ├── 47
│   │   └── record.yaml
│   ├── 63
│   │   └── record.yaml
│   └── 88
│       └── record.yaml
├── 15
│   ├── 23
│   │   └── record.yaml
│   ├── 31
│   │   └── record.yaml
│   ├── 47
│   │   └── record.yaml
│   ├── 48
│   │   └── record.yaml
│   ├── 78
│   │   └── record.yaml
│   ├── 88
│   │   └── record.yaml
│   └── 87
│       └── record.yaml
├── 16
│   ├── 01
│   │   └── record.yaml
│   ├── 18
│   │   └── record.yaml
│   ├── 31
│   │   └── record.yaml
│   ├── 33
│   │   └── record.yaml
│   ├── 87
│   │   └── record.yaml
│   └── record.yaml
├── 17
│   ├── 27
│   │   └── record.yaml
│   ├── 87
│   │   └── record.yaml
│   ├── 88
│   │   └── record.yaml
│   └── record.yaml
├── 18
│   ├── 43
│   │   └── record.yaml
│   ├── 53
│   │   └── record.yaml
│   ├── 61
│   │   └── record.yaml
│   ├── 67
│   │   └── record.yaml
│   ├── 81
│   │   └── record.yaml
│   └── 87
│       └── record.yaml
├── 18
│   ├── 02
│   │   └── record.yaml
│   ├── 08
│   │   └── record.yaml
│   ├── 38
│   │   └── record.yaml
│   ├── 57
│   │   └── record.yaml
│   ├── 67
│   │   └── record.yaml
│   ├── 78
│   │   └── record.yaml
│   ├── 87
│   │   └── record.yaml
│   └── 88
│       └── record.yaml
├── 2
│   └── record.yaml
├── 20
│   ├── 27
│   │   └── record.yaml
│   ├── 53
│   │   └── record.yaml
│   └── 83
│       └── record.yaml
├── 21
│   ├── 18
│   │   └── record.yaml
│   └── 87
│       └── record.yaml
├── 22
│   ├── 02
│   │   └── record.yaml
│   ├── 08
│   │   └── record.yaml
│   ├── 13
│   │   └── record.yaml
│   ├── 31
│   │   └── record.yaml
│   ├── 38
│   │   └── record.yaml
│   ├── 61
│   │   └── record.yaml
│   ├── 73
│   │   └── record.yaml
│   ├── 87
│   │   └── record.yaml
│   └── 83
│       └── record.yaml
├── 23
│   ├── 02
│   │   └── record.yaml
│   ├── 17
│   │   └── record.yaml
│   ├── 47
│   │   └── record.yaml
│   ├── 58
│   │   └── record.yaml
│   └── 63
│       └── record.yaml
...~1000 or so files

Я пытаюсь зафиксировать их в большом git-репо:

$ git commit -v 10/44/ -m 'Autocommit'

Но в терминале все оборачиваетсяпримерно через 3 секунды, и он просто сидит там> 10 минут (до того, как я отменил процесс).Подробного вывода также не было видно, даже с указанием -v.Хотите знать, как заставить git фиксировать эти файлы, кроме как фиксировать их по одному.Хотите знать, почему он зависает без какой-либо обработки, или если что-то происходит в фоновом режиме.По моим наблюдениям, 1000 файлов должны занимать не более 5 минут, но это занимает значительно больше времени.Если я укороту каталог, то же самое.

1 Ответ

1 голос
/ 29 мая 2019

Первым делом проверьте версию Git:

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