git fast-import - как обрабатывать подкаталоги при импорте из файлов резервных копий
Я пишу интерфейс импорта для git-import, чтобы создать репозиторий из нашего "контроля версий плоских файлов".
Мне удалось пройти мои каталоги, и я генерирую коммит-вывод для всех файлов, которые я могу найти в каталогах.
Но я не понимаю, как обращаться с подкаталогами. Что-то вроде этого:
/dir
|
+-- file
|
+-- /subdir
|
+-- another_file
Насколько я понимаю, мне придется сначала импортировать subdir, а затем другой_файл. Но я не понимаю из документации, как этого добиться.
Документация git о встроенном формате данных во время коммита говорит мне:
040000: Подкаталог. Подкаталоги могут быть указаны только SHA или через метку дерева, установленную с помощью --import-marks.
Как мне получить этот SHA-хеш?
Или я здесь все усложняю? Я помню, что не нужно было делать git add для каталогов, так как они добавляются вместе с файлами в них. Достаточно ли добавить только файлы из моего исходного каталога?
1 ответ
В этом нет ничего особенного, просто введите полный путь от корня в коммите:
blob
mark :14
data 34
File 6 - rev 1
SubDir: TestFiles1
commit refs/heads/master
mark :15
author abc <a.bc@xxx.com> 1507618733 +0200
committer abc <a.bc@xxx.com> 1507618733 +0200
data 3
C3
from :10
M 100644 :11 TF1.txt
M 100644 :12 TF3.txt
M 100644 :13 TF5.txt
M 100644 :14 TestFiles1/TF6.txt
Вы можете просто проверить семантику / синтаксис быстрого импорта при создании необходимой структуры git вручную и выполнить быстрый экспорт в файл. В этом случае я наткнулся на тот факт, что для быстрого импорта нужны "/", а Windows использует "\"...