사용자 도움말 > 변경 패키지의 작업 단위 그룹화 > 고급 변경 패키지 적용 및 변경 패키지 다시 동기화 개념 > 순 변경 내용이 계산되는 방식
  
순 변경 내용이 계산되는 방식
순 변경 내용은 대상 프로젝트를 소스 프로젝트와 동등하도록 하기 위해 각 멤버 또는 하위 프로젝트의 순 변경 내용에 상당하는 단일 작업을 해당 멤버 또는 하위 프로젝트에 대해 계산하여 결정됩니다.
변경 패키지 적용 명령의 경우, 순 변경 내용은 저장소의 기존 아티팩트와 일치해야 합니다. 예를 들어 특정 멤버에 대한 순 변경 내용은 해당 멤버의 아카이브에 있는 기존 개정과 일치해야 합니다(순 변경 내용이 해당 아티팩트를 제외하지 않을 경우). 순 변경 내용을 기존 아티팩트로 분해할 수 없는 경우(병합이 필요하기 때문일 수 있음), 전파가 실패하고 사용자는 변경 패키지 다시 동기화 명령을 대신 사용하여 작업을 수행해야 합니다.
변경 패키지 다시 동기화 명령 또한 각 멤버 또는 하위 프로젝트에 대해 단일 작업을 계산하지만, 변경 패키지 적용과 달리 변경 패키지 다시 동기화는 샌드박스의 컨텍스트에서 작동하고 샌드박스에서의 병합 발생을 허용합니다. 병합은 전파 변경 패키지가 제출될 때 멤버의 아카이브에 새 개정을 생성하기 위해 체크 인됩니다. 한편, 병합의 복잡성에 대해서는 제한이 있습니다. 예를 들어 멤버에 대한 단일 작업을 생성하기 위해 둘 이상의 불연속 개정 세트를 해당 멤버의 아카이브로부터 병합에 포함하거나 병합에서 제외해야 하는 경우, 작업이 실패합니다. 대부분의 경우에는 변경 내용을 여전히 전파할 수 있지만, 전파가 여러 개의 작은 부분으로 분할되어 순차적으로 수행되어야 합니다.
순 변경 내용이 대상에 존재하는 경우 그에 따르는 영향
Windchill RV&S가 순 변경 내용을 결정하는 방식을 파악할 때 중요한 부분은 대상에서 멤버 개정이 순 변경 내용에 의해 전파되어야 하는 것으로 지정된 개정에 또는 그 개정을 지나 이미 있을 경우, Windchill RV&S는 변경 내용이 소스에서 대상으로 이미 전파된 것으로 간주한다는 점입니다. 이 점은 특히 두 가지 경우에 영향을 미칩니다. 첫 번째는 소스 프로젝트 트리에서 대상 프로젝트 트리로 변경 내용을 재전파하려는 경우이고, 두 번째는 멤버 개정을 시간적 흐름에서 역방향으로 이동하는 변경 내용을 전파하려는 경우입니다. 두 경우 모두에서 Windchill RV&S는 필요한 변경 내용이 대상에 이미 있는 것으로 판단하여 아무런 작업도 수행하지 않습니다. 다음은 이에 대한 예입니다.
개발자인 John은 소스 프로젝트 계층 구조에서 개정 1.6에 멤버 bar.txt를 갖고 있지만, 동일한 멤버가 대상 프로젝트 계층 구조에서는 개정 1.5에 있습니다. John은 소스 계층 구조에서 bar.txt를 개정 1.4로 되돌리는 멤버 개정 업데이트 작업을 수행하는 엔트리가 포함된 새 변경 패키지 1:1을 생성합니다. 다른 사용자인 Mary는 변경 패키지 적용 또는 변경 패키지 다시 동기화를 사용하여 이 변경 패키지를 대상으로 전파하려고 하지만, 대상에 이미 변경 내용이 있기 때문에 Windchill RV&S는 아무것도 수행하지 않습니다(개정 1.5는 1.4를 기반으로 하는 것이 당연함). Mary가 대상에서 강제로 멤버 개정을 1.4로 되돌리려면 수동으로 그렇게 해야 하며, 변경 패키지 적용 또는 변경 패키지 다시 동기화를 사용할 수는 없습니다.
대상에 어떤 변경 내용이 "이미 있는지" 확인하는 이 동작은 개정 번호 지정을 기반으로 합니다. 이러한 변경 내용을 무시하는 것은 명령 프로세스에 기본적이며 백필 프로세스에도 영향을 미칩니다.
전파 시에 사용되는 변경 내용
Windchill RV&S에서 순 변경 내용을 결정하는 방식을 파악할 때 이해되어야 하는 또 다른 중요한 부분은 프로젝트의 멤버 및 하위 프로젝트 구성에 실제로 영향을 미치는 변경 내용만 전파 시에 고려된다는 점입니다. 예를 들어 변경 패키지를 사용하여 새 개정을 아카이브에 체크 인할 수 있고, 이때 이러한 새 개정이 프로젝트의 멤버 개정을 업데이트하지 않아야 한다는 것을 지정할 수 있습니다. 이 변경 패키지를 대상으로 전파할 경우, 엔트리가 소스 프로젝트의 멤버 구성을 업데이트하지 않기 때문에 엔트리는 명령에 의해 무시됩니다.
가상 버킷으로 그룹화된 순 변경 내용
Windchill RV&S에서는 전파될 변경 패키지(사용자가 명시적으로 지정한 변경 내용 및 백필에서 선택하기 위해 사용자가 지정한 변경 내용 포함)의 목록에서 발견하는 각 멤버 또는 하위 프로젝트에 대해 내부적으로 가상 버킷을 생성하여 순 변경 내용을 처리합니다. Windchill RV&S에서는 변경 패키지에 있는 변경 패키지 엔트리 모두를 원래의 발생 순서에 따라 한 번에 하나씩 검사한 후, 엔트리를 적절한 버킷에 추가합니다. 변경 내용은 다음과 같은 방식으로 그룹화됩니다.
멤버의 경우, 버킷 기본 식별자는 저장소에 있는 멤버 아카이브의 위치입니다.
하위 프로젝트의 경우, 버킷 기본 식별자는 저장소에 있는 하위 프로젝트의 기반 프로젝트의 정식 위치입니다.
이동되어 이름이 변경된 멤버 및 하위 프로젝트의 경우, 버킷은 이동되거나 이름이 변경되는 멤버 또는 하위 프로젝트의 이전 및 새 위치와 이름 모두를 추적합니다.
Windchill RV&S가 소스 프로젝트 트리에서 대상 프로젝트 트리로 변경 내용을 전파할 수 있으려면, Windchill RV&S에서 각 소스 멤버 또는 하위 프로젝트에 대해 상응하는 대상 멤버 또는 하위 프로젝트를 찾아내야 하고 필요하면 추가하거나 생성해야 합니다.
하위 프로젝트의 경우, 대상에서 하위 프로젝트가 누락된 것으로 Windchill RV&S가 판단하면 전파될 순 변경 내용을 계산하는 초기 단계 중에 해당하는 파생 하위 프로젝트가 대상에서 즉시 생성됩니다(그렇게 해야 한다는 메시지가 사용자에게 미리 표시되지 않으며 계속해도 좋을지 묻지도 않음). 이 방식으로 생성된 파생 하위 프로젝트는 나중에 전파를 취소하기로 결정하는 경우에도 대상 계층 구조에 계속 남게 됩니다. 이는 사용자가 이해하고 있어야 하는 Windchill RV&S의 제한 사항입니다. 대상 프로젝트 트리의 다른 모든 변경 내용은 수행될 순 변경 내용 세트를 검사할 기회가 사용자에게 있었고 사용자가 전파를 계속 진행하는 데 동의하는 경우에만 커밋됩니다.