使用 Windows 网络共享目录时 Hg 存储库损坏

2024-05-21

我希望我能在这里得到一些帮助,因为 SO UX 比 Mercurial 邮件列表更好。

多年来我一直在家里愉快地使用 Mercurial。我还将它与 Bitbucket Cloud 一起用于一些更严肃(但仍然是爱好)的项目。

去年,我将我的团队从 SVN(公司托管)切换到 Hg(自托管,中央存储库位于网络位置)。我们都在 Windows 中。从那时起,我们不断遇到严重的中央存储库损坏问题,只能使用备份来解决,例如:

% hg verify --verbose
repository uses revlog format 1
checking changesets
checking manifests
manifest@92: unknown parent 1 ef0f96d78ab6 of ef0f96d78ab6
manifest@92: reading delta ef0f96d78ab6: integrity check failed on 
 00manifest.i:88
manifest@93: unknown parent 1 e336adb3580b of e336adb3580b
manifest@93: reading delta e336adb3580b: integrity check failed on 00manifest.i:89
manifest@94: reading delta 7243aebd542b: unknown compression type '\x08'
manifest@95: reading delta 899e4507ca01: unpack requires a string argument of length 12
manifest@96: reading delta 12d4d930da4f: Manifest had an entry with a zero-length filename.
...

有人说 https://stackoverflow.com/a/6826780/674976由于锁定问题,我们不应该对中央存储库使用网络共享。Others http://mercurial.808500.n3.nabble.com/repository-on-Samba-Share-tp927412p928948.html解释一下 Mercurial 不使用这些锁,网络共享应该可以正常工作,除非文件系统出现问题。

考虑到后者,我想知道我是否可以以某种方式调试我们的安装,而不要求公司为 hg 提供服务器。我对我们正在使用的配置不太了解,但这是我所看到的。该目录可通过 Windows 网络路径访问:\\domain.com\path\path\our-directory。在里面,我们创建了一个名为的目录root where .hg居住。在.hgrc中,路径相应为

[paths]
默认 = \\domain.com\path\path\our-directory\root

我们的网络目录已备份(由公司)。 Hg版本是4.9。


我有过类似的经历和类似的设置。

首先要注意的是,我认为较旧的 HG 版本在 Windows 网络文件共享上运行时肯定存在一些问题,因此请确保您的版本是最新的。 (那是几年前的事了,IIRC,所以这可能不太可能是您当前问题的根本原因)。

其次,就我而言,这些问题似乎因从以下位置运行 HG 而变得更加复杂:在虚拟机内。相反,我现在运行一个[hg serve][1]未虚拟化的 PC 上的实例,并使用各种 HG 客户端进行攻击。没有更多问题了。

看来如果运行的 PC 之间的连接hg serve并且文件服务器比我作为客户端运行 hg 的地方更可靠,这避免了这个问题。显然 hgserve 与客户端使用的 HTTP 连接本身更可靠。

我不能说这是一个确定的解决方案,因为我从未找到根本原因。但这似乎在相当长的一段时间内避免了更多的腐败。

注意hg serve内置于标准 hg 命令行工具中,您可以轻松地从任何地方运行它,并且它不必在存储物理存储库的同一服务器上运行。所以就我而言,我很随意地使用它; (显然)如果您需要更强大的东西,您可能需要与 IT 人员协调。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Windows 网络共享目录时 Hg 存储库损坏 的相关文章

