我正在尝试使用subgit工具将我们的subversion存储库转换为git。我成功地建立了subversion to git存储库,它已经正常工作了一段时间,但在我重新启动工作站后,subversion的更改停止出现在git中。我再次运行了subgit install,现在它可以工作了,但我认为这不是正确的方式。如何设置subgit以使其在重启后继续工作?
发布于 2017-05-23 19:51:12
实际上,SubGit运行一个守护进程来检查新的SVN更改(缺省情况下每分钟一次)。如果不是在每次Git推送时启动,守护程序会自动启动,所以如果Git推送到您的存储库的次数足够频繁,并且您并不太关心立即有新的SVN更改,那么您可以什么也不做,第一次Git推送时守护程序将启动。
但是,如果让Git存储库保持最新对您来说很重要,那么您需要运行
$ subgit fetch --async /path/to/git/repository当系统启动时。该命令将启动守护进程,使存储库与SVN同步。请注意,代表同一用户运行所有SubGit命令非常重要(该用户还应该是/path/ to /git/存储库的所有者;如果您使用的是GitLab,则通常为"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,您可以使用this init.d脚本生成器。
我是SubGit开发人员之一。
发布于 2019-02-09 06:38:31
这只是Dmitry-pavlenko声明的一个扩展,通过systemd,我能够遵循this post并执行以下操作来将subgit添加到我的gitlab容器中的systemd中:
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系统的新手,所以如果您对上面的内容有任何更改或建议,请随时建议/添加/更改!也感谢上面提供的很好的信息。
https://stackoverflow.com/questions/43465423
复制相似问题