我已经设置了我的存储库的镜像,它运行良好,但我最近遇到了一个问题。
目标存储库以某种方式留下了未释放的锁-从我读到的内容来看,这可能是由于 svnsync 操作的中止引起的,我怀疑这可能是因为在我的提交后挂钩中,我在阻塞模式下执行 svnsync 而不是推送它通过&进入后台。
我这样做是为了让用户可以确定如果提交完成,那么它现在在所有存储库中,但可能会带来他们点击取消并停止提交钩子的风险?
我找不到明确的指导方针或建议,说明哪个更好或最佳实践是什么,或者即使点击取消会导致 post commit hook 中止并从中执行同步 - 在大多数地方,我看到人们使用 & 来踢在后台同步 - 如果用户在同步进行时按下取消提交,这是否可以防止锁定损坏?您如何确保两个存储库真正同步或报告问题?你需要一个单独的通知机制吗?
更新:
从上述两个选项中,我决定选择第三个;)
我在后台调用 svnsync 但同时我让钩子等待它完成:
svnsync ... &
wait $!
我认为这很好地结合了两全其美,但时间会证明它的有效性 - 请让我知道您对整个问题的看法以及您可能需要分享的建议。