如何从 Mercurial 存储库中安全地禁用/删除大型文件目录?

2024-02-23

过去,我一直在 Mercurial 中使用大型文件扩展来将数据与我正在处理的代码一起保存。我认为这是一个错误,我想删除“largefiles”目录(8GB)。我们的网络用户目录限制为 10 GB,我需要空间。我已经很长时间没有使用任何大文件了。当他们永远消失时,我不会想念他们。

所以我的问题是

  1. 我可以在不损坏存储库的情况下删除 .hg 下的大型文件目录吗?
  2. 如果我这样做,即使某些大型数据文件丢失,我是否能够检查旧代码?
  3. 我应该从中删除这些文件吗all该存储库的克隆以避免另一个克隆的大文件再次污染所有存储库?

对于你的第一个问题我做了一个实验:

  1. 使用大文件创建了一个存储库。
  2. hg update null
  3. Deleted .hg\largefiles
  4. hg update

大文件回来了!事实证明,至少在 Windows 上,大文件也缓存在%UserProfile%\AppData\Local\largefiles。由于这是我唯一的大文件数据库,它只包含我的一个大文件,所以我也删除了它。此缓存包含来自多个本地启用大文件的数据库的大文件,因此您必须小心这一点。如果拥有两个副本看起来很浪费,那么事实证明本地数据库是否与数据库位于同一驱动器上%UserProfile%,那么它们是硬链接的。我的系统中有两个驱动器,事实证明,如果数据库位于不同的驱动器上,它仍然会复制到AppData位置,但不是硬链接,会使磁盘使用量增加一倍。

一旦大文件的所有副本都被删除,hg update gave:

1 files updated, 0 files merged, 0 files removed, 0 files unresolved
getting changed largefiles
largefile.dat: can't get file locally
(no default or default-push path set in hgrc)
0 largefiles updated, 0 removed

然后我删除了[extensions], largefiles= from .hg\hgrc禁用扩展。此时存储库工作正常,但仍然有.hglf目录中包含曾经包含大文件的变更集中的哈希值。所以你的第二个问题的答案是肯定的,你可以查看旧代码。

对于第三个问题,要消除大文件和哈希的所有痕迹,请使用以下命令创建一个文件:

exclude .hglf

and run:

hg convert --filemap <file> <srcrepo> <destrepo>

然后,您的用户将必须克隆这个新的、修改后的存储库,因为转换会修改变更集,并且新数据库将与旧数据库无关。

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

