2013-04-26 86 views
1

我想上传一堆放在S3目录中的属性文件。SVNKit:更新操作后更新/添加文件在工作副本列表

我在https://stackoverflow.com/questions/16214798/s3-static-resource-update-on-regular-basis-using-java-or-shell-script中分享了一些细节。

作为一个解决方案,我试图做到以下几点:

  1. 从任何地方提交属性文件SVN reposity。
  2. 将属性文件签出到本地机器(LM)上的工作副本。
  3. 使用SVNKit编写更新任务。
  4. 使用S3 API仅上传工作副本中更新/添加的文件。

我已经完成更新并上传到S3。但我在获取添加/更新文件列表时遇到困难。请帮我在这里。

回答

0

您可以为SvnUpdate设置ISVNEventHandler,并在#handleEvent中收集触及的文件上的事件。但是,这不是一个真正的强大解决方案,IMO。

相反:

  • 确保你是在一个干净的版本更新(或者使用SvnStatusSummary确定存在最小局部修订)之前,
  • 记住这个版本号,
  • 执行SvnUpdate,
  • 检查旧版本和新版本之间的日志,最后确定所有已触及的文件(可能存在重复的问题)
  • 当更改一个文件几次或多次更改文件时出现这种情况)。
+0

我接受了您使用ISVNEventHandler的建议。不知何故,event.getPath方法不适合我。收集修订:我没有使用InfoHandler。我正在通过目录,通过修改所有文件并将其放入地图。然后我应用更新Wroking副本。然后,我再次收集修订并将其放入一张不同的地图。比较这两张地图可以给我更新的文件以及新的文件。 – 2013-04-29 08:00:37

+0

该方法看起来很好。我正在使用SVNKit 1.7.x.只有'SVNEvent#getFile()',但没有'SVNEvent#getPath()'。对于旧版本,我很确定有一个'SVNEvent#getFile()',它也应该可以很好地工作。 – mstrap 2013-04-29 08:57:01