Omi*_*mid 1 bazaar bazaar-plugins
我想知道是否还有导出特定版本中已更改的文件.
例如:我有三个文件的分支:
file.php
file.js
file.css
Run Code Online (Sandbox Code Playgroud)
刚刚file.js在上一次提交中发生了变化
如何使用export命令只导出更改的文件(file.js)并阻止导出其他文件.
有没有插件或外部3rdParty?
使用bzr export您可以指定要导出的单个目录,但不能指定单个文件.
作为替代方案,您可以在过去的某个版本中获取文件的内容,如下所示:
bzr cat -r REV path/to/file > file.rREV
Run Code Online (Sandbox Code Playgroud)
您可以使用one-liner获取过去修订版本中已更改文件的列表:
bzr diff -c REV | grep ^===
Run Code Online (Sandbox Code Playgroud)
为了完成它,这里有一个完整的单行程序,可以满足您的要求:将一些特定修订版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
Run Code Online (Sandbox Code Playgroud)
它遍历修订版REV中的修改过的文件,准备导出目录EX,其中包含保存文件保存路径所需的所有父目录,最后获取文件bzr cat并将其写入EX内部的正确相对路径.