Форк конкретный каталог из огромного хранилища - PullRequest
0 голосов
/ 10 апреля 2019

Я хотел бы раскошелиться на огромный репозиторий (10 ГБ), отфильтровать его в определенный каталог и отправить отфильтрованную версию в новый репозиторий Github.

Я использовал эти инструкциивытащить и отфильтровать в мой каталог, который работает.Но когда я пытаюсь отправить отфильтрованное репо обратно на Github, я получаю эту ошибку:

$ git push origin master --force
Enumerating objects: 2292154, done.
Counting objects: 100% (2292154/2292154), done.
Delta compression using up to 8 threads
Compressing objects: 100% (562030/562030), done.
error: RPC failed; curl 55 SSL_write() returned SYSCALL, errno = 32
fatal: the remote end hung up unexpectedly
Writing objects: 100% (2292154/2292154), 7.03 GiB | 40.92 MiB/s, done.
Total 2292154 (delta 1726549), reused 2292154 (delta 1726549)
fatal: the remote end hung up unexpectedly
Everything up-to-date

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

Есть ли способ раскошелиться на определенный каталог и уменьшить общий размер репо, чтобы сделать его более легким в управлении?

1 Ответ

1 голос
/ 10 апреля 2019

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

Из git filter-branch manual:

Переписать репозиторий, чтобы он выглядел так, как будто foodir /был его корнем проекта и отбросил всю другую историю:

git filter-branch --subdirectory-filter foodir -- --all

Надеюсь, что это может помочь.

Сохранить только этот каталог (и сохранить егов структуре), это немного сложнее.

Если исходить из примера из руководства git-filter-branch, это должно помочь:

git filter-branch --index-filter \
   'git ls-files -s foodir/ |
       GIT_INDEX_FILE=$GIT_INDEX_FILE.new \
       git update-index --index-info &&
       mv "$GIT_INDEX_FILE.new" "$GIT_INDEX_FILE"
   ' -- --all

Короче: выходные данные git ls-files -s foodir/ показывают содержимое индекса (blobtree и имя файла)только для файлов в foodir /;этот список файлов помещается обратно в индекс.

В любом случае, как я отметил в комментарии, вы не сможете просто объединить его - поскольку коммиты теперь другие.

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