0

我试图通过仅获得来自 SVN 的绝对路径来确定本地文件的确切绝对路径。整个想法是,我正在编写一个 Eclipse 插件,通过知道 SVN 中文件的 URL,您可以单击一行,然后在 eclipse 中本地打开相应的文件。

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

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

http://webappsecure.com/svn/discovery/sentinel2jirav4/src/main/java/com/whitehatsecurity/jira/configurations/IPluginConfigurationSettings.java

可以在用户计算机上的这个位置的 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 是否存储该本地路径信息?

4

1 回答 1

1

首先,您应该阅读 svn 的本地结构( .svn 文件夹中的.svn文件夹和entries文件),这是在第二个结果中获得的checkout
,您需要为 %WORKSPACE% 中的所有文件夹解析 .svn/entries。之后,您将确切知道 SVN 中本地文件夹和 url 之间的关系

例如:src/main/java/com/whitehatsecurity/jira/configurations/IPluginConfigurationSettings.java 根文件夹内src应该是名为的文件夹.svn,其中应该是 file entries。文件内部.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...
于 2012-08-13T05:17:42.067 回答