【发布时间】:2014-04-09 17:35:02
【问题描述】:
有谁知道如何对“svn st”的输出进行排序以按降序显示文件?本质上相当于'ls -lt'
我一直在运行“find ./ -mtime -1 -print”来查看我在最后一天更改了哪些文件,但我想知道是否有办法使用 svn 向我显示我的 SVN 文件列表'已按降序更改。
我已经在一个项目上工作了大约 2 个月,所有这些都是本地编辑,100 多个文件我想根据我编辑它们的时间进行排序。
【问题讨论】:
有谁知道如何对“svn st”的输出进行排序以按降序显示文件?本质上相当于'ls -lt'
我一直在运行“find ./ -mtime -1 -print”来查看我在最后一天更改了哪些文件,但我想知道是否有办法使用 svn 向我显示我的 SVN 文件列表'已按降序更改。
我已经在一个项目上工作了大约 2 个月,所有这些都是本地编辑,100 多个文件我想根据我编辑它们的时间进行排序。
【问题讨论】:
svn status | while read -N 8 status && read file; do
mtime=$(stat -c %Y "$file" 2>/dev/null || echo 0)
printf '%010d\t%s%s\n' "$mtime" "$status" "$file"
done | sort -rn | cut -f 2-
while 循环将文件名与状态指示符分开,然后在每一行前面加上文件的修改时间。然后将此输出通过管道传输以按修改时间对它们进行排序。最后,cut 删除时间戳,保留原始输出但按排序顺序。
删除的文件最终位于底部,因为您删除它们的时间未知。如果您希望它们位于顶部,请将 echo 0 更改为 echo 999999999。
【讨论】:
svn stat | grep "^M" | awk '{print $NF}' | xargs ls -lt
这会获取所有修改过的文件并在批处理上运行 ls -lt。
【讨论】: