2013-02-21 2 views
1

변경 집합에있는 .txt 파일을 검색하고 있습니다. 그럼 내 PC를 통해이 파일의 전체 경로 디렉토리를 로컬로 생성해야합니다. 예를 들어작업 공간을 사용하지 않고 변경 집합에서 파일의 경로를 가져옵니다.

경우가가에 위치하고 있음을 "있는 test.txt"라는 파일 : 에서 Project1 -> 폴더 1 -> Folder2 폴더 -> TEST.TXT

지금이 검색 관리해야까지

파일. 내 PC에서 결과 : 는 지금은 전체 디렉토리를 가져오고 내 PC를 통해 비슷한 일을 만들 필요가 폴더 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; 
} 

내가 포럼에 게시 &을 검색 한 물건의 대부분은 내가 발견 한 것은 내가 사용할 수 있다는 것입니다 : configuration.determineAncestorsInHistory

그러나, 나는 필요한 IConfiguration를 얻기 위하여 w 필자의 경우 올바르지 않은 orkspaceConnection.

감사합니다.

감사합니다 사전에 XP : 4 승리 :

나는 RTC를 사용합니다.

답변

1

파일/폴더의 이름/경로와 독립적 인 ID가 있습니다. 이렇게하면 이름 변경/이동을 통해 파일을 추적 할 수 있습니다. 파일의 이름/경로는 해당 파일 (또는 포함 된 폴더)의 변경 내역에 따라 다를 수 있습니다.

즉, 관심있는 기록의 특정 지점을 가리키는 작업 영역 (또는 기준선)이없는 경우 경로가 실제로 무엇인지 확신 할 수 없습니다. IConfiguration.determineAncestorsInHistory은 실제로 경로를 가져 오는 유일한 방법입니다.

파일에 대한 "널리 사용되는"경로를 추측 할 수있는 알고리즘이 서버에 숨어 있지만 어디에도 노출되어 있지 않습니다.

관련 문제