从化石出口到git



我一直在尝试使用此处的说明将我的化石存储库导出到 git 中。我在这里看到了这个问题,但它没有回答我的问题。

我按照 https://www.fossil-scm.org/xfer/doc/tip/www/inout.wiki 上的所有指示进行操作,但我似乎无法让它工作。

我做了以下工作:

git init new-repo
cd new-repo
fossil export --git ../repo.fossil | git fast-import

我得到统计数据:

git-fast-import statistics:
---------------------------------------------------------------------
Alloc'd objects:      10000
Total objects:         8831 (         8 duplicates                  )
      blobs  :         5578 (         0 duplicates       3374 deltas of       5224 attempts)
      trees  :         2509 (         8 duplicates       1419 deltas of       2378 attempts)
      commits:          744 (         0 duplicates          0 deltas of          0 attempts)
      tags   :            0 (         0 duplicates          0 deltas of          0 attempts)
Total branches:           1 (         1 loads     )
      marks:        1048576 (      6322 unique    )
      atoms:           4253
Memory total:          2704 KiB
       pools:          2235 KiB
     objects:           468 KiB
---------------------------------------------------------------------
pack_report: getpagesize()            =       4096
pack_report: core.packedGitWindowSize = 1073741824
pack_report: core.packedGitLimit      = 8589934592
pack_report: pack_used_ctr            =       2936
pack_report: pack_mmap_calls          =        744
pack_report: pack_open_windows        =          1 /          1
pack_report: pack_mapped              =  207355128 /  207355128
---------------------------------------------------------------------

我没有看到任何问题,但我没有有效的存储库。我错过了一步吗?我没有在化石文档中找到更多信息。提前谢谢。

编辑:作为以下问题的答案,我尝试使用 -R 和没有 -R 的导出命令。

您需要

签出新 Git 存储库的主分支。 默认情况下,git init 命令创建并签出一个名为 master 的空分支。 但Fossil使用树干作为其主要分支。

因此,在

git fast-import后调用git checkout trunk,您将能够看到工作目录中的所有文件。

首先,如果它确实成功工作,它将被导入到trunk分支中,而 git 默认分支是master所以按照 D Bennett 所说的或git branch@Colin尝试git checkout trunk,看看它是否列出了存储库中的任何分支。

如果它不起作用,或者git branch没有列出任何分支,则fossil export不起作用。

现在,我之前在导出化石存储库时遇到了同样的问题,但出现了不同的错误:

尝试将化石存储库导出到 git 时无法打开数据库文件">

我解决它的方法是:

  1. git init git-repo
  2. cd fossil-repo
  3. fossil export --git > git.txt
  4. git.txt移至git-repo
  5. type/cat git.txt | git fast-import
  6. git checkout trunk

用法:化石出口 --git ?选项??存储 库?

将所有签入的导出写入标准输出。 导出是以 git-fast-export 文件格式编写,假设 --git 选项为提供。 git-fast-export 格式是目前唯一的 VCS支持交换格式,但可能会添加其他格式未来。

在结帐中运行此命令。 或者使用 -R 或 --repository选项以指定要导出的化石存储库。

仅使用 --git 导出签入。 Git 不支持票证或 Wiki 或事件或附件,因此不会导出任何内容。

如果使用"--import-marks FILE"选项,则它包含骑到跳过。

如果使用"--export-marks FILE"选项,则删除所有提交和在退出时写入的 blob,以便在下次运行时与"--import-marks"一起使用。

选项: --导出标记文件 导出数据的 rid 到 FILE --导入标记文件读取要从文件中忽略的数据 --repository|-R REPOSITORY 导出给定的仓库

最新更新