2014-04-24 6 views
1

Jenkins에서 RTC 플러그인을 사용하여 CI 빌드를 실행하고 있으며 빌드의 일부로 빌드 RTC 작업 영역에 저장된 스냅 샷을 만듭니다. 내가 할 수있는 한, 스냅 숏 생성을 비활성화하는 구성 옵션이 없다는 것을 알 수 있으므로 필요하지도/사용하지 않는 수백 개의 스냅 샷이 생성됩니다.RTC 명령 줄 인터페이스에서 스냅 샷 삭제

이 스냅 샷을 삭제하여 이전 작업 공간을 삭제할 수있는 자동화 된 방법을 원합니다. 그러나 CLI에서 해당 옵션을 찾을 수 없습니다. 어떻게 수행 할 수 있는지 알고 있습니까?

감사합니다.

답변

0

이러한 스냅 샷은 빌드 전용 RTC repo 작업 영역 (RTC의 빌드 정의에 연결하는 repo 작업 영역)에서만 만들어야합니다.

mentioned in this thread으로

스냅 샷을 제공 할 수 없습니다. 스트림 또는 작업 영역의 불변 구성입니다. 그것은 당신의 빌드에 들어간 것을 나타냅니다.

스냅 샷을 삭제할 수 있으며 빌드 사용자의 빌드 작업 영역에 있습니다.

더 쉽게, 해당 repo 작업 영역을 삭제하거나 다시 만들 수 있습니다.

은 그러나 몇 스냅 샷을 삭제하는 것은 바람직하지 않습니다 :

스냅 샷은 빌드시의 SCM 작업 공간을 나타냅니다.
변경 사항이 수락되면 통과했는지 여부에 관계없이이 빌드에 포함되며 스냅 샷은 변경 집합이 빌드에 포함될 때보고 할 빌드에 사용됩니다.

그래서 스냅 샷을 삭제하면 실제로 빌드에 변경 집합이 도입되었을 때 빌드 프로세스를 혼동하게되므로 바람직하지 않습니다. 나는 정기적으로 그들이 더 이상 필요하지 않으며 내가 할 수없는 후 내가 가지고있는 빌드 작업 공간의 수백을 정리해야하지만


그들 스냅 샷이있는 경우 스냅 샷을 나열하거나 (repo 작업 공간에서 마우스 오른쪽 버튼을 클릭하여 "스냅 샷 표시") 해당 목록의 스냅 샷을 여러 개 선택하면 여러 선택 항목의 컨텍스트 메뉴를 통해 해당 스냅 샷을 삭제할 수 있습니다.

또는 할 수도 있습니다, 같은 다중 선택, change their ownership, 당신은 수백이있는 경우 적어도 (그 안에 그들을 덤프 더 영구적 인 해결책을 보류) 공통의 repo 작업 공간으로 이동

을하지만까지 REPOS 작업 영역 :

  • 첫째, 그 이상이다 : (당신이 RTC4를 사용하지 않는) 빌드 정의는 하나를 참조해야하며, 젠킨스 하나를 구축하지 않아야하지만, 단순히 RTC에서 소스를받을

  • 두 번째로, 작업 공간을 나열하고 각 스냅 샷을 삭제하기 위해 해당 스냅 샷을 삭제할 수 있습니다 (RTC downloads에서 사용 가능한 Java API 사용).

    작업 영역을 삭제하기 전에 스냅 샷을 제거하려면 this thread

참조, 전화 다음

IWorkspaceConnection.removeBaselineSet(IBaselineSetHandle baselineSet, IProgressMonitor monitor) 

당신이 소유하는 작업 공간의 IWorkspaceHandle이있는 경우 스냅 샷을 사용하면 해당 소유자가있는 모든 스냅 샷을 찾을 수 있습니다 IBaselineSetSearchCriteria (IBaselineSetSearchCriteria에는 쿼리 범위를 추가로 지정하는 방법이 있습니다.)

예는 :

IWorkspaceHandle wsHandle = null // GET ME SOMEHOW 
IWorkspaceManager workspaceManager = SCMPlatform.getWorkspaceManager(repo); 
IBaselineSetSearchCriteria criteria = IBaselineSetSearchCriteria.FACTORY.newInstance(); 
criteria.setOwnerWorkspaceOptional(wsHandle); 
List snapshotHandles = workspaceManager.findBaselineSets(criteria, MAX_TO_SHOW, null); 
// snapshotHandles contains a list of IBaselineSetHandle, so you can fetch them 
+0

덕분에, 그러나 이것은 정말 문제가 해결되지 않습니다. 빌드 전용 작업 공간에서 스냅 샷이 작성되는 것이 옳습니다. 그러나 필자는 주기적으로 수백 개의 빌드 작업 공간을 정리해야하는데,이 작업 공간은 더 이상 필요하지 않으며 스냅 샷이있는 경우이를 수행 할 수 없습니다. 즉, GUI를 통해 작업 영역 자체를 삭제하기 전에 각 작업 공간에서 수동으로 스냅 샷을 하나씩 삭제해야합니다. – JamesE

+0

@JimG 내 대답을 편집했습니다. RTC 4.x 또는 RTC 3.x를 사용하고 있습니까? – VonC

+0

감사합니다. RTC 4.x를 사용하고 있습니다. 나는 당신의 해결책이 나를 위해 일할 것이라고 생각한다. 나는 나중에 오늘 그것을 시험 할 것이다. BTW ... 내가 수백 개의 Repo 작업 영역을 보유하고있는 이유는 Jenkins의 수백 가지 작업 ... 작업 당 하나의 작업 영역이 있다는 것입니다. 다시 한번 감사드립니다. – JamesE