pysvn da error: no es una copy de trabajo

Estoy tratando de get los últimos nombres de autor modificados para un set de files en svn.

Tengo el código verificado en mi máquina.

En mi script, las routes absolutas para todos los files se leen en una list. Estoy tratando de extraer el último autor editado para cada uno de los files usando el siguiente código.

for file in all_files: dir = os.path.dirname(file) entry = client.info(dir) print "Folder:"+dir+" And author:"+entry['commit_author'] 

Pero recibo el siguiente error:

 File "test_main.py", line 110, in main entry = client.info(dir) pysvn._pysvn.ClientError: '.' is not a working copy 

Intenté dar el nombre completo del file como argumento para que client.info() obtuviera el mismo resultado.

Este podría ser un problema muy simple, pero soy un novato en Python, por lo que no puedo descifrarlo.

EDITAR:

Intenté codificar la ruta de la carpeta como:

  temp = "/home/gajananh/scripts/test/repo/test_proj/src"; entry = client.info(temp) print "Folder:"+dir+" And author:"+entry['commit_author'] 

Y funciona !

En mi primer script, cuando bash imprimir la variable dir en loop, imprime las routes correctas. Cuando trato de ejecutar el command svn info en shell para la salida, obtengo los resultados adecuados.

No soy capaz de entender este misterio. Por favor ayuda.

Creo que for file in all_files: devuelve los files con routes relativas como ./file.txt

Cuando ejecuta os.path.dirname(file) , la ruta devuelta será solo un '.' (punto) que se da como argumento a svn.

Intente usar routes completas mientras llama a la function.

Necesitas usar info2.

 path="http://svn/svn/foo/trunk/baz.c" name_info_list = client.info2(path) assert len(name_info_list) == 1 name, info = name_info_list[0] for k, v in info.items(): print "%s: %s" % (k, v) 

http://pysvn.tigris.org/docs/pysvn_prog_ref.html#pysvn_client_info2