问题标签 [git-fast-import]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
447 浏览

git - 分支名称不符合 git 标准:refs/heads/master

将 powershell 脚本的输出通过管道传输到 git fast import 时发生此错误。详细的错误报告如下:

D:\demo_history7 [master +4 ~0 -0 !]> .\testscript.ps1 -CSVFileName Report_Recent.csv |git fast-import fatal: 分支名称不符合 GIT 标准:refs/heads/master fast-import : 将崩溃报告转储到 .git/fast_import_crash_5968

那么这个错误的原因是什么,我该如何解决呢?

Git 快速导入无法识别 powershell 脚本的输出。这就是为什么 itz 显示错误:分支名称不符合 git 标准:refs/heads/master。我正在尝试将此脚本的输出通过管道传输到 git fast-import,以便在 git 远程存储库中显示相应文件的历史记录,但出现上述错误(如问题所述)。我的 powershell 脚本在下面的答案。请提供解决方案。


这是我的 powershell 脚本:

遍历csv文件的脚本

我正在尝试将此脚本的输出通过管道传输到 git fast-import,以便在 git 远程存储库中显示相应文件的历史记录,但出现上述错误(如问题所述)。请提供解决方案。

0 投票
1 回答
318 浏览

git - git fast-import - 从备份文件导入时如何处理子目录

我正在为 git-import 编写一个导入器前端,以从我们的“平面文件版本控制”创建一个存储库。

我设法遍历了我的目录,并且正在为目录中可以找到的所有文件生成提交输出。

但我不明白如何处理子目录。像这样的东西:

据我了解,我必须先导入subdir,然后再导入another_file。但是我从文档中不明白如何实现这一点。

关于提交期间内联数据格式的 git 文档告诉我:

040000:一个子目录。子目录只能由 SHA 或通过使用 --import-marks 设置的树标记指定。

如何检索此 SHA 哈希?

还是我在这里把事情复杂化了?我记得不必为目录执行git add,因为它们是与其中的文件一起添加的。仅从我的源目录添加文件就足够了吗?

0 投票
2 回答
1998 浏览

git - Git克隆没有blob的裸仓库

在我的 git 存储库中,我使用一种算法根据分支名称和标签为每个提交分配一个或多个唯一的版本号。我想将此机制与另一个大型存储库一起使用,我想在不传输任何文件的情况下进行克隆。

裸克隆帮助我摆脱了 blob 的工作副本,但它仍然从服务器下载它们。跳过大多数 blob的浅层克隆--depth 1,但也跳过下载除一个之外的所有提交的元数据。

有没有类似的东西git fast-export --no-data可以在客户端使用来获取包含提交元数据和文件名的图形信息,而无需先从我的服务器克隆存储库?理想情况下,我可以通过git log|show|rev-parse|show-ref.

(我知道 git LFS 和 git Annex 存在,可以帮助减少一些 repos 的大小,但我不能在现有存储库上使用它们而不更改它。)

0 投票
1 回答
195 浏览

python-3.x - 使用 git fast-import 读取二进制文件

我正在编写将源代码从 MKS Source Integrity 7.3 导入 Git 的脚本。脚本通过管道传输到 git fast-import 并且所有内容都可以正常导入,但是Unsupported command exception当我读取.doc, .docx, .xls,.msg文件时出现错误。我应该如何阅读这些文件?或者有没有办法告诉 git fast-import 只导入这些类型的文件,而不读取它们。谢谢。

读取二进制文件的代码:

快速导入崩溃报告:

0 投票
0 回答
59 浏览

java - Git 快速导入 - 发送 SIGUSR1 命令

我正在编写一个将数据输入git fast-import函数的 Java 程序。目前,我知道我所有的格式都有效并且符合https://git-scm.com/docs/git-fast-import#_signals但是,我的问题是发送最终的“kill”命令:SIGUSR1

通过运行此命令,我现在可以开始工作了type fast-import.script | git fast-import。这个工作的事实告诉我我的格式,这是正确的。但是,我知道有一种方法可以连续运行git fast-import并将命令输入其标准输入,但最后一个命令必须是SIGUSR1

不发送SIGUSR1快速导入实用程序不知道结束。我尝试了几件事:

1- 使用常规 Java Process API 命令销毁进程,例如

fastImportProcess.destroyForcibly();

2- 使用 Java 库WinProcess ( Maven ) 找到 pid 并杀死它。

那也没有用。我尝试了与 Java Process API 和 WinProcess API 等相关的组合。虽然我可以让 WinProcess 强制关闭快速导入实用程序,但它实际上并没有创建我的提交。

3-最后,无休止地研究什么SIGUSR1是我能想出的SIGUSR只是某种用户定义的信号。C- SIGUSR1 在语法上到底是什么不太有用。

