对git存储库的并发访问

对git存储库的并发访问,git,git-svn,Git,Git Svn,有一个git存储库,它在固定的时间段(例如1小时)内从svn(git svn fetch)更新。提取完成后,refs/heads中的每个分支都会更新为refs/remotes中相应的分支。refs/heads中的Svn分支仅在此更新过程中更新,其他人无权对其进行写入访问 我想知道在svn更新过程中访问存储库是否可能损坏存储库?例如,克隆整个存储库,从中获取最新更改或推送(不推送至svn分支机构)。根据个人经验,我的公司使用svn存储库作为主要存储库,每20分钟对svn存储库进行一次新修订 当运行

有一个git存储库,它在固定的时间段(例如1小时)内从svn(
git svn fetch
)更新。提取完成后,
refs/heads
中的每个分支都会更新为
refs/remotes
中相应的分支。
refs/heads
中的Svn分支仅在此更新过程中更新,其他人无权对其进行写入访问


我想知道在svn更新过程中访问存储库是否可能损坏存储库?例如,克隆整个存储库,从中获取最新更改或推送(不推送至svn分支机构)。

根据个人经验,我的公司使用svn存储库作为主要存储库,每20分钟对svn存储库进行一次新修订

当运行
git svn
命令时,它将记住
git svn
开始运行的脚本的最后一个版本。例如,如果svn存储库中产生了新的修订,那么新修订将不会被提取到Git存储库中。它将在下次运行
git svn fetch
命令时提取到git存储库


我面临的最大问题是,我关闭了笔记本电脑,
git svn fetch
仍在运行,但我不会注意到它,因为它是任务调度器中的后台进程。因此,在本例中,它可能在git存储库中有一个锁文件。如果发生锁定文件,它将无法运行
git svn fetch
,除非您删除git存储库中的锁定文件,因为可能会显示错误消息。

您是指并发操作吗?例如,当您按下它时,会发生同步提取或其他一些命令组合?当您运行“git svn fetch”时,它不会触及refs/heads/*(初始提取的情况除外,该情况设置为“master”)。因此,在“git svn fetch”的同时推送是安全的。但是,如果同时将相同的分支推送到git存储库,则将refs/heads/*更新为refs/remotes/*是不安全的,因为推会修改refs/heads/*。