随机推荐

  • 如何在 PHP 中运行 shell 脚本?

    我正在尝试使用 PHP 触发 shell 脚本的运行 本质上 当用户在我们用 PHP 编写的网站上完成一个操作时 我们希望触发一个 shell 脚本 该脚本本身调用一个 Java 文件 提前致谢 See shell exec http ph
  • PhotoChooserTask 抛出未处理的异常

    我已经有了这段代码 我使用它来显示一个按钮 该按钮允许用户从他的库中选择图像并将其用作我的应用程序的背景 所以我创建了一个PhotoChooserTask 将其设置为显示相机并将其绑定到任务完成时必须执行的方法 该按钮将通过显示PhotoC
  • has_many 关系中的 Active Record 对象何时保存?

    我正在使用 Rails 1 2 3 是的 我知道 并且对如何使用感到困惑has many适用于对象持久性 为了举例 我将使用它作为我的声明 class User lt ActiveRecord Base has many assignmen
  • 'numpy.float64'对象没有属性'translate'在Python中将值插入Mysql

    import dataset db dataset connect table db 当我尝试向 Mysql 表中插入一些值时 发生了此错误 我插入表中的示例值 print Buy ticker price date OType OSize
  • 在代码中旋转按钮(或其中的文本)

    我必须通过编码随机旋转按钮 或里面的文本 它是相同的 API级别低于11是否有button setRotate x 好吧 看了一下 答案是 很复杂 您可以使用旧的动画框架旋转按钮 例如像这样 Button button Button fin
  • 运行“npm install”:Node-gyp 错误 - MSBUILD.exe 失败,退出代码:1

    我在跑npm install在 Windows 上安装我的项目中的所有软件包 然后我收到有关 MSBUILD exe 的错误 gyp ERR stack Error C Program Files x86 Microsoft Visual
  • php exec 返回的结果比直接进入命令行要少

    我有一个 exec 命令 它的行为与通过 Penguinet 给 linux 的相同命令不同 res exec cd mnt mydirectory zcat log file gz echo res 当将命令直接放入命令行时 我在日志文件
  • 限制分页页数

    objConnect mysql connect localhost root or die mysql error objDB mysql select db Test strSQL SELECT FROM UserAddedRecord
  • 如何减去两个 gettimeofday 实例?

    我想减去两个 gettimeofday 实例 并以毫秒为单位给出答案 这个想法是 static struct timeval tv gettimeofday tv NULL static struct timeval tv2 gettime
  • 导航组件参数默认值

    在导航组件中 将参数从第一个片段发送到第二个片段时 默认值不会从导航图中获取哪个集合 这是我的代码 导航图 xml
  • 如何使用 Cucumber 和 Rspec 测试 Rails 3 引擎?

    如果这个问题有点主观 我深表歉意 我正在尝试找出使用 Cucumber 和 Rspec 测试 Rails 3 引擎的最佳方法 为了测试引擎 需要 Rails 3 应用程序 这是我目前正在做的事情 通过运行以下命令将 Rails 测试应用程序
  • 如何使用 HTML5 + Javascript 或服务器端语言仅裁剪某些区域?

    在提出我的问题之前 我有一个测试页 以便每个人都能更好地理解我的问题 网址是http iamthemoon com crop http iamthemoon com crop 您可以移动红色选区 我喜欢只裁剪红色选区的区域 我认为这可以在
  • Tensorflow 对 Python3.11 的支持

    我在 Windows10 PC 上安装了 Python3 11 0 尝试使用以下命令安装张量流 pip install tensorflow 给出错误 访问tensorflow网站后 我意识到它仅支持3 7 3 10 我应该降级 pytho
  • heroku 上的 bitbucket 私有存储库

    我有一个需要 gem 的 Rails 应用程序 我将这个 gem 托管在私有存储库的 bitbucket 上 在我的 Gemfile 中 我添加了 gem 如下所示 gem my gem git gt gi email protected
  • Bootstrap 4 具有 d-flex 类的列表项不响应 .hide()?

    当我添加课程时d flex我的引导程序 4 ul 列表项不响应 hide 不再 尽管style display none 被添加到 DOM 中 The d flex用于Bootstrap 4 列表徽章 https getbootstrap
  • 如何在 Laravel 5 中的视图模板上显示会话数据

    我正在尝试在 Laravel 5 中的视图模板上显示会话数据 但是它似乎没有显示任何内容 这是我用来设置会话的代码 Session set bookingConfirmed BookingDates where id Session get
  • 使用操作按钮在闪亮的 R 中添加包含现有数据框的新行

    我正在构建一个闪亮的表单 它将从 textInput 字段获取数据 并将这些输入与文本文件 将通过文件输入上传 组合起来 并在主面板中显示输出 有一个操作按钮用于第一次更新数据 从文本输入中获取数据并与处理后的文本文件合并 我添加了另一个操
  • 寻找 HttpServletResponseWrapper 的捕获实现

    JavaEE API 附带了 HttpServletResponseWrapper 引用 javadoc 的话 提供了 HttpServletResponse 接口的便捷实现 希望适应 Servlet 响应的开发人员可以对其进行子类化 如果
  • 创建一个包含 UIViewController 的 UIViewController

    我有一个UIViewController这允许我在视图中显示一些文本 我想添加一个输入法而不将其直接添加到此视图控制器中 此输入法将是一个按钮或一个UITextField 这个输入法会很多 但是每次都会用一个 从设置中选择它 所以我不会有一
  • 使用 Windows 网络共享目录时 Hg 存储库损坏

    我希望我能在这里得到一些帮助 因为 SO UX 比 Mercurial 邮件列表更好 多年来我一直在家里愉快地使用 Mercurial 我还将它与 Bitbucket Cloud 一起用于一些更严肃 但仍然是爱好 的项目 去年 我将我的团队