我不认为这个问题本身与 Java 相关,它实际上是关于如何使用git fast-import. 我注意到当我在 CLI 中运行快速导入时,当我按下ctrl-c提交执行时。但我不知道如何在 Java 中做到这一点。

0 投票
1 回答
227 浏览

git - 快速导入崩溃致命:原始日期无效

我正在尝试将 ghp-import 导入主分支,但我不断收到 IOError: [Errno 22] Invalid argument 和崩溃报告:

`
快速导入崩溃报告:

` 我认为快速导入尝试将“osisieke”解析为当然失败的日期。我真的很困惑如何前进。请提供任何帮助

0 投票
0 回答
56 浏览

linux - 如何将 2 git 生成的文件的差异快速导出为可修补的文件

我有 2 个 repos,repo1 和 repo2,每个 repo1 和 repo2 都有一个分支,这样 repos 就可以这样绘制:

回购1:A --- B --- C

回购2:A --- B --- C --- D --- E --- F

从这里我想git fast-export --all > export1在 repo1 和git fast-export --all > export2repo2 上运行,这样我就有两个文本文件“export1”和“export2”。

然后我运行git diff export1 export2 > diffs.patchgit fast-export和理论上只包含有关提交的信息的差异,D --- E --- F.

如何修改 diffs.patch 以及使用哪些命令,以便可以将补丁应用到隔离的 repo3,如下所示:

回购3:A --- B --- C --- G

这样一旦补丁文件被修改、通过电子邮件发送和应用,它将看起来像这样:

repo3 补丁:A --- B --- C --- G --- D --- E --- F.

这必须在不使用git bundle(不能使用二进制文件)和git format-patch(我也想修补标签和分支,据我所知,git format-patch不能这样做)的情况下完成。

0 投票
1 回答
146 浏览

cvs2git - cvs2git 在将 CVS 迁移到 Git 时创建了一些额外的提交

使用 cvs2git (Python 2.7.5) 从 CVS 迁移到 Gitlab 时显示以下提交消息。在迁移时,我注意到 cvs2svn 正在创建一些额外的提交,并带有相同的以下消息,这似乎是不必要的。

为什么它会在迁移期间创建不需要的提交?

0 投票
0 回答
38 浏览

cvs2git - cvs2git 在 miration 期间丢失了一些提交

使用 cvs2git (Python 2.7.5) 从 CVS 迁移到 Git 时缺少少数提交。丢失的提交消息存在于dumb.dat 文件中,但它不会导入到git 中。

为什么从 CVS 迁移到 Git 时 cvs2git 缺少提交?

0 投票
0 回答
254 浏览

git - 如何将具有多个模块的 CVS 存储库作为单个存储库迁移到 Gitlab

我想将 CVS 存储库迁移到 Gitlab。我在一个存储库下有多个模块。我需要在 Gitlab 中作为包含所有目录的单个存储库进行迁移。

CVS 存储库:

我需要将上述模块作为单个存储库迁移到Repository.git中。如何在不丢失每个分支和标签的提交历史记录的情况下做到这一点?

注意:我使用cvs2git工具来迁移它,但它缺少 CVS 的一些提交。

我执行了以下步骤以作为单个模块进行迁移,它正在正确迁移。

  1. 百胜安装颠覆
  2. svn --版本
  3. svn co --username=guest --password="" http://cvs2svn.tigris.org/svn/cvs2svn/trunk cvs2svn-trunk
  4. cd cvs2svn-trunk
  5. mkdir cvs2git-tmp
  6. python cvs2git --blobfile=cvs2git-tmp/git-blob.dat --dumpfile=cvs2git-tmp/git-dump.dat --username=cvs2git /home/cvs/Repositories/module_1/ --fallback-encoding=UTF- 8
  7. git init --bare /root/module_1-cvs2git.git
  8. cd /root/module_1-cvs2git.git/
  9. git fast-import --export-marks=../cvs2svn-trunk/cvs2git-tmp/git-marks.dat <../cvs2svn-trunk/cvs2git-tmp/git-blob.dat
  10. git fast-import --import-marks=../cvs2svn-trunk/cvs2git-tmp/git-marks.dat <../cvs2svn-trunk/cvs2git-tmp/git-dump.dat
  11. git gc --prune=now
  12. 光盘 $HOME
  13. git clone /root/module_1-cvs2git.git
  14. cd module_1-cvs2git

我执行了相同的步骤并修改了 [6] 步骤以迁移为单个 repo,如下所示,并完成了缺少少量提交的迁移,并添加了更多带有消息“此提交由 cvs2svn 制造以创建分支”的提交。

这是作为单个存储库迁移的方式吗?或者是否有任何其他方式或工具可以迁移为单个存储库?

这里的任何输入都非常感谢。