我想导出仅在hg变更集中更改的文件,以制作补丁 - 但我不知道如何执行此操作。我正在使用bitbucket作为托管服务 - 我该怎么做呢?
谢谢!
答案 0 :(得分:7)
hg export
命令实际上生成一个补丁(采用统一的差异格式),但还包括一些额外的信息,如作者和提交消息,以防您想将其与hg import
一起使用。
如果你只是想要一个补丁集,没有额外的信息,那么它就变得如此简单:
hg diff -c REV
由于您只想在修订版中更改文件,我认为是la 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
它有两个参数:导出修订版和要保存文件的目录。您可以在类似的脚本中实现相同的功能,但使用hg archive
和一堆-I
参数。但是,我认为建议的脚本更直观,至少对我而言。
注意:从存储库移动或删除文件时,此脚本无法正常运行。
答案 1 :(得分:2)
我只是使用这个命令:
hg archive -I "set:added() or modified()" -r <rev-number> -t files /path/to/directory/for/export