mercurial hg - 通过APACHE错误推送到克隆的存储库,“存储库不相关”

时间:2010-06-10 15:46:14

标签: apache mercurial version-control tortoisehg

两种情况,一种工作方式不适用于它们:

  • 场景#1 :(不通过apache工作)
        
    • 服务器SERVER上的2个repos:Repo“A”,通过http:// SERVER / HG / A从repo A克隆的Repo“B”    
    • 在客户端:
                      Repo A克隆自http:// SERVER / HG / A
                      Repo B克隆自http:// SERVER / HG / B
    从客户端添加了一个文件来回购A并提交了&把它推到http:// SERVER / HG / A ...... 工作 从客户端添加了一个文件到repo B并提交了&将其推送到http:// SERVER / HG / B ... ERROR with abort:repository is unrelated ,它只有在我-f(强制)推送时才有效
  • 场景#2 :(通过文件系统工作)
    • 在服务器服务器上:从E:/ HG / A克隆回购“A”,回购“B”
    • 在客户端:
      回收A从E:/ HG / A克隆
      从E:/ HG / B克隆回收B
    从客户端添加了一个文件来回购A并提交了&把它推到E:/ HG / A ...... 工作
    从客户端添加了一个文件到repo B并提交了&把它推到E:/ HG / B ...... 工作

结论: ... apache配置或apache和amp;之间集成的东西mercurial正在使回购“无关”.... 有任何想法吗???为什么我需要强制执行第一个场景但不必在第二个场景? ...我通过tortoisehg和命令行尝试了两种方案。

1 个答案:

答案 0 :(得分:1)

我不知道你的情况究竟出了什么问题,但我打电话告诉说,当mercurial说'无关'时它意味着:这两个存储库没有根或根。

通常,mercurial存储库具有单个根,版本0,并且具有相同根的任何存储库都可以推送到它。存储库可以有多个根,通常是某人执行push -f的结果。

所以你在场景一中所做的事情应该完全奏效。如果不是,那么你的apache配置指向http://SERVER/HG/B以外的地方而不是你认为它应该是(可能是一个糟糕的RewriteRuleRedirectMatchScriptAlias,或者你的Repo B没有从你想的那样克隆来自Repo A,或者在最初克隆B之后,Repo A或B从根本上改变了。

如果用于修改该节点,有些工具会改变根(修订版0)节点的哈希码:mq,histedit,strip,rebase等。这是因为更改哈希值会完全改变那些工具的回购默认情况下禁用,仅用于本地未推送的更改。

要开始调试,请转到SERVER,看看如果您在文件系统级别的repos A和B之间进行传入或传出会发生什么。如果那些人抱怨你知道它不是apache,如果他们这样做,那么这就是你的Apache设置。