重启后如何设置subgit工作

时间:2017-04-18 06:48:43

标签: subgit

我正在尝试使用subgit工具将我们的subversion存储库转换为git。我成功地建立了对git存储库的subversion并且它已经正常工作了一段时间,但是在我重新启动工作站之后,来自subversion的更改停止在git中出现。我再次运行了subgit安装,它现在可以工作,但我认为这不是正确的方法。如何设置subgit以便在重启后继续工作?

2 个答案:

答案 0 :(得分:5)

实际上,SubGit运行一个守护进程来检查新的SVN更改(默认情况下每分钟一次)。守护进程如果没有在每次Git推送时都自动启动,那么如果Git推送到你的存储库经常发生并且你不关心立即修改新的SVN,你可以什么也不做,并且第一次Git推送守护进程将启动。

但是,如果让Git存储库保持最新状态非常重要,那么您需要运行

$ subgit fetch --async /path/to/git/repository

系统启动时。该命令将启动守护程序将存储库与SVN同步。请注意,代表同一个用户运行所有SubGit命令(包括此命令)非常重要(它也应该是/ path / to / git / repository的所有者;通常,如果您使用{{3},它就是“git”如果您使用的是Apache和git-http-backend,则为“www-data”。

其中一种方法是使用

创建一个启动SubGit守护程序的init.d脚本
$ su -u git subgit fetch --async /path/to/git/repository

并停止:

$ su -u git subgit shutdown /path/to/git/repository

如果您的系统是debian,则可以使用GitLab init.d脚本生成器。

我是SubGit开发人员之一。

答案 1 :(得分:0)

使用systemd,只是Dmitry-pavlenko所说内容的扩展,我得以遵循this post并执行以下操作以在我的gitlab容器中向systemd添加subgit:

echo '[Unit]
Description=Kick off subgit daemon on boot

[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo OFF > subgit fetch --async /var/opt/gitlab/git-data/repositories/ProjectGroup/RepoName.git"

[Install]
WantedBy=multi-user.target' > /etc/systemd/system/subgit.service

systemctl enable subgit.service

将ProjectGroup和RepoName替换为您正在运行的任何subgit设置存储库所使用的值,这将创建一个服务文件并将其添加到系统启动中。

我对Unix系统非常陌生,因此,如果您对以上内容有任何更改或建议,请随时提出建议/添加/更改!也感谢您提供的上述重要信息。