这是我之前关于通过使用Groovy脚本获取SVN存储库的修订历史记录的问题的重复。我尝试了很多方法,我现在尝试的代码是:
Calendar cal = Calendar.getInstance();
cal.set(2015, 01, 14);
Date date = cal.getTime();
Calendar cal1 = Calendar.getInstance();
cal1.set(2014, 10, 12);
Date date1 = cal1.getTime();
SVNRevision svr = new SVNRevision(date)
svr.create(date)
SVNRevision svr1 = new SVNRevision(date1)
svr1.create(date1)
DAVRepositoryFactory.setup();
String url = "Url"
String name = "Name";
String password = "Password";
SVNRepository repository = null;
repository = SVNRepositoryFactory.create(SVNURL.parseURIDecoded(url));
ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(name, password);
repository.setAuthenticationManager(authManager);
SVNDirEntry entry = repository.info(".", -1);
final long EndRevision = repository.getDatedRevision(date)
final long StartRevision= repository.getDatedRevision(date1)
println(latestRevision1)
println(latestRevision2)
logEntries = repository.log( { "" } as String[] , null ,StartRevision, EndRevision , true , true );
for ( Iterator entries = logEntries.iterator( ); entries.hasNext( ); ) {
SVNLogEntry logEntry = ( SVNLogEntry ) entries.next( );
System.out.println (String.format("revision: %d, date %s", logEntry.getRevision( ), logEntry.getDate()));
}
但在执行上述代码时,错误显示为:
Caught: org.tmatesoft.svn.core.SVNException: Path not found 404 not found
我无法解决错误,任何人都可以告诉我错误是什么? 并为我提供解决方案。
答案 0 :(得分:0)
您使用错误的参数/路径调用respository.log
。代码{ "" } as String[]
有效,但没有返回您期望的内容。你的意图是:
[""] as String[] // a list of strings (one empty string)
使用上面的代码定义一个闭包({}
仅用于groovy中的闭包而不用于静态数组(如java中))然后将其转换为字符串列表。结果列表然后不是具有空字符串的列表,而是具有闭包的toString
。参见:
def f = {""} as String[]
print f.inspect()
// => ['c$_run_closure1@3b39132f']
这条道路最有可能,你的回购中不存在。