¿Cómo encuentro las revisiones hechas por un usuario específico de Subversion?

Usando la línea de command, me gustaría ver todos los sets de cambios realizados por un usuario en particular. es posible? He revisado la documentation de svn log pero no puedo ver cómo hacerlo.

No sé de ninguna manera de hacer esto usando Subversion puro. Pero puedes hacerlo con sed :

 svn log | sed -n '/username/,/-----$/ p' 

Encuentra cada instancia del nombre de usuario y luego imprime todo hasta la línea punteada que marca el final de un logging en el logging.

El patrón de búsqueda es muy flexible: puede modificarlo fácilmente para search otras cosas. Por ejemplo,

 svn log | sed -n '/Dec 2009/,/-----$/ p' 

Devolvería todas las confirmaciones realizadas en diciembre (por cualquier autor).

Editar: si no quieres el post de confirmación real, sino solo los metadatos de resumen, puedes usar grep , de forma análoga a la respuesta de William Leara en Windows:

 svn log | grep username 

Si no te importa leer el logging en formatting XML, así es como con XML Starlet :

 svn log --xml --verbose <directory> | xmlstarlet sel -t -m "/log/logentry/author[text()='<wanted author>']/.." -c "." 

Si no desea que esos files --verbose list, elimine --verbose .

Aquí hay un ejemplo de salida sin verbose.

 $ svn log --xml zfce | xmlstarlet sel -t -m "/log/logentry/author[text()='pekka.jarvinen']/.." -c "." <logentry revision="157"> <author>pekka.jarvinen</author> <date>2009-09-26T19:23:40.060050Z</date> <msg>fix</msg> </logentry><logentry revision="156"> <author>pekka.jarvinen</author> <date>2009-09-25T20:40:01.823746Z</date> <msg>Dojo files are now downloaded from Google. Also some XHTML JS fixes (CDATA to &lt;script&gt;).</msg> </logentry><logentry revision="155"> <author>pekka.jarvinen</author> <date>2009-09-25T17:28:14.501392Z</date> <msg>Added spans</msg> </logentry><logentry revision="154"> <author>pekka.jarvinen</author> <date>2009-09-25T17:21:17.375304Z</date> <msg>Changed behavior: default.css is now not used as base. CSS in .INI configuration is always loaded.</msg> </logentry><logentry revision="151"> <author>pekka.jarvinen</author> <date>2009-04-10T00:24:41.683379Z</date> <msg>Added more PHP and Apache information</msg> </logentry> ... 

El enfoque más fácil es utilizar el cliente de command-line Subversion 1.8+; Admite --search y --search-and opciones que le permiten filtrar svn log resultado del svn log para mostrar solo revisiones que coinciden con el patrón de búsqueda que especifique.

SVNBook 1.8 | reference de command-line de svn log ,

Notas de la versión de Subversion 1.8 | svn log puede filtrar los posts de logging en function de los términos de búsqueda.

Por ejemplo,

search las revisiones cometidas por el usuario Sally o Harry:

 $ svn log --search Sally --search Harry https://svn.example.com/repos/test ------------------------------------------------------------------------ r1701 | Sally | 2011-10-12 22:35:30 -0600 (Wed, 12 Oct 2011) | 1 line Add a reminder. ------------------------------------------------------------------------ r1564 | Harry | 2011-10-09 22:35:30 -0600 (Sun, 09 Oct 2011) | 1 line Merge r1560 to the 1.0.x branch. ------------------------------------------------------------------------ $ 

search las revisiones cometidas por el usuario Sally a /foo/bar/helloworld.cpp:

 $ svn log --verbose --search Sally --search-and /foo/bar/helloworld.cpp https://svn.example.com/repos/test ------------------------------------------------------------------------ r1555 | Sally | 2011-07-15 22:33:14 -0600 (Fri, 15 Jul 2011) | 1 line Changed paths: M /foo/bar/helloworld.cpp Typofix. ------------------------------------------------------------------------ r1530 | Sally | 2011-07-13 07:24:11 -0600 (Wed, 13 Jul 2011) | 1 line Changed paths: M /foo/bar/helloworld.cpp M /foo/build Fix up some svn:ignore properties. ------------------------------------------------------------------------ $ 

NOTA: También puede usar el Diálogo de Registro de Revisión de TortoiseSVN para realizar búsquedas y filtrado.

Versión de Windows:

 svn log | find "William_Leara" 

La salida se ve así:

 r11506 | William_Leara | 2009-12-23 19:29:12 -0600 (Wed, 23 Dec 2009) | 12 lines r11505 | William_Leara | 2009-12-23 15:18:37 -0600 (Wed, 23 Dec 2009) | 12 lines r11504 | William_Leara | 2009-12-22 19:16:12 -0600 (Tue, 22 Dec 2009) | 12 lines r11503 | William_Leara | 2009-12-22 19:04:15 -0600 (Tue, 22 Dec 2009) | 12 lines r11502 | William_Leara | 2009-12-22 18:49:33 -0600 (Tue, 22 Dec 2009) | 12 lines r11501 | William_Leara | 2009-12-22 18:26:45 -0600 (Tue, 22 Dec 2009) | 12 lines r11500 | William_Leara | 2009-12-22 18:05:04 -0600 (Tue, 22 Dec 2009) | 12 lines r11499 | William_Leara | 2009-12-22 17:25:25 -0600 (Tue, 22 Dec 2009) | 12 lines r11498 | William_Leara | 2009-12-22 17:03:18 -0600 (Tue, 22 Dec 2009) | 12 lines r11497 | William_Leara | 2009-12-22 16:54:59 -0600 (Tue, 22 Dec 2009) | 12 lines r11494 | William_Leara | 2009-12-21 14:36:20 -0600 (Mon, 21 Dec 2009) | 12 lines r11491 | William_Leara | 2009-12-19 12:48:49 -0600 (Sat, 19 Dec 2009) | 12 lines 

etc.

Bajo Windows, usando la versión UnxUtils de sed , necesitaba usar estas expresiones regulares en su lugar, haciendo coincidir con —- en el siguiente inicio de línea:

 svn log | sed -n "/username/,/^----/p"