我想列出我的svn中的所有文件,按上次提交日期排序。 svn ls -Rv
列出了所有文件,但它不接受-t
切换。有谁知道怎么做?
(我已经看到了对svn status
的{{3}}的回答,但对我来说,如何将其更改为与svn ls
一起使用并不明显。)
仍然无法解决:能够按照添加到SVN的日期对文件进行排序也很有帮助。
答案 0 :(得分:9)
在我的Windoz框中,下面的工作
svn ls -Rv | sort
对于Unix,您很可能必须使用开关“-n”
指定数字排序顺序答案 1 :(得分:1)
使用svn list --xml
并按<date>2014-08-20T12:34:46.712712Z</date>
排序。
答案 2 :(得分:0)
今天遇到了这个挑战。其他选择对我没用。我想出了一个简短的Perl脚本来完成这项工作。也许有可能将其混合成一个单行,但我并不觉得这样。
将代码放入svn-sort.pl中。命令行看起来像这样:
svn ls $url | perl svn-sort.pl | sort
我希望这会有所帮助。
#!/usr/bin/env perl
use strict;
use warnings;
# Main entry point.
sub main {
my $input;
# Read into string instead of array.
{
local $/ = undef;
$input = <>;
}
my $count = 0;
my $limit = 0;
my @matches;
while ($input =~ m|<entry.+?<name>([^<]+?)</name>.*?<date>([^<]+?)</date>.*?</entry>|gs) {
push @matches, [$1, $2];
}
foreach my $m (@matches) {
print "$m->[1]\t$m->[0]\n";
if ($limit > 0 && ++$count > $limit) {
last;
}
}
}
# Go.
&main(@ARGV);