我正在编写一个将数据输入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 并杀死它。
WinProcess wp = new WinProcess(fastImportProcess);
wp.killRecursively();
那也没有用。我尝试了与 Java Process API 和 WinProcess API 等相关的组合。虽然我可以让 WinProcess 强制关闭快速导入实用程序,但它实际上并没有创建我的提交。
3-最后,无休止地研究什么SIGUSR1
是我能想出的SIGUSR
只是某种用户定义的信号。C- SIGUSR1 在语法上到底是什么不太有用。
我不认为这个问题本身与 Java 相关,它实际上是关于如何使用git fast-import
. 我注意到当我在 CLI 中运行快速导入时,当我按下ctrl-c
提交执行时。但我不知道如何在 Java 中做到这一点。