git - как синхронизировать изначально неконтролируемые копии без их повторной передачи? - PullRequest
0 голосов
/ 03 июля 2018

У меня есть отдельные копии большого набора данных (несколько ТБ) на разных сайтах. Я думал, что это будет только для чтения, но теперь команда хочет иметь возможность делиться правками. Поэтому я хотел бы поместить их под контроль версий в git, но без повторной передачи самого набора данных. Тогда мы могли бы использовать git-bundle для создания небольших дельта-файлов для передачи изменений.

В идеале я мог бы независимо 'git init; git add * 'набор данных на каждом сайте, и, поскольку копии набора данных идентичны, начальные коммиты будут иметь одинаковые контрольные суммы, и все будет хорошо, но я не смог этого добиться.

Если бы я мог удалить блоты git, соответствующие файлам в моем наборе данных, не удаляя ссылки на них (создавая тем самым «поврежденный» комплект) и добавляя их обратно на другую сторону, это было бы здорово, но я не могу найти низкоуровневые команды для этого.

Какой лучший способ сделать это?

1 Ответ

0 голосов
/ 03 июля 2018

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

Вы можете попробовать исправить эти вещи с помощью git commit --date=<some date> --author=<some author> и посмотреть, достаточно ли этого, чтобы коммиты соответствовали. Я не знаю, сработает ли это, но стоит попробовать.

Звучит так, как будто это будет болезненно в долгосрочной перспективе. Git не предназначен для отслеживания мульти-терабайтных файлов. Я думаю, что вы собираетесь загнать себя в угол. Вы можете посмотреть на git-annex или git-lfs и посмотреть, подходят ли они для ваших нужд. Или, может быть, вам нужно изобрести какой-то собственный метод описания дельты и хранить только дельты в git.

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