如何从 Mercurial 存储库中安全地禁用/删除大型文件目录? 的相关文章

  • Windows 上 Matlab 64 位版本的免费 SCM [已关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当 Matlab 安装为 64 位版本时 它只能使用 64 位源代码控制系统 是否有免费的源代码控制系统
  • 由于 poms 中的版本发生更改,合并来自 Maven 发布分支的更改会产生冲突

    按照标准实践 我有一个用于功能开发的 svn 主干 以及一个用于构建版本的分叉分支 该分支是使用 maven 发布插件创建的 该插件也用于创建发布 碰巧的是 偶尔的错误将在分支上修复 并且这些更改需要合并回主干 为了不错过任何更改 我希望能
  • MKS/ PTC Integrity 源相当于 svn:ignore

    我们在工作中使用 MKS PTC Integrity 进行源代码控制 是否有与 subversion 中的 svn ignore 标志等效的东西 本质上 我想要一种方法来告诉 MKS 忽略文件夹 文件的更改 即我们的编译器输出文件夹等 您可
  • 在源代码管理中维护存储过程

    你们如何维护存储过程 由于一些不同的原因 我想保留它们的版本 本周末我还将设置 Cruisecontrol net 和 nant 来自动化构建 我正在考虑编写一些代码 为我的开发数据库中的所有表 sprocs udf xml 模式生成创建脚
  • hg Convert --authors errorUsers <-- 文件的格式是什么?

    Related here https stackoverflow com questions 732819 can i change the username on a mercurial changeset 757604 757604 指
  • 使用 hg 存储库作为网站

    这与我的安全问题有些相关here https stackoverflow com questions 2361626 security deny access to hg via mod rewrite 对实时网站使用 hg Mercuri
  • 将密码存储在 TortoiseHg 中

    有没有办法配置乌龟汞 http tortoisehg bitbucket io 存储我的密码 我有一个项目托管在谷歌代码 http code google com 我使用 TortoiseHg 访问 每当我想要将更改推送到 Google 代
  • Git Visual Studio 与 Bitbucket confluence 连接到现有项目错误/获取失败

    如何使用 Visual Studio 17 从现有 Bitbucket GIT 存储库中提取数据 Error git 因致命错误而失败 找不到 xyz 存储库 I added 这个迷雾 https marketplace visualstu
  • 如何在 svn 存储库中本地忽略 .git 和 .gitignore?

    我有一个 SVN 工作副本 由 TortoiseSVN 管理 在该工作副本中 我使用 git 进行本地版本控制和分支 当然 我想隐藏svn的 git目录和 gitignore文件 但是 忽略它们意味着将属性添加到不再是本地的存储库中 我不希
  • 根据代码版本测试和管理数据库版本

    当您开发应用程序时 数据库的更改不可避免地会出现 我发现的技巧是让数据库构建与代码保持同步 过去 我添加了一个针对目标数据库执行 SQL 脚本的构建步骤 但这很危险 因为您可能会无意中添加虚假数据或更糟的情况 我的问题是保持数据库与代码同步
  • SQL版本控制方法

    SO 有几个关于 SQL 版本控制的问题 网上有很多资源 但我找不到完全涵盖我想要做的事情的东西 首先 我在这里谈论一个方法论 我熟悉各种源代码控制应用程序 也熟悉 Red Gate 的 SQL Compare 等工具 并且我知道如何编写应
  • 列出其他人(即不是我)所做的提交?

    是否有一种标准方法可以列出 git 存储库中其他人 即不是我自己 所做的所有提交 I tried git log not author username 但看起来 not仅适用于修订版 的联机帮助页git log似乎没有提供反转谓词的方法
  • Git:检查文件是否存在于某个版本

    在我的应用程序中 我使用 git 对一些外部文件进行版本管理 我正在使用类似的命令git show HEAD 1 some file获取文件的某个版本 基于 git 标签 提交哈希或与 HEAD 的关系 当文件不存在时 会输出 致命 消息
  • 为 Eclipse 安装 Mercurial 插件时出错

    我刚刚为 Eclipse 安装了一个 Mercurial 插件 安装过程很顺利 但是安装后 当我重新启动 eclipse 时 显示错误 错误说 发生了多个 Mercurial 错误 请检查错误日志视图以获取详细信息 命令行 hg y deb
  • 如果文件已在服务器上,请避免使用 git-ftp 上传

    假设我有应用程序的本地副本 我将其推送到 github 然后使用 git ftp 将任何更改上传到我的服务器 我首先会使用 git ftp init u
  • 使用 GIT 自动增加 AssemblyFileVersion

    好吧 我知道这可能不是传统的 但除此之外 我使用 AssemblyFileVersion 作为我的 构建名称 字符串 它的格式如下 File Version information for an assembly consists of t
  • 为什么版本控制系统缺乏 Visual Source Safe 的共享功能?您使用并认为哪些源代码控制值得尝试?

    我们正在寻找一种版本控制系统来改变我们当前的源安全系统 我们将它与 Visual Studio 一起使用 到目前为止 我们已经失败了 主要原因是我们看到的所有替代方案都不支持 VSS 的一项或多项功能 尤其是我们广泛使用的一项 文件共享 那
  • 单元测试类是否应该与其余代码一起置于版本控制之下?

    如果我为开发项目创建测试套件 这些类是否应该与项目代码的其余部分一起受版本控制 是的 没有理由不将它们置于源代码管理中 如果测试发生变化怎么办 如果接口发生变化 需要测试更改怎么办
  • 在 System Groovy 中暂时禁用 Jenkins 服务器上的 SCM 轮询

    我们有一个 Jenkins 服务器 正在运行 20 到 30 个作业 由于构建过程相当复杂 我们将实际构建分解为 1 个子构建 其中一些可以同时运行 其他则必须遵循之前的构建步骤 因此 我们将每个构建步骤分为 3 组 这三组在构建进行时会被
  • 纯基于网络的版本控制系统

    我的托管服务当前不允许在其服务器上运行 允许 svn git cvs 我真的希望能够将我的开发计算机上的当前源代码与我的生产服务器 同步 我正在寻找一个纯php python ruby版本控制系统 不只是一个client对于版本控制系统 不

随机推荐

  • 获取 foreach 中先前的数组值

    我的数组 arr array jan feb mar apr mei jun jul agu sep okt nov des 然后我做了一个 foreach foreach arr as ar echo ar 这会将 jan 输出到 des
  • Oracle 中的并发更新:锁定与否?

    我很困惑 我正在阅读有关 Oracle 中的 MVCC 的内容 我以为MVCC意味着没有锁 但是 我在其他地方读到这一切UPDATE无论隔离级别如何 都会执行自动锁定 有人可以解释一下 Oracle 更新期间会发生什么吗 当多个已提交读事务
  • Mfc CComboBoxEx - 如何更改背景颜色

    我有一个派生自 CComboBoxEx 的类 我正在尝试更改背景颜色 我认为它会像 ComboBox 一样工作 使用 SetBkColor 函数 但它不会改变背景颜色 这是我尝试过的 BEGIN MESSAGE MAP CMyComboBo
  • svn:转储格式文档?

    svnadmin dump 格式是否记录在某处 我想记录一个包含 svn 存储库所有元数据的数据结构 除了文件内容本身之外 它基本上与 转储 文件中的内容相同 似乎 svnkit 库会有它 或者有办法以编程方式获取此元数据 但我在过去的一个
  • 单击引导按钮显示默认颜色

    我正在尝试使用下面的代码设置按钮颜色的样式 颜色在我单击按钮之前一直有效 按钮显示默认颜色 如何指定按钮 onclick 的颜色 btn success color ffffff background color 161617 border
  • 当目标是对象时,JSON.net 将 json 数组序列化为 JArray。我怎样才能改变这一点?

    我有一个单级 json 我想将其反序列化为Dictionary
  • C++ - 类函数内数组的长度[重复]

    这个问题在这里已经有答案了 我知道有几个线程问类似的问题 但我找不到解决方案 而且我对 C 有点陌生 我想计算 DWORD 数组的长度 所以它只是一个无符号长整型 DWORD offsets 0x378 0x14 0x0 这是我的函数的标头
  • 获取 SDWebImage 缓存图像

    我想问一下SDWebImageManager下载后如何获取下载的图像 我只有通过 URL 下载它的代码 这就是我得到的 let manager SDWebImageManager SDWebImageManager sharedManage
  • 如果浏览器选项卡处于非活动状态,则 SignalR 连接超时

    如果我保持浏览器选项卡处于活动状态 至少每 5 6 分钟打开一次 我的 WebSocket 连接会通过 ping 请求保持活动状态 请参阅随附的屏幕截图 但是 如果我放弃该选项卡 10 分钟左右 ping 请求就会停止发生 WebSocke
  • 存储和编辑 Java EE 应用程序的配置

    UPDATE 请参阅我关于此主题的博客文章大约一年后撰写 http blog ringerc id au 2012 07 java ee 7 needs improvements in app html http blog ringerc
  • 如何在 Django 中的 URL 中传递 kwargs

    在 django 文档中 url 函数是这样的 url regex view kwargs None name None prefix 我有这个 url r download template P
  • Hibernate 数据库加密对应用程序完全透明

    我正在开发一个 Grails 1 0 4 项目 该项目将在不到 2 周的时间内发布 客户刚刚提出了一个要求 即数据库中的所有数据都应该加密 由于对应用程序本身中的每个数据库访问进行加密可能会花费大量时间并且容易出错 因此我寻求的解决方案是某
  • 在内部存储上播放文件时 MediaPlayer 错误-2147483648

    我正在使用android com 上的音频捕获示例 http developer android com guide topics media index html在实际设备上录制和播放音频 摩托罗拉触摸板和三星 Galaxy S 当我将音
  • 使用 Android 设计支持库从右到左导航抽屉菜单

    我正在使用 android 设计支持库 我想知道如何拥有从右到左的导航抽屉 我将重力设置为右侧 但只有导航抽屉本身移动到右侧 我想知道如何将右侧的菜单项 导航视图
  • 我无法使用 PowerShell 和 Selenium 模块启动 chrome instant

    我不确定我缺少什么 但我在 PowerShell 7 1 下安装了 Selenium 模块 但无法启动 chrome 实例 我按照以下步骤操作 从https github com adamdriscoll selenium powershe
  • PHP 无效字符错误

    运行此代码时我收到此错误 Fatal error Uncaught exception DOMException with message Invalid Character Error in test php 29 Stack trace
  • 性能类型 varchar(1) 或smallint 来存储状态 Postgres

    我将存储从 0 到 7 的状态 考虑到 Postgres 数据库的性能和空间 我想知道哪个类型字段更适合存储 varchar 1 或smallint 对了 设置一个字段varchar 1 和varchar 100 有什么区别吗 还在讨论性能
  • 如何在页脚中显示生成页面所需的持续时间?

    在调试构建期间 我想显示服务器端在页面页脚中生成页面所需的持续时间 例如 如果一个页面在服务器端花费 250 毫秒 我希望在调试版本中显示在页脚中 如何在 ASP NET MVC 项目中实现这一目标 将其添加到母版页的页脚中 Page re
  • jQuery:.select() 和 .focus() 方法区别

    在 jQuery 中 两者之间的基本区别是什么 select focus 它们合适的使用场所是什么 他们有各自的区别 select will fire when TEXT is selected 仅限于
  • 如何从 Mercurial 存储库中安全地禁用/删除大型文件目录?

    过去 我一直在 Mercurial 中使用大型文件扩展来将数据与我正在处理的代码一起保存 我认为这是一个错误 我想删除 largefiles 目录 8GB 我们的网络用户目录限制为 10 GB 我需要空间 我已经很长时间没有使用任何大文件了