2016-10-12 14 views
0

Я пишу импортер-интерфейс для git-импорта, чтобы создать репозиторий из нашего «файла-версии-контроля версии».git fast-import - как обрабатывать подкаталоги при импорте из файлов резервных копий

Мне удалось получить мои каталоги, и я генерирую commit-вывод для всех файлов, которые я могу найти в каталогах.

Но я не понимаю, как обрабатывать подкаталоги. Что-то вроде этого:

/dir 
| 
+-- file 
| 
+-- /subdir 
    | 
    +-- another_file 

Насколько я понимаю, я должен был бы импортировать SUBDIR первый, а затем another_file. Но я не понимаю из документации, как добиться этого.

мерзавец документация о формате рядных данных во время фиксации говорит мне:

040000: подкаталог. Подкаталоги могут быть заданы только SHA или через набор меток дерева с символами -import.

Как получить этот SHA-хэш?

Или я преувеличиваю здесь? Я помню, что мне не нужно было делать git add для каталогов, поскольку они добавляются с файлами в них. Достаточно ли только добавлять файлы из моего исходного каталога?

ответ

0

Тобой нет ничего особенного, просто поставить полный путь от корня в фиксации:

blob 
mark :14 
data 34 
File 6 - rev 1 
SubDir: TestFiles1 

commit refs/heads/master 
mark :15 
author abc <[email protected]> 1507618733 +0200 
committer abc <[email protected]> 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 вручную и сделать быстрый экспорт в файл. В этом случае я наткнулся на тот факт, что для быстрого импорта нужны «/», а окна «\» ...