SVN Status показывает файлы в порядке убывания (дата изменения)

Кто-нибудь знает, как отсортировать вывод «svn st», чтобы отобразить файлы в порядке убывания? По сути, эквивалент 'ls -lt'

Я запускал «find ./ -mtime -1 -print», чтобы посмотреть, какие файлы я изменил за последний день, но я хотел бы знать, есть ли способ использовать svn, чтобы показать мне список файлов SVN, которые я изменил в порядке убывания. заказ.

Я работаю над проектом около 2 месяцев, все это локальные правки, более 100 файлов, которые я хотел бы отсортировать в зависимости от времени, когда я их редактировал.


person Roberto Navarro    schedule 06.03.2014    source источник


Ответы (2)


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.

person John Kugelman    schedule 06.03.2014

svn stat | grep "^M" | awk '{print $NF}' | xargs ls -lt

Это получает все измененные файлы и запускает ls -lt в пакете.

person Matt Corby    schedule 04.09.2018