hg export changeset

dmp*_*dmp 5 version-control mercurial

我想汇出和已经在汞变更更改的文件,打个补丁-但我不知道如何做到这一点.我正在使用bitbucket作为托管服务 - 我该如何解决这个问题?

谢谢!

C2H*_*5OH 7

hg export命令实际上生成一个补丁(统一的diff格式),但也包括一些额外的信息,如作者和提交消息,以防你想使用它hg import.

如果您只是想要一个补丁集,没有额外的信息,从变更集生成,它就像这样简单:

hg diff -c REV
Run Code Online (Sandbox Code Playgroud)

编辑

由于您只想在修订版中更改文件,hg archive我猜想,我想出了以下bourne shell脚本:

#!/bin/sh

mkdir -p $2

for i in $(hg log -r $1 --template '{files}')
do
    mkdir -p $2/$(dirname $i)
    hg cat -r $1 $i >$2/$i
done
Run Code Online (Sandbox Code Playgroud)

它有两个参数:导出修订版和要保存文件的目录.您可以在类似的脚本中实现相同的功能,但使用hg archive一堆-I参数.但是,我认为建议的脚本更直观,至少对我而言.

注意:从存储库中移动或删除文件时,此脚本将无法正常工作.

  • @danp,尝试: - )...导入和导出补丁(作为差异)内置于Mercurial中,非常简单. (2认同)