我正在为git-import编写一个导入器前端,以便从我们的“flat-file-version-control”创建一个存储库。
我设法遍历我的目录,并且我正在为目录中找到的所有文件生成commit-output。
但我无法理解如何处理子目录。像这样:
/dir
|
+-- file
|
+-- /subdir
|
+-- another_file
据我了解,我必须先导入 subdir ,然后再导入 another_file 。但是我从文档中不明白如何实现这个目标。
提交期间有关内联数据格式的git文档告诉我:
040000:一个子目录。子目录只能由SHA指定 或通过使用--import-marks设置的树标记。
如何检索此SHA哈希?
或者我在这里过于复杂?我记得不必为目录做 git add ,因为它们随文件一起添加。仅仅添加源目录中的文件就足够了吗?
答案 0 :(得分:0)
你并没有什么特别之处,只需在提交中填写root的完整路径:
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使用'\'......