我想svn ls <path>
在尝试时运行命令,但出现错误说明
svn: '.' is not a working copy
svn: Can't open file '.svn/entries': No such file or directory
这是您尝试在没有路径且不受 SVN 版本控制的目录中运行命令时遇到的标准错误。但问题是,当我在执行命令之前 console.log 时,它特别说明了远程 SVN 存储库的完整、有效路径。
例如,svn ls https://svn.example.com/this/is/a/valid/repo
如果我将日志复制并粘贴到我自己的 bash 中,它会很好地列出目录。
这是我想要执行的代码
function svnls (path) {
var cp = require('child_process'),
command = 'svn ls ' + path;
console.log(command); // -> svn ls https://svn.example.com/this/is/a/valid/repo
cp.exec(command, function (err, stdout, stderr) {
console.log(stderr);
});
}
或者,我尝试了更详细的生成 bash 实例的方法:
function svnls (path) {
var bash = require('child_process').spawn('bash');
bash.stdout.on('data', function (data) {
var buff = new Buffer(data),
result = buff.toString('utf8');
console.log(result);
});
bash.stderr.on('data', function (data) {
var buff = new Buffer(data),
error = buff.toString('utf8');
console.log(error);
});
bash.on('exit', function (code) {
console.log(code);
});
bash.stdin.write('svn ls ' + path);
bash.stdin.end();
}
它向控制台输出相同的错误以及退出代码(1)。
有谁知道为什么会失败?