svn javascript svn-client

Envoltorio Javascript SVN



svn-client (3)

Puede escribir sus propios comandos Svn en un conjunto de archivos de comandos y luego ejecutarlos dentro de su secuencia de comandos.

/* Create WSH Shell */ oShell = WScript.CreateObject( "WScript.Shell" ); /* Launch svn.exe with other orguments */ oShell.Run( "svn.exe svn://192.168.40.41 Param1 param2" ); /* Let the user know that we are done */ WScript.Echo( "Done" );

Pero como sabes, esto no es seguro.

¿Hay alguna biblioteca de Javascript que permita leer y enviar archivos a un servidor de Subversion ?

El servidor podría estar usando el protocolo svn:// o el protocolo http:// (dav_svn). Si uno es más conveniente, está bien, aunque una biblioteca que podría manejar ambos tipos es mejor.

Me gustaría evitar tener que crear una copia de trabajo local del repositorio (es que incluso es posible consultar un repositorio en Javascript: p ...).

Alguien ve una solución? He estado mirando alrededor pero no encontré nada.


No conozco una solución realmente lista, pero tal vez esto: https://github.com/sara-nl/js-webdav-client podría ayudar. Eso es un WebDAV-Client escrito en JS y con esto debería ser posible hacer checkout SVN también.

De lo contrario, tendrá que implementar WebDAV usted mismo. Puede encontrar la especificación aquí: http://webdav.org/specs/


El https://github.com/sara-nl/js-webdav-client no funcionó para mí

Usé jQuery para leer un archivo XML:

var URL = window.location.href; var baseURL = URL.substring(0, URL.lastIndexOf(''/'')); $.ajax({ type: "OPTIONS", url: baseURL, contentType: "text/xml", //for other files look up the api link below headers: {Depth: "0"}, data: ''<?xml version="1.0" encoding="utf-8" ?><D:options xmlns:D="DAV:"><D:activity-collection-set></D:activity-collection-set></D:options>'', success: function(data1, status, jqxhr){ latestRev = jqxhr.getResponseHeader(''SVN-Youngest-Rev''); $.ajax({ type: "PROPFIND", url: baseURL + ''/!svn/rvr/'' + latestRev, contentType: "text/xml", headers: {Depth: "0"}, data: ''<?xml version="1.0" encoding="utf-8" ?><propfind xmlns="DAV:"><prop><resourcetype xmlns="DAV:"/></prop></propfind>'', success: function(data2, status, jqxhr){ $.ajax({ type: "OPTIONS", url: baseURL, contentType: "text/xml", headers: {Depth: "0"}, data: ''<?xml version="1.0" encoding="utf-8" ?><D:options xmlns:D="DAV:"><D:activity-collection-set></D:activity-collection-set></D:options>'', success: function(data3, status, jqxhr){ $.ajax({ type: "REPORT", url: baseURL + "/!svn/me", contentType: "text/xml", data: ''<S:update-report xmlns:S="svn:"><S:include-props>yes</S:include-props><S:src-path>/svn/check</S:src-path><S:target-revision>'' + latestRev + ''</S:target-revision><S:depth>unknown</S:depth><S:entry depth="infinity" rev="'' + latestRev + ''"></S:entry></S:update-report>'', success: function(data4,status,jqxhr){ svnSpecs = data4; $.ajax({ type: "GET", url: ''/svn/check/!svn/rvr/'' + latestRev + ''/KickOff.xml'', converters: {"text xml": function(obj) { hashBase = calcMD5(obj); return obj; }}, cache: false, async: false, success: function(data5, status, jqxhr){ hashdata5 = calcMD5(data5); xmlString = $($.parseXML(data5)); drawTable(xmlString); }, }); }, }); }, }); }, }); }, });

Si quiere importar otros archivos que no sean XML, búsquelo aquí: http://api.jquery.com/jQuery.ajax/

En data4/svnSpecs puedes encontrar todas las palabras clave que data4/svnSpecs dentro de tu xml; solo haz lo mismo que con xmlString

Con a = xmlString.find("Member"); obtienes una matriz con cada objeto llamado miembro del xml si haces a[0].textContent = "Harry"; estableces el contenido del primer objeto dentro de tu xmlString a Harry -> puedes hacer un drawTable() luego para refrescar tu mesa

EDITAR: dentro del drawTable() tienes que hacer el a.find("") , var list = []; y list.push("html text for a table") y un $("#membertable").html(list); escribir todo en la tabla existente "membertable"

El hashBase es importante para el compromiso. No he terminado con el compromiso, pero casi. El código y el proceso actuales están aquí: cómo hacer el checkin / commit de SVN http-commit dentro de html