2011-08-10 52 views
4

我是开发eclipse插件的新手。我现在面临的最大障碍是在哪里/如何从各种其他插件获取数据。我真的很难找到这方面的文档。例如Team Provider插件....Eclipse插件开发 - 从团队提供者获取信息

  1. 如何读取文件的svn修订版?比方说,我有一个IResourceChangeListener,并且我想跟踪一个文件的svn修订号(例如,如果用户进行了更新)。
  2. 如果我想询问svn是否有项目的未决更新,我该如何与eclipse团队提供者交谈?

我不知道从哪里开始...

谢谢!

回答

4

我终于在经过数小时的搜索后发现了我正在寻找的东西。不幸的是,由于我的代表不足100人。我一直无法发布到现在....

我在这方面取得了一些进展。当我通过eclipse源代码进行灌注时,我偶然发现了这个问题。

以下代码片段监视关于启用svn的项目的所有内容。如果你保存一个文件,更新,恢复等任何接触文件或元数据的文件。我只是打印出文件/直接名称及其修订号。

颠覆版本:

final Subscriber subscriber = UpdateSubscriber.instance(); 
subscriber.addListener(new ISubscriberChangeListener() { 
    @Override 
    public void subscriberResourceChanged(ISubscriberChangeEvent[] events) { 
     for(ISubscriberChangeEvent event : events) { 
      UpdateSyncInfo info = (UpdateSyncInfo) subscriber.getSyncInfo(event.getResource()); 

      System.out.println(event.getResource().getName()+" revision: "+uInfo.getLocalResource().getRevision()); 
     } 
    } 
}); 

真正的技巧是找出切入点,以获得这方面的资料:UpdateSubscriber。如果有足够的资源来找到这类信息,那将是非常好的。

Subclipse的版本:

private static final Subscriber subscriber = SVNWorkspaceSubscriber.getInstance(); 
private static final ISubscriberChangeListener subsciberListener = new ISubscriberChangeListener() { 
    @Override 
    public void subscriberResourceChanged(ISubscriberChangeEvent[] events) { 
     try { 
      for (ISubscriberChangeEvent event : events) { 
       SVNStatusSyncInfo info = (SVNStatusSyncInfo) subscriber.getSyncInfo(event.getResource()); 
       System.out.println(event.getResource().getName() + " revision: " + info.getRepositoryRevision()); 
      } 
     } catch (TeamException e) { 
     } 
    } 
}; 

@Override 
public void start(BundleContext context) throws Exception { 
    super.start(context); 

    subscriber.addListener(subsciberListener); 
} 

@Override 
public void stop(BundleContext context) throws Exception { 
    subscriber.removeListener(subsciberListener); 

    super.stop(context); 
} 
+1

+1,你是一个用这条信息返回的圣人。 – cgp

+0

感谢您的回答!为任何可能受益的人添加subclipse等效项。 –

1

有关在Eclipse平台团队API的一般信息,请查看帮助系统中的文档。

http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/team.htm

(如果你与认购的东西的工作,看来人根据“同步支持”提到 - >“高级功能”主题。)

的Java文档的包也可以帮助:

http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/team/core/package-summary.html

如果你想用集成或以其他方式扩展Subclipse的颠覆或团队提供者,你可能有更好的运气问你在他们的论坛问题:

http://subclipse.tigris.org/ds/viewForums.do

http://www.eclipse.org/subversive/newsgroup.php