1

我想知道是否有办法只导出特定修订版中已更改的文件。
例如:我有三个文件的分支:

file.php
file.js
file.css

只是file.js在上次提交中发生了变化。
如何使用export命令仅导出更改的文件(file.js)并防止导出其他文件。
是否有任何插件或外部 3rdParty ?

4

1 回答 1

5

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

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

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

您可以使用单线获取过去某个修订版中已更改文件的列表:

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 内的正确相对路径。

于 2012-04-24T13:15:01.230 回答