Imprimir el último 10/20 / … svn registrar posts con diffs

Estoy usando SVN para un proyecto. con svn log -l 10 , puedo get los últimos 10 commits para esta carpeta, con la id. de revisión, el post de logging, etc. ¿Hay algún command SVN que me permita imprimir en la command-line todas las diferencias para cada uno de esos sets de cambios? Me gustaría hacer algo de grepping / etc. con los últimos X diffs?

En SVN v1.7, están los

  --diff : produce diff output --diff-cmd ARG : use ARG as diff command 

opciones que puedes usar con svn log

Para una versión anterior (que probablemente sea su caso), tendrá que hacer algunos scripts para proporcionar la revisión a svn diff y get la salida

Para svn más antiguo, puede usar la function:

  svn-log-diff() { for c in `svn log "$@" | grep '^r' | cut -f1 -d ' ' | sed s/r/-c/`; do svn diff --force $c || break done } 

Suponiendo que está utilizando Linux, use la siguiente secuencia de commands. guárdalo como svn-diffs.sh. Entonces corre

 sh svn-diffs.sh 10 

Esto agrega los contenidos diferidos a los files bajo un diffs / dir recién creado. De esta forma, puede pasar sin preocuparse por la latencia más adelante. Esto funcionó en mis testings. Puede grep a través de los files en diffs / dir por separado para tener una salida de color.

 #!/bin/bash # Author - Kasun Gajasinghe HEAD="HEAD" limit=${1} [[ -z "$1" ]] && limit=10 revisions=$(svn log -l $limit | grep -r "r[0-9][0-9]*\w" -o | grep -r "[0-9][0-9]*" -o) mkdir diffs echo $revisions > diffs/revisions.log for revision in ${revisions} do # svn diff -r $revision:${HEAD} } | grep -ri "SEARCHME" || exit 1 diff=$(svn diff -r $revision:${HEAD}) echo "$diff" > diffs/diffs-$revision-$HEAD.log echo "=======================" >> diffs/diffs-$revision-$HEAD.log HEAD=$revision done grep -ri "searchme" diffs/