是否有任何Javascript库,使以阅读和提交文件到Subversion服务器?的Javascript SVN包装
服务器可能使用svn://
协议或http://
(dav_svn)协议。如果更方便的话可以,但是可以处理这两种类型的库更好。
我想避免创建存储库的本地工作副本(甚至可能签出使用Javascript的存储库:p ...)。
任何人都看到一个解决方案?我一直在环顾四周,但没有找到任何东西。
是否有任何Javascript库,使以阅读和提交文件到Subversion服务器?的Javascript SVN包装
服务器可能使用svn://
协议或http://
(dav_svn)协议。如果更方便的话可以,但是可以处理这两种类型的库更好。
我想避免创建存储库的本地工作副本(甚至可能签出使用Javascript的存储库:p ...)。
任何人都看到一个解决方案?我一直在环顾四周,但没有找到任何东西。
我不知道一个真正准备好的解决方案,但也许这个:https://github.com/sara-nl/js-webdav-client可以提供帮助。这是一个用JS编写的WebDAV客户端,用这个它应该可以做SVN检出。
否则,你将不得不自己实现WebDAV。你可以在这里找到这个规范:http://webdav.org/specs/
你可以在一组命令文件中编写自己的Svn命令,然后在脚本中运行它们。
/* 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");
但是如你所知,这是不安全的。
的https://github.com/sara-nl/js-webdav-client没有为我工作
我用jQuery来读取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);
},
});
},
});
},
});
},
});
},
});
如果要导入其他文件比XML这里看看它:http://api.jquery.com/jQuery.ajax/
在data4/svnSpecs
中,您可以找到您在xml中使用的每个关键字 - 只需使用与xmlString相同的关键字
随着a = xmlString.find("Member");
你的XML 的每一个命名对象成员的数组,如果你这样做您设置的xmlString哈利内的第一个对象的内容 - >你可以做一个drawTable()
后刷新表
编辑: 内drawTable()
梅索德你必须做的a.find("")
,var list = [];
和list.push("html text for a table")
和$("#membertable").html(list);
写寄托都在现有表“membertable”
的hashBase
是commiting重要。 我没有完成提交但接近。 当前代码和过程结束于:how to do SVN http-request checkin/commit within html
您想使用哪种类型的JavaScript?浏览器中的JavaScript或者例如。 Node.js的? – TimWolla 2011-12-21 20:01:31
在浏览器中的Javascript。我想为SVN存储库做一些快速查看/编辑(并且不需要依靠PHP/Java服务器来完成这项工作)。 – 2011-12-21 22:39:17
我实际上有同样的问题,但我想这样做DIFF - 提供一种方法来显示给定修订的更改,而无需通过基于服务器的命令。Matthieu - 你最终得到它的工作?你也可以做DIFF吗? – 2012-07-16 08:21:28