diff 리뷰
라우트 /thread/:id/diff. 스레드 헤더의 Review changes(변경 검토)로 들어옵니다.
이 화면의 모든 내용은 스레드 자체의 diff 이벤트에서 나오며, 파일당 한 행으로 접혀 있습니다. 왼쪽 목록은 파일이고, 오른쪽 패널은 변경 내용입니다.
승인과 거부는 대칭이 아닙니다
Approve(승인)는 장부 기록입니다. 변경은 이미 디스크에 반영되어 있습니다. 에이전트가 도구를 실행할 때 이미 파일을 썼기 때문입니다. 따라서 승인은 사람이 확인했다는 사실을 기록하고 다음 파일로 넘어가는 동작입니다.
Reject(거부)가 실제 작업입니다. core에는 되돌리기 명령이 없으므로, IDE가 직접 파일을 복원합니다. 이 스레드에서 해당 파일에 쌓인 패치를 역으로 적용하는 방식입니다. 각 훅(hunk)의 새 쪽을 파일에서 찾아 옛 쪽으로 다시 바꾸되, 훅 헤더를 기준으로 바깥쪽으로 탐색합니다. 앞선 훅이나 사람이 손으로 고친 편집 때문에 파일이 밀렸더라도 복원이 실패하지 않도록 하기 위해서입니다. 패치가 더 이상 맞지 않으면 파일은 그대로 두고, 어느 훅이 실패했는지를 화면에 알려줍니다. 추측으로 처리하지 않습니다.
이 쓰기는 파괴적이고 여기서 되돌릴 수 없기 때문에, Reject는 먼저 확인을 요구합니다. Approve는 그렇지 않습니다.
진단
언어 서버가 문제를 지적한 파일에는 목록에서 ⚠ N 칩이 붙습니다. 오류가 하나라도 있으면 빨간색, 경고만 있으면 노란색입니다. 숫자는 오류와 경고를 더한 값이며, 마우스를 올리면 각각 몇 개인지 알려 주고, 화면에 열려 있는 파일의 헤더에는 말로 적혀 있습니다.
이 칩은 무엇부터 읽을지를 바꾸기 위한 것입니다. 오류가 두 개 있는 파일은 바뀐 줄이 백 줄이지만 오류가 없는 파일보다 먼저 볼 값어치가 있고, 그 수치는 이 화면을 열 때가 아니라 에이전트가 일하는 동안 도착합니다.
칩이 없는 파일은 진단이 없는 파일입니다. 서버가 문제를 해소했거나, 애초에 그 언어를 담당하는 서버가 이 컴퓨터에 없거나 둘 중 하나입니다. 어느 쪽인지는 설정 → 도구 카드가 알려 줍니다.
진단 내용 자체 — 메시지와 줄 번호 — 는 스레드 쪽 도구 결과에 있습니다. 그 진단을 만들어 낸 쓰기가 출력 아래에 함께 보여 줍니다.
키보드
리뷰 화면은 키보드로 쓰는 화면입니다.
| 키 | 동작 |
|---|---|
j / k, ↓ / ↑ | 파일 목록 이동 |
a | 포커스된 파일 승인 |
r | 포커스된 파일 거부 |
Esc | 확인 대화 상자 닫기 |
헤더에는 남은 양이 표시됩니다. 파일이 몇 개인지, 몇 개가 승인되었고 몇 개가 거부되었는지입니다.
관련 화면
Open in Files(파일에서 열기)는 포커스된 경로를 파일 화면으로 보냅니다. 변경된 줄만이 아니라 파일 전체를 읽고 싶을 때 쓰는 방법입니다. Back to thread(스레드로 돌아가기)는 대화로 되돌아갑니다.