2023. 4. 17. 23:05ㆍ코딩/Perfoce
perforce - Librarian checkout error prevents from sync - Stack Overflow
Librarian checkout error prevents from sync
P4 calls "Librarian checkout" issues on folders (and files in it) that are not present in the depot tree BUT present on the perforce server - in from of empty folders. If I try to obliterate (files...
stackoverflow.com
사서 체크 아웃 [파일 경로] 실패 | 매트 온켄 (pandaros.com)
Perforce Librarian checkout [path to file] failed | Matt Onken
Perforce Librarian checkout [path to file] failed The following article is meant to assist you in fixing a specific problem. Data will be removed if you follow the instructions. I provide no warranty so follow these instructions at your own risk. I always
www.pandaros.com
[p4] Librarian checkout error (narkive.com)
[p4] Librarian checkout error
Discussion: [p4] Librarian checkout error
perforce-user.perforce.narkive.com
[p4] what is a "librarian checkout"? (narkive.com)
[p4] what is a "librarian checkout"?
Discussion: [p4] what is a "librarian checkout"?
perforce-user.perforce.narkive.com
1. 퍼포스 Librarian checkout error 뜻 설명
**퍼포스(Librarian checkout error in Perforce)**는 주로 디포(Depot) 트리에서 파일이 사라지거나 서버에서 해당 파일을 찾을 수 없을 때 발생하는 오류입니다. 퍼포스를 사용하는 개발자나 팀이 이 에러를 만나게 되면 파일을 정상적으로 체크아웃(Checkout)하거나 동기화(Sync)하는 데 문제가 발생할 수 있습니다.
이러한 오류는 특히 다음과 같은 상황에서 발생할 수 있습니다:
- 퍼포스의 디포 트리와 실제 서버 파일 간 불일치
- 서버 데이터에서 특정 파일이 의도치 않게 삭제됨
- 파일이 손상되거나 서버에서 정상적으로 읽어올 수 없는 상태
- 인코딩 문제로 인해 예상치 못한 파일명 변경
2. 퍼포스 Librarian checkout error 원인 분석
2.1 디포 트리와 서버 파일 간 불일치
퍼포스 서버는 클라이언트의 요청을 받아 디포(Depot)에서 파일을 가져오고 관리합니다. 하지만 특정 파일이 서버에서 사라지거나 손상될 경우, 퍼포스는 해당 파일을 체크아웃하거나 동기화할 수 없으며, Librarian checkout error in Perforce가 발생합니다.
2.2 실험을 통한 원인 확인
실험적으로 서버 데이터에서 특정 파일(test1)의 최신 데이터를 삭제한 후, 퍼포스에서 접근을 시도하면 Librarian checkout error가 발생하는 것을 확인할 수 있었습니다. 이는 해당 파일이 서버에서 존재하지 않거나 완전히 삭제되었기 때문입니다.
추가적으로, 파일을 완전히 삭제(obligate) 후 다시 퍼포스에서 접근할 경우 오류가 해결되는 것이 확인되었습니다. 하지만 이렇게 하면 해당 파일의 복구가 불가능하므로, 사전에 백업을 준비하는 것이 중요합니다.
2.3 인코딩 문제로 인한 오류 발생
퍼포스에서 파일명을 처리하는 과정에서 인코딩 문제가 발생할 경우, 특정 파일명이 변형될 수 있습니다. 예를 들어, UTF-8과 같은 유니코드 변환 과정에서 더밎 → 더밿처럼 파일명이 변경되면서 접근할 수 없는 상황이 발생할 수 있습니다. 이 경우, 원본 파일명을 복구하거나 인코딩 설정을 수정해야 합니다.
3. 퍼포스 Librarian checkout error 해결 방법
3.1 해결 방법 1: 서버에서 파일을 완전 삭제 후 재등록
- 서버에서 문제가 발생한 파일을 완전히 삭제(obligate)
- 이후 동일한 파일을 다시 퍼포스에 새롭게 add
- 하지만 이 방법은 해당 파일을 복구할 수 없으므로, 백업이 필수
3.2 해결 방법 2: 파일을 복구 후 다시 시도
- 파일이 삭제된 이유를 파악한 후, 해당 파일을 복구
- 복구된 파일을 기존 디포에 다시 등록하고 체크아웃 진행
- 실험 결과, 이 방법으로도 오류가 해결됨을 확인
3.3 해결 방법 3: 마지막으로 Submit한 클라이언트에서 Checkout 및 Submit 수행
- 가장 마지막으로 해당 파일을 Submit한 클라이언트에서 수정 없이 Checkout 후 Submit 진행
- 이 작업을 통해 해당 파일의 새로운 리비전(d,2)이 생성되며, 이후 sync 가능
- 하지만 Undo, diff 등의 기능을 사용할 수 없음
4. 백업 및 예방 조치
퍼포스에서 Librarian checkout error와 같은 문제가 발생하지 않도록 사전에 다음과 같은 예방 조치를 취할 수 있습니다.
- 정기적인 백업 수행: 중요한 파일은 정기적으로 백업하여 서버에서 삭제되거나 손상되었을 때 복구할 수 있도록 대비
- 파일 삭제 시 신중한 검토: 서버에서 파일을 삭제할 때, 의도치 않은 오류를 방지하기 위해 검토 후 실행
- 퍼포스의 인코딩 설정 확인: 유니코드 변환 등의 문제로 인해 파일명이 변형되지 않도록 퍼포스 클라이언트 및 서버의 인코딩 설정을 점검
- 파일을 Submit하기 전 철저한 테스트: 새로운 리비전을 생성할 때, 예상치 못한 문제가 발생하지 않도록 충분한 테스트 진행
5. 결론
퍼포스에서 발생하는 Librarian checkout error in Perforce는 주로 디포 트리와 실제 서버 간의 불일치로 인해 발생합니다. 서버에서 파일이 삭제되었거나 손상되었을 때 오류가 발생할 수 있으며, 이 문제를 해결하려면 완전 삭제 후 새로 추가하거나, 파일을 복구하여 다시 등록하는 방법을 사용할 수 있습니다.
또한, 인코딩 문제로 인해 파일명이 변형되는 경우도 발생할 수 있으므로, 퍼포스의 인코딩 설정을 점검하고 사전에 백업을 수행하는 것이 중요합니다. 이러한 조치를 통해 퍼포스에서 발생하는 오류를 최소화하고, 원활한 개발 환경을 유지할 수 있습니다.
퍼포스의 디포 트리 ↔︎ 퍼포스 진짜 서버의 파일이 없어 졌을 때 발생
실험: 서버 데이터의 test1의 최신 데이터 삭제 후 진행


문제 발생 확인
- 해결 방법
→ 해당 파일 obiligate (서버 파일 완전 삭제) : 해결 확인
하지만 파일을 복구 할 수 없음 - 파일을 가지고 있는 사람이 백업을 해두고 완전 삭제 + 새로 add 하는 해결 방안 고려
해결 방법2
- 파일이 삭제된 모종의 이유를 찾고 해당 파일을 복구 - 해결 실험으로 확인
해결 방법3
- 가장 마지막에 해당 파일(의 마지막 리비전을 가지고 있는)을 Submit 한 클라이언트가 파일을 수정하지 않고 Checkout - Submit 진행 → 해당 파일의 d,2( 다음 넘버) 생성 되면서 sync는 가능 / 다만 해당 리비전으로 Undo, diff 등 수정 내역 확인 등은 불가
백업 방안 고려 (테스트 진행)
- 실제 이슈 발생 내역
더밎 → 인코딩으로 더밿 으로 서브밋 이슈 발생
- 추정 원인 : 유니 코드 모드 변환
퍼포스 에러 Librarian checkout error in Perforce 해결 방법 원인 뜻 설명
'코딩 > Perfoce' 카테고리의 다른 글
퍼포스 비교: 엑셀 diff 설정 방법 ExcelMerge (P4V: Perforce Diff Excel xlsx) (0) | 2024.01.04 |
---|---|
퍼포스 유니티 플러그인 설명 (Perforce Unity Plugin) (0) | 2023.04.04 |
퍼포스 서버 초기 세팅 시 디포가 스트림 형식이 아닐 때 (Perforce how to make Stream type Depot) (0) | 2023.04.02 |
퍼포스 머지 후 전체 히스토리 보기 (P4V: Perforce All History) (0) | 2023.03.29 |
p4transfer 이스케이핑 버그 (p4transfer escaping bug) (0) | 2023.03.29 |