Git Fast Import - отправка команды SIGUSR1 - PullRequest
0 голосов
/ 01 июня 2018

Я пишу программу на 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- Уничтожение процесса с помощью обычных команд API-процессов Java, таких как

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.

...