我想在尝试时运行svn ls <path>
命令我收到错误说明
svn: '.' is not a working copy
svn: Can't open file '.svn/entries': No such file or directory
这是尝试在没有路径的情况下运行命令并且在不受SVN版本控制的目录中的标准错误。但事情是,当我在执行它之前调试我的命令时,它会明确指出远程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)。
有谁知道为什么会失败?