我正在编写一个Java程序,将数据提供给git fast-import
函数。目前,我知道我的所有格式都有效并且符合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- what exactly is SIGUSR1 syntactically不太有帮助。
我不认为这个问题与Java有关,它实际上是关于如何使用git fast-import
。我注意到当我在CLI中运行快速导入时,当我按ctrl-c
提交执行时。但我不确切知道如何用Java做到这一点。