我与另一位开发人员在同一份工作副本中工作(我知道这是一个坏主意),我们通常会更新单个文件,现在我们在一些修订中有文件,而另一些文件在另一个版本中。 如何查看具有各自修订版本号的文件列表? (工作副本是在Linux系统中,我们正在使用SVN命令行。如何查看SVN工作副本中每个文件的版本号?
预先感谢任何帮助
我与另一位开发人员在同一份工作副本中工作(我知道这是一个坏主意),我们通常会更新单个文件,现在我们在一些修订中有文件,而另一些文件在另一个版本中。 如何查看具有各自修订版本号的文件列表? (工作副本是在Linux系统中,我们正在使用SVN命令行。如何查看SVN工作副本中每个文件的版本号?
预先感谢任何帮助
最后,我使用了由Dmitry Yudakov发布的命令和js-rhino中的litle脚本的组合解决方案。现在我可以找到具有不同版本号的所有文件,如下所示:
svn info -R> tmp_info rhino read-svn.js |的grep -v 295
/* The script */
lines = readFile("tmp_info").split("\n");
lines.pop();
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,"");
}
var idx = 0;
var files = [];
files[0] = {};
var line;
for (i in lines) {
line = lines[i].toString();
if(line.length) {
key = line.split(':')[0];
if(key == 'Name' || key == 'Revision' || key == 'Path')
files[idx][key] = line.split(':')[1];
} else {
idx++;
files[idx] = {};
}
}
print('files : ' + files.length + "\n");
for (i = 0; i< files.length ; i++) {
var file = files[i];
if(typeof(file.Name) !== "undefined")
print(" REVISION: " + file.Revision.trim() + ' - ' + file.Path.trim() +'/' + file.Name.trim());
}
在你的工作拷贝试试这个
svn info *
或
svn info -R *
以递归方式查看所有文件和目录
您可以键入svn help info
查看其他选项
是的,但我正在递归地查找所有子目录和文件的版本。 只显示父目录中文件的版本。 – Castro 2010-08-09 20:09:03
好的,看我的编辑 – 2010-08-09 20:25:37
svnversion命令可能是您所需要的,因为它会显示工作副本中的修订范围。
@JonathonReinhart - 这篇文章陈述了一个答案。虽然它也包含链接,但该链接对于答案是有效的并不是必需的。这里关键的难题是知道要使用什么命令,并以独立的方式提供这些信息。 – 2014-05-03 06:17:58
@ChrisStratton同意。我对评论有点过分热心。 – 2014-05-03 06:21:29
相同的节目在PHP:
SVN信息-R> tmp_info & & PHP versions.php
<?php
$lines = explode("\n",file_get_contents("tmp_info"));
array_pop($lines);
$idx = 0;
$files = array();
$files[] = array();
foreach($lines as $i => $line) {
if(!empty($line)) {
$spl = explode(':',$line);
$key = $spl[0];
if($key == 'Name' || $key == 'Revision' || $key == 'Path')
$files[$idx][$key] = $spl[1];
} else {
$idx++;
$files[$idx] = array();
}
}
echo 'files : ' . count($files) . "\n";
foreach($files as $file) {
if(isset($file["Name"]))
echo " REVISION: " . trim($file["Revision"]) . ' - ' . trim($file["Path"]) .'/' . trim($file["Name"]) . "\n";
}
svn info -R . | egrep "^Path:|^Revision:" | paste - -
这意味着
生成输出是这样的:
Path: Tools/xmlvalidator Revision: 69114
Path: Tools/xmlvalidator/main.c Revision: 69114
我这样做对不起,我不能要求停止自己:?__If你知道这是一个坏主意,你为什么要做这个__ – sbi 2010-08-09 20:28:47
问题发生在apache的生产文件夹的工作副本中运行。有时当我们需要快速解决错误时,我们直接使用该工作副本。 – Castro 2010-09-09 18:23:59
这是一个可怕的想法。您快速创建问题的可能性与您快速修复问题的可能性相同。 – thekbb 2013-02-04 17:23:23