Bazaar:如何导出某个特定版本的更改文件?

时间:2012-03-12 11:03:46

标签: bazaar bazaar-plugins

我很想知道是否还有导出特定版本中已更改的文件 例如:我有三个文件的分支:

file.php
file.js
file.css

在最后一次提交中,file.js已发生变化 如何使用export命令导出已更改的文件(file.js)并阻止导出其他文件 是否有插件或外部3rdParty?

1 个答案:

答案 0 :(得分:5)

使用bzr export您可以指定要导出的单个目录,但不能指定单个文件。

作为替代方案,您可以在过去的某个版本中获取文件的内容,如下所示:

bzr cat -r REV path/to/file > file.rREV

您可以使用one-liner获取过去修订版本中已更改文件的列表:

bzr diff -c REV | grep ^===

要完成它,这里有一个完整的单行程序,可以满足您的要求:将某些特定修订版REV的已修改文件导出到名为EX的目录中:

bzr diff -cREV | grep '^=== modified file ' | sed -e "s/[^']*//" -e "s/'//g" |\
while read fname; do echo $fname; mkdir -p EX/"$(dirname "$fname")";\
bzr cat -rREV "$fname" > EX/"$fname"; done

它遍历修订版REV中的已修改文件,使用保存文件所需的所有父目录准备导出目录EX,最后获取bzr cat的文件并将其写入正确的相对路径在EX。里面。