모든 사용자는 평소처럼 Control FPWIN Pro7에서 개별 작업 복사본에 수정을 가합니다. 사용자가 필요에 따라 컴파일하고 다운로드하고 테스트합니다.
사용자가 Control FPWIN Pro7으로 오브젝트를 추가하거나 삭제하거나 이름을 바꿀 경우에는 작업 복사본에 몇 가지 수동 작업이 추가로 필요합니다.
작업 복사본의 폴더와 파일에서 직접 작업할 경우(예: 편집, 삭제, 생성, 붙여넣기, 이름 바꾸기) 작업 복사본과 프로젝트 또는 사용자 라이브러리가 손상될 수 있습니다!
작업 복사본에서는 바로가기 메뉴를 열 때 작업 복사본과 해당 리포지토리 간의 데이터 교환을 관리하는 외부 버전 관리 시스템의 명령만 사용해야 합니다!
모든 사용자는 파일 탐색기에서 폴더와 파일의 오버레이 아이콘을 볼 수 있습니다. 이 아이콘은 사용자가 프로젝트 또는 사용자 라이브러리 리포지토리에서 받았거나 프로젝트 또는 사용자 라이브러리 리포지토리로 커밋한 원본 수정본과 비교하여 로컬 오브젝트/파일/폴더의 변경 상태를 알려줍니다.
사용자는 프로젝트 또는 라이브러리 리포지토리에서 작업 복사본을 받거나(자신의 변경 내용을 병합하지 않음) 변경 사항을 커밋한 시점부터 언제든지 자신이 작업 복사본에 적용한 로컬 변경 내용(오브젝트 지향 또는 파일 지향)을 검사할 수 있습니다. 그리고 작업 복사본의 현재 상태를 해당 리포지토리에 있는 프로젝트나 라이브러리의 수정본과 비교할 수도 있습니다(프로젝트 또는 라이브러리 리포지토리에 있는 두 개의 수정본을 비교할 수도 있음).
사용자는 변경 내용을 해당 리포지토리에 커밋하기 전에 그 내용을 검사하고 다시 확인합니다.
사용자는 작업 복사본의 로컬 변경 내용을 오브젝트 수준이나 파일 수준에서(되돌릴 수 있는 가장 작은 단위는 파일), 부분적으로(하위 폴더 수준), 또는 전체적으로(전체 작업 복사본 폴더) 되돌려서 실행을 취소할 수 있습니다. 이 되돌리기는 열려 있는 프로젝트나 사용자 라이브러리에서도 자동으로 수행됩니다.
예를 들어, 한 명 이상의 다른 사용자가 새 오브젝트이거나 다른 곳에서 변경된 오브젝트를 필요로 하는 경우, 사용자는 자신의 개별 작업 복사본에 대한 변경 내용을 해당 리포지토리에 커밋합니다.
변경 내용을 최초로 커밋하는 사용자는 시스템의 쿼리 없이 변경 내용을 커밋할 수 있습니다.
변경 내용을 커밋하는 두 번째 사용자와 그 이후의 모든 사용자는 다른 사용자들이 동일한 오브젝트에 대해 변경한 내용이 그들의 (변경된) 오브젝트에 먼저 병합될 수 있도록, 자신의 변경 내용을 커밋하기 전에 먼저 작업 복사본을 업데이트해야 할 것입니다.
이 병합 프로세스는 작업 복사본이 해당 리포지토리에서 업데이트된 경우에만 수행됩니다. 병합에 성공하면 항상 프로젝트 파일의 해당 오브젝트가 완전히 치환됩니다. 병합에 성공하지 못한다면 동일한 오브젝트에 대해 변경 내용들이 서로 충돌하기 때문일 수 있습니다. 예를 들어, 두 사용자가 동일한 변수에 대해 서로 다른 두 개의 초기값을 사용했기 때문일 수 있습니다. 이 경우에는 이 충돌이 해결될 때까지 모든 사용자가 자신의 버전을 유지합니다. 충돌이 해결되지 않은 오브젝트와 파일들은 이 충돌이 해결될 때까지 작업 복사본 폴더에 남아있습니다.
병합을 자동으로 수행할 수 없는 경우에는 그에 따른 병합 충돌을 사용된 버전 관리 시스템의 도구와 메뉴를 통해 수동으로 해결해야 합니다.
프로젝트나 라이브러리 리포지토리에 커밋을 할 때마다 다른 사용자가 커밋된 변경 내용(변경 내용과 변경 이유, 오류 또는 작업 패키지 번호 등)을 이해하는 데 도움이 되는 설명 텍스트를 추가해야 합니다. 수정본 번호, 작성자, 날짜 및 시간이 자동으로 추가되며 언제든지 오브젝트의 로그 데이터(기록)를 사용하여 이것을 검사할 수 있습니다.
사용자는 언제든지 자신의 작업 복사본에서 프로젝트나 라이브러리 리포지토리에 있는 오브젝트/파일의 변경 기록을 검사하고 누가 무엇을, 언제, 왜 변경했는지 확인할 수 있습니다(변경 이유는 이전 커밋이 코멘트와 함께 수행되었는지 여부에 따라 결정됨).
모든 사용자는 해당 리포지토리에서 자신의 작업 복사본을 업데이트할 수 있습니다(예: 다른 사용자의 오브젝트 또는 변경 내용을 통합해야 하거나 통합하고자 하는 경우). 이 업데이트 과정에서 병합 충돌이 발생할 경우에는 사용된 버전 관리 시스템의 도구와 메뉴를 사용하여 직접 해결해야 합니다. 업데이트에 성공하거나 병합 충돌을 성공적으로 해결하고 나면 변경 내용이 다음과 같이 사용자의 작업 복사본에 자동으로 통합되어 병합됩니다.
프로젝트를 닫으면 중첩된 작업 복사본이 업데이트되고, 사용자가 다음 번에 프로젝트를 열 때 프로젝트와 사용자 라이브러리가 중첩된 작업 복사본에서 업데이트됩니다. 중첩된 작업 복사본은 버전 관리 사용자 라이브러리가 있는 프로젝트 파일의 (로컬) 마스터입니다!
프로젝트를 열면 그 프로젝트가 현재 에디터에 열려 있지 않는 한 변경된 모든 오브젝트가 자동으로 업데이트됩니다.
현재 에디터에 열려 있는 오브젝트는 그 변경 상태에 따라 업데이트됩니다.
변경되지 않는 오브젝트: 병합 프로세스가 에디터 창을 닫고 오브젝트를 업데이트합니다. 사용자가 이 오브젝트를 다시 열면 업데이트된 상태가 됩니다.
변경되는 오브젝트: 에디터의 현재 변경 사항을 무시할지 아니면 저장할지 여부를 사용자에게 묻는 메시지가 나타납니다. 현재의 변경 내용을 무시하면 에디터가 닫히고 오브젝트가 업데이트됩니다. 현재의 변경 사항을 저장하면 오브젝트가 업데이트되지 않습니다.
모든 사용자는 자신의 작업 복사본을 이전 버전으로 업데이트하거나 되돌려서 프로젝트나 라이브러리 리포지토리의 이전 수정본으로 되돌아갈 수 있습니다. 이것은 그들의 프로젝트나 라이브러리에도 자동으로 반영됩니다. 그러나 되돌려진 작업 복사본에 대한 변경 내용은 더 이상 사용되지 않는 수정본에 기초하므로 리포지토리에 커밋될 수 없습니다.