如何提取 Mercurial 中变更集的所有已更改文件?

2024-05-20

直到最近,我们一直在网络工作室的所有项目中使用 SVN,并且 Subversive 和 TortoiseSVN 等多个客户端中存在一个非常方便的功能,可以提取在某个版本中更改的所有文件。

Mercurial 有没有办法做到这一点?我不在乎它是通过 GUI 还是命令行完成的,拥有一组在某个变更集中已更改的文件非常方便。

附:一定是我第一次写错了。我需要的不仅仅是文件列表,如果能将所有文件导出到其他文件夹就太好了。


根据杰罗姆的回答,这将为您提供文件的副本修订版 4 中的更改:

hg archive --type files --rev 4 -I $(hg log -r 4 --template {files} | sed 's/ / -I /g') ~/changedfiles

这会将所有更改为修订版 4 的文件放入您的主目录中新创建的名为changedfiles 的目录中。

如果你将其更改为:

hg archive --type zip --rev 4 -I $(hg log -r 4 --template {files} | sed 's/ / -I /g') ~/changedfiles.zip

然后它们会出现在 zip 存档中。

值得注意的是,只有当文件名中没有空格时,这才有效。如果你犯了这个错误那么我们需要使用hg status --print0 -r revision -r parent-of-revision相反,但希望这不是必要的。

另请注意,版本号(在我们的示例中为“4”)出现了两次。整个事情可以很容易地包装在 shell 脚本中,并且可以参数化,这样您就不必记住在两个地方都更改它。

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

