有没有能够将文件读取并提交到 Subversion 服务器的 Javascript 库?
服务器可以使用 svn:// 协议或 http:// (dav_svn)协议,如果有一种协议更加方便,那么也可以,但是一个能够处理两种类型的库更好。
我想避免创建本地工作副本(在Javascript中是否可能检出存储库...)。
有人有解决方案吗?我已经寻找了一些东西,但没有找到任何东西。
有没有能够将文件读取并提交到 Subversion 服务器的 Javascript 库?
服务器可以使用 svn:// 协议或 http:// (dav_svn)协议,如果有一种协议更加方便,那么也可以,但是一个能够处理两种类型的库更好。
我想避免创建本地工作副本(在Javascript中是否可能检出存储库...)。
有人有解决方案吗?我已经寻找了一些东西,但没有找到任何东西。
我不知道有没有已经准备好的解决方案,但也许这个能够帮助:https://github.com/sara-nl/js-webdav-client。这是一个使用JS编写的WebDAV客户端,使用它应该可以对SVN进行检出。
否则,您将不得不自己实现WebDAV。您可以在这里找到规范:http://webdav.org/specs/
这个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文件中使用的每个关键字 - 只需像处理xml字符串一样处理即可
通过 a = xmlString.find("Member");
您可以获得名为“member”的xml每个对象的数组。
如果您执行 a[0].textContent = "Harry";
,则将您的xmlString中的第一个对象的内容设置为Harry - > 然后只需在刷新表格之后执行drawTable()
即可
编辑:
在 drawTable()
方法中,您需要执行 a.find("")
, var list = [];
和 list.push("html文本用于创建表格")
,然后执行 $("#membertable").html(list);
将所有内容写入现有表格“membertable”
对于提交代码来说,hashBase
是很重要的。
我还没有提交,但快要完成了。
当前代码和流程在这里:how to do SVN http-request checkin/commit within html
我有同样的问题,刚刚发现了svnjs,它似乎正是这个功能;我自己还没有尝试过,但它声称支持添加、删除、属性设置、属性删除、创建目录和提交。不支持移动、复制、锁定或解锁。
据说它最后一次更新是四年前。
svnjs
工作了吗?我已经尝试了存储库中提供的两个版本,但都无法让我添加或修改文件...先谢谢你! - Eric Roy您可以编写一组命令文件来编写自己的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" );
但是你知道,这并不安全。