Где cvs2git регистрирует свой статус миграции?
Я просто пытаюсь перенести большой репозиторий CVS в Git с помощью cvs2git (часть инструментария cvs2svn 2.4.0). Поэтому я переношу каждый проект отдельно. Расход времени каждой миграции все еще очень высок. Сама миграция происходит на удаленном сервере, к которому я подключен через ssh. Таким образом, проблема в том, что если я отключаюсь от удаленного сервера, не дожидаясь окончания процесса миграции, я понятия не имею, была ли миграция успешной или нет.
Регистрирует ли cvs2git/cvs2svn свой статус миграции и сообщения об ошибках в определенном файле? - Я уже искал его в папке cvs2svn, а также в /var/log...
2 ответа
Вы, вероятно, могли бы узнать статус миграции как-то по временным файлам, которые оставил cvs2git. Но вы пытаетесь решить свою проблему на неправильном уровне.
Вместо запуска cvs2git в прямом сеансе SSH, вы должны, например:
Перенаправьте его stdout и stderr на файлы, которые вы можете просматривать в любое время:
nohup cvs2git --OPTIONS ARGS >cvs2git.out 2>cvs2git.err &
Запустите cvs2git в сеансе экрана.
screen
(1) - очень удобная программа, которая позволяет вам отсоединиться от сеанса терминала, когда он еще запущен и подключен к нему позже, даже с другого компьютера. (Он также может выполнять множество других задач, например, позволяет вам запускать несколько настроек терминала через одно соединение SSH.)
Если вы уже запустили свой процесс в Linux, используйте "strace -p process-id", чтобы отследить, что происходит. Лучше всего перенаправить вывод