在不使用工作空间的情况下,在changeset处获取文件的路径

时间:2013-02-21 13:26:41

标签: java rtc jazz ibm-jazz

我正在搜索位于更改集的.txt文件。 然后我需要在我的电脑上本地创建这个文件的完整路径目录。

例如,如果有一个名为“test.txt”的文件位于: PROJECT1 - > Folder1中 - > FOLDER2 - > test.txt的

直到现在我已设法搜索此文件。 现在我需要获取完整目录并在我的电脑上创建类似的目录: 在我的电脑上的结果: 文件夹1 - > FOLDER2 - > test.txt的

这就是我在变更集中搜索文件并检索它所做的工作:

public IFileItem getTextFileFile(IChangeSet changeSet, ITeamRepository repository) throws TeamRepositoryException{
    IVersionableManager vm = SCMPlatform.getWorkspaceManager(repository).versionableManager();
    List changes = changeSet.changes();
    IFileItem toReturn = null;
    for(int i=0;i<changes.size();i++) {="" <br="">             Change change = (Change) changes.get(i);
        IVersionableHandle after = change.afterState();
        if( after != null && after instanceof IFileItemHandle) {
            IFileItem fileItem = (IFileItem) vm.fetchCompleteState(after, null);
            if(fileItem.getName().contains(".txt")) {
                   toReturn = fileItem;
                   break;
            } else {
               continue;
            }
        }
    }
    if(toReturn == null){
        throw new TeamRepositoryException("Could not find the file");
    }
    return toReturn;
}

我搜索过&amp;发布在论坛上,我发现的大部分内容都是我可以使用: configuration.determineAncestorsInHistory

但是为了获得IConfiguration,我需要在我的情况下无效的workspaceConnection。

感谢。

我使用RTC:4 赢:XP

提前致谢。

1 个答案:

答案 0 :(得分:1)

文件/文件夹的标识与其名称/路径无关。这允许跨重命名/移动跟踪文件。根据对该文件(或包含文件夹)所做更改的历史记录,文件的名称/路径可能会有所不同。

这意味着如果您没有指向您关注的历史记录中特定点的工作区(或基线),那么您无法确定路径实际是什么。 IConfiguration.determineAncestorsInHistory实际上是获取路径的唯一途径。

在服务器深处埋藏了一种算法,可以猜测文件的“热门”路径,但这不会在任何地方公开。