如何提取 Mercurial 中变更集的所有已更改文件? 的相关文章

  • 如何在 *Windows* 中将 Mercurial 存储库转换为 Git? [复制]

    这个问题在这里已经有答案了 可能的重复 在 Windows 上将 Mercurial hg 存储库转换为 Git 7 https stackoverflow com questions 3267232 converting a mercur
  • Nexus 和 SVN 有什么区别?

    SVN 和 Nexus 都广泛用作开发和集成过程中的源代码存储库 也就是说 当我们可以通过 SVN 设置存储库时 为什么我们真的需要使用 Nexus 甚至 SVN 也有适当的版本控制架构并广受好评 通过谷歌浏览 但似乎没有什么提供明显的区别
  • 在 Ubuntu 上通过 Apache Web 服务器和 DAV 启用 Subversion 访问

    我的家庭网络上有一台运行 Ubuntu 20 的 PC 我想将其用作我家本地网络中的 Subversion 服务器 我安装了 Apache Web 服务器并安装了 Subversion 现在我想使用 HTTP DAV 协议通过 Apache
  • svn 提交失败:找不到文件:事务 »52-1r«

    最小可重现故障如下 gt mkdir test cd test gt svn co https svn server com repo gt vim php main php gt svn commit Sending php main p
  • 如何修复损坏的本地 Subversion 工作副本?

    我通常使用 git 对 Subversion 的基础知识知之甚少 所以请保持温柔 我在 Windows 7 上使用 TortoiseSVN SVN 客户端最近宣布需要升级 所以我就这么做了 所有文件都丢失了源代码管理图标 并且资源管理器中出
  • svn diff 或 git diff 中带有 at 符号的“@@...@@”元行是什么意思?

    当我使用svn diff or git diff它显示如下行 1 5 1 9 他们的意思是什么 这些称为 c hunk 标头并包含范围信息 它们周围有双标志 它们的格式如下 l s l s where l是起始行号并且s是 c hunk 应
  • 使用 git 组织多个项目的最佳方式是什么

    我有 5 10 个独立项目 希望使用 Git 将其置于版本控制之下 组织项目 存储库的最佳方式是什么 每个项目使用一个存储库 对我的所有工作使用一个存储库 并为每个项目使用子目录 或者完全不同的东西 什么对你最有效 为什么 我肯定会说每个项
  • git svn 工作流程 - 功能分支和合并

    我现在使用 git svn 和以下工作流程 git clone
  • 如何从 Emacs 中检出 Perforce 下的文件?

    我在工作中使用 Perforce 进行源代码控制 并且希望从 Emacs 中 打开以进行编辑 源代码控制下的文件 那怎么办呢 我需要在 Emacs 中设置什么 有插件吗 我还想执行其他 p4 操作 例如提交我的更改等 Perforce Em
  • Windows XP 上无法打开存储库错误

    我正在尝试提交到我的本地 SVN 它一直工作得很好 但今天它给出了这个错误 Unable to open repository file C wamp www svns myproject dir subdir 可能是什么问题呢 编辑 完整
  • 为什么 show log 和 svn update 的版本号不同?

    当我对一个 svn 文件夹进行更新时 它会显示最新版本 更新被视为Completed At revision 116 但是当我确实显示该文件夹的日志时 它显示最新的修订号为100在历史上 我的问题是为什么两个版本号不同步 有关信息 当我执行
  • Delphi TImageList 位图更改

    我正在使用 Delphi XE2 Update 3 Update 4 与我们的一些第 3 方组件不兼容 因此我们尚未更新 我在我的应用程序中使用 TImageList 我注意到很多时候当它从源视图切换到表单视图 F12 时 突然之前未修改的
  • 如何通过中央 CVS 存储库在本地使用 Mercurial?

    目前我公司正在使用cvs进行版本控制 我想在本地使用 Mercurial 因为它具有灵活性和合并功 能 这将使我的工作变得更加轻松 这应该怎么做呢 First 本地获取CVS存储库 Second 在此 CVS 存储库上本地创建一个 Merc
  • 如何将 git 存储库中的现有目录设为 git 子模块

    我对 git submodules 很困惑 基本上我的问题是我无法让 git 理解这一点 main project submodule是一个子模块 我对 git 子模块有很好的经验 in my 点文件存储库 https github com
  • Tortoise SVN 合并“@### 必须与 @### 有祖先关系”错误

    背景故事 找到了一份入门级 Web 开发人员的工作 当我开始工作时 首席开发人员就离开了 一切责任都在我身上 没用过SVN 盲目进去 Problem 我不断收到类似错误 svn svn svn xxx project name branch
  • 如何使用修订号而不是 GUID(在 TeamCity 中)标记我的构建?

    我正在尝试与 TeamCity 进行 持续集成 我想以增量方式标记我的构建 而 VCS 提供的 GUID 不如简单递增的数字那么有用 我希望该数字与 Mercurial 中的修订版数字实际匹配 我的情况 水银信息 我希望将构建标记为 0 0
  • 提交项目时我应该包含 .project 和 .classpath 吗?

    当我将 Web 应用程序提交到源代码管理时 我还应该包含 project 和 classpath 文件吗 我不认为这应该有任何区别 因为使用该项目的其他用户应该具有相同的项目设置 这种问题会让人们在一场永无休止的辩论中陷入困境 你基本上有两
  • 版本控制中的平分是否受益于使用 rebaseif 工作流程?

    rebaseif Mercurial 扩展会在拉取时自动执行变基过程 前提是合并可以自动完成而不会发生冲突 如果存在需要手动解决的冲突 它不会变基 让您准备好手动合并两个分支 当开发人员在代码的不同部分工作时 这会简化和线性化历史记录 尽管
  • 删除生成的 Javadoc 中的注释“Generate by Javadoc on

    javadoc 命令会自动插入一条注释 如下所示 在每个生成的 HTML 文件中 这完全阻止了版本化 javadoc 的更改跟踪 因为在重新生成文档时每个文件都会被修改 我问的上一个问题说服我不要对任何 javadoc 进行版本控制 但它也
  • hg 或 git 中的两个完整目录/项目之间存在差异?

    我继承了一个最初存储在 CVS 中的项目以及所有修订 我做了相当多的编辑 并且我试图比较我在原始目录中所做的所有更改 关于添加的新文件与旧文件 hg git 是否有某种实用程序可以让我进行树差异或类似性质的操作 也就是说 新添加的文件 删除

随机推荐