如何列出过去已删除的 Fossil 存储库的所有文件?
How to list all files of a Fossil repository, which have been deleted in the past?
如何列出过去已删除的 Fossil 存储库的所有文件?
我能想到的唯一解决方案是对时间轴中的每个修订执行 ls
,以便对顺序输出执行 diff
。
有没有更简单的方法?
困难的方法:
#! /bin/bash
set -eu
prev_id=
fossil timeline -n 0 "$@" |
sed -n 's/^..:..:.. \[\([0-9a-f]*\)\] .*//p' |
while read id; do
if [ "$prev_id" ]; then
diff <(fossil ls -r "$id" "$@"|sort) <(fossil ls -r "$prev_id" "$@"|sort) |
egrep '^[<>]' |
sed 's/^>/add/;s/^</del/' |
sed "s/^/$id /"
fi
prev_id=$id
done
您可以使用:
fossil sql "select name from filename"
列出存储库中曾经存在的所有文件名。
如果您只想要那些不再存在的,则必须排除出现在 fossil ls
中的那些。
如何列出过去已删除的 Fossil 存储库的所有文件?
我能想到的唯一解决方案是对时间轴中的每个修订执行 ls
,以便对顺序输出执行 diff
。
有没有更简单的方法?
困难的方法:
#! /bin/bash
set -eu
prev_id=
fossil timeline -n 0 "$@" |
sed -n 's/^..:..:.. \[\([0-9a-f]*\)\] .*//p' |
while read id; do
if [ "$prev_id" ]; then
diff <(fossil ls -r "$id" "$@"|sort) <(fossil ls -r "$prev_id" "$@"|sort) |
egrep '^[<>]' |
sed 's/^>/add/;s/^</del/' |
sed "s/^/$id /"
fi
prev_id=$id
done
您可以使用:
fossil sql "select name from filename"
列出存储库中曾经存在的所有文件名。
如果您只想要那些不再存在的,则必须排除出现在 fossil ls
中的那些。