Igo*_*yev 8 svn version-control mercurial subversive changeset
直到最近,我们一直在为我们的网络工作室的所有项目使用SVN,并且在Subversive和TortoiseSVN等几个客户端中存在一个非常方便的功能,可以提取在某个修订版中已更改的所有文件.
有没有办法在Mercurial中做到这一点?我不关心它是通过GUI还是命令行完成的,拥有一组在某个变更集中已更改的文件非常方便.
PS我第一次肯定说错了.我需要的不仅仅是文件列表,将所有文件导出到其他文件夹会很棒.
Ry4*_*ase 11
在Jerome的答案的基础上,这将获得修订版4中更改的文件的副本:
hg archive --type files --rev 4 -I $(hg log -r 4 --template {files} | sed 's/ / -I /g') ~/changedfiles
Run Code Online (Sandbox Code Playgroud)
这会将所有更改为修订版本4的文件放入homedir中名为changedfiles的新创建的目录中.
如果您将其更改为:
hg archive --type zip --rev 4 -I $(hg log -r 4 --template {files} | sed 's/ / -I /g') ~/changedfiles.zip
Run Code Online (Sandbox Code Playgroud)
然后他们出现在一个zip存档中.
值得注意的是,只有在文件名中没有空格时才有效.如果你犯了那个错误,那么我们就需要使用hg status --print0 -r revision -r parent-of-revision,但希望这不是必要的.
另请注意,我们示例中的修订号"4"显示两次.整个事情可以很容易地包装在一个shell脚本中,并且这将被参数化,因此您不必记住在两个地方都更改它.
这将为您提供修订版4中已修改文件的列表:
hg log -r 4 --template {files}
Run Code Online (Sandbox Code Playgroud)
更新:如果您希望每行有一个文件,可以使用Hg书中描述的样式.