【问题标题】:How to sort SVN LS -R output by date如何按日期对 SVN LS -R 输出进行排序
【发布时间】:2014-10-15 01:36:53
【问题描述】:

我想列出我的 svn 中的所有文件,按上次提交的日期排序。 svn ls -Rv 列出所有文件,但不接受 -t 开关。有谁知道怎么做?

(我已经看到a similar questionsvn status 的答案,但我不清楚如何将其更改为与svn ls 一起使用。)

仍未回答:如果能够按添加到 SVN 的日期对文件进行排序,也会很有帮助。

【问题讨论】:

    标签: sorting date svn ls


    【解决方案1】:

    在我的 Windoz 盒子上,下面的工作就完成了

    svn ls -Rv | sort
    

    对于 Unix,您很可能必须使用开关“-n”指定数字排序顺序

    【讨论】:

    • 在我的 Linux 发行版上也很出色,不需要 -n 开关 :)
    【解决方案2】:

    使用svn list --xml 并按<date>2014-08-20T12:34:46.712712Z</date> 排序。

    【讨论】:

      【解决方案3】:

      今天遇到了这个挑战。其他选项对我不起作用。我想出了一个简短的 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);
      

      【讨论】:

        猜你喜欢
        • 2011-02-10
        • 1970-01-01
        • 2017-09-30
        • 1970-01-01
        • 2022-01-08
        • 1970-01-01
        • 2011-03-19
        • 2012-06-26
        • 1970-01-01
        相关资源
        最近更新 更多