git-p4 и огромные размеры файлов

git-p4 и огромные размеры файлов

Я пытаюсь преобразовать репозиторий Perforce(p4) в git (предпочтительно в Helix4Git, реализацию git-сервера от perforce).

Я свожу свою проблему к простому варианту использования, чтобы найти решение более крупной проблемы.

В P4 у меня есть один файл//depot/foo.txtчто составляет 10 МБ. Я «клонировал» его, используя команду merge P4, поэтому у меня есть один и тот же файл дважды в моем репозитории, называемый//депо/bar.txt.

//depot
    .. foo.txt (10MB) [internal-id==> 4509b9a8.txt]
    .. bar.txt (10MB, clone of foo.txt) [internal-id==> 4509b9a8.txt]

Сервер P4 хранит файлодин разиспользуя две внутренние ссылки для уменьшения используемого дискового пространства, так что используется всего 10 МБ. На локальном диске у меня было бы две физические копии (10+10=20 МБ). Теперь вот проблема:

я используюгит-p4для конвертации моего репозитория P4 в git. Сначала я клонирую его на свой локальный компьютер, а затем настраиваю git-remote и отправляю все, чтобы наконец получить это на своем сервере git.

Как я уже упоминал ранее, у меня на локальном диске есть 20 МБ, и когда я отправляю данные на свой сервер git, он также использует 20 МБ.

1) Если я клонирую файл в git, будет ли он физически клонирован и на сервере?

2) Есть ли вероятность, что git-p4 или сервер git обнаружит этот "клон" - что это тот же файл - и также использует внутренние ссылки? Либо сам сервер git, либо с помощью функции файловой системы (мягкая или жесткая ссылка и т. д.).

Дополнительный вопрос) Поможет ли здесь macOS APFS для сервера git?

Большое спасибо!

решение1

Когда вы переместите клонированные файлы в Git, они будут сохраненыв отдельности. Git хранит только содержимое файла и права доступа к файлу. Метаданные и идентификатор инода не отслеживаются.

Лучший вариант — добавить клон gitignoreили.git/info/exclude

Ссылка:введите описание ссылки здесь

Связанный контент