Java 尝试将绝对URL从SVN转换为IDE上的本地文件路径

Java 尝试将绝对URL从SVN转换为IDE上的本地文件路径,java,svn,eclipse-plugin,Java,Svn,Eclipse Plugin,我试图确定本地文件的确切绝对路径,因为只有SVN的绝对路径可用。整个想法是,我正在编写一个eclipse插件,通过了解SVN中文件的URL,您可以单击一行,然后在eclipse中本地打开相应的文件 我遇到的困难是试图准确地确定SVN路径的结束位置和实际文件在本地的开始位置。让我举一个实际的例子来说明 假设SVN中文件的绝对URL为: 在eclipse中用户计算机上的以下位置可以找到相同的文件: C:\Users\Steve\workspace\Jira Plugins\Sentinel2Jir

我试图确定本地文件的确切绝对路径,因为只有SVN的绝对路径可用。整个想法是,我正在编写一个eclipse插件,通过了解SVN中文件的URL,您可以单击一行,然后在eclipse中本地打开相应的文件

我遇到的困难是试图准确地确定SVN路径的结束位置和实际文件在本地的开始位置。让我举一个实际的例子来说明

假设SVN中文件的绝对URL为:

在eclipse中用户计算机上的以下位置可以找到相同的文件:

C:\Users\Steve\workspace\Jira Plugins\Sentinel2Jirav4\Sentinel2Jirav4\src\main\java\com\whitehatsecurity\Jira\configurations\IPluginConfigurationSettings.java

在路径的结构上肯定存在一些差异

您可以看到SVN中的URL是如何:

/svn/discovery/sentinel2jirav4/

eclipse的本地路径为:

\Jira插件\Sentinel2Jirav4\Sentinel2Jirav4\

看起来我可以有一个首选项页面,让用户将路径添加到svn,如下所示:/svn/discovery/

因此,我从SVN中获得的每个绝对URL都会一直被截断到/SVN/discovery


有没有更好的方法将SVN路径与其本地路径关联起来?SVN是否存储该本地路径信息?

首先,您应该了解在
签出的结果中获得的SVN的本地结构(
.SVN
文件夹和.SVN文件夹中的
条目
文件)。
其次,您需要解析%WORKSPACE%中所有文件夹的.svn/条目。 之后,您将确切地知道本地文件夹和SVN中url之间的关系

例如:
src/main/java/com/whitehatsecurity/jira/configurations/IPluginConfigurationSettings.java
根文件夹
src
中应该有名为
.svn
的文件夹,其中应该有文件
条目
。文件
.svn/entries
的内部应该有以下几行:

dir
3
http://webappsecure.com/svn/discovery/sentinel2jirav4/src
http://webappsecure.com/svn
或者,您可以为每个文件夹运行
svn info C:\Users\Steve\workspace\Jira Plugins\Sentinel2Jirav4\Sentinel2Jirav4\src
,其中包含
.svn
。 结果是

Path: workspace\Jira Plugins\Sentinel2Jirav4\sentinel2jirav4\src
URL: http://webappsecure.com/svn/discovery/sentinel2jirav4/src
Repository Root: http://webappsecure.com/src
etc...

这看起来是一个很好的开始,但当我在.svn中查找项目时,条目文件只有一个数字12。不是你在你的例子中所展示的吗?