콘텐츠로 이동

내장 git

Restorm 프로젝트는 git 저장소 안에서 살아가도록 만들어졌습니다. 이 통합은 단순한 git commit 보다 한 걸음 더 나아갑니다. 형식을 이해하기 때문에 YAML의 줄이 아니라 업무 엔터티 수준에서 충돌을 해결할 수 있습니다.

설정할 것은 없습니다. 열려 있는 .restorm 파일이 git 저장소 안에 있으면 그 즉시 git 관련 화면이 활성화됩니다.

Restorm은 로컬에 설치된 git 을 사용합니다. 인증 정보를 입력할 필요도, 애플리케이션 안에서 토큰을 관리할 필요도 없습니다. 규칙은 단순합니다 — 터미널에서 git push 가 동작한다면 Restorm에서도 동작합니다. git은 프롬프트를 끈 상태로 실행되므로, 비밀번호를 요구하는 저장소는 인터페이스를 붙잡아 두는 대신 git의 메시지와 함께 즉시 실패합니다.

푸시 두 버튼이 있고, 보낼 것이 있거나 받아 올 더 새로운 버전이 있을 때 각 버튼에 점 표시(숫자가 아니라 언제나 점 하나)가 붙습니다.

타이틀 바의 Git 메뉴에서도 같은 동작을 할 수 있으며, 여기에는 새로 고침, 서버 버전으로 재설정, 기록이 더해집니다.

상태 바의 GIT 셀: 새로 고침, 푸시, 풀 순서로 놓이고 뒤의 두 버튼에는 점 표시가 붙어 있으며, 그다음에 기록이 있습니다. “저장소에 푸시” 툴팁이 열려 있습니다.

푸시 모달에는 미리 작성된 커밋 메시지가 표시되며, 이 메시지는 구조적 diff에서 결정적으로 생성됩니다. 언어 모델은 쓰이지 않습니다. 변경된 엔터티(요청, 시나리오, 폴더, 변수 폴더)마다 한 줄이며, 필드마다 한 줄이 되는 일은 없습니다.

  • 인터페이스의 언어와 무관한 메시지 언어 선택기가 있고, 이를 기본값으로 삼는 스위치가 함께 있습니다.
  • 72 자 기준의 참고용 카운터가 붙은, 편집할 수 있는 제목.
  • 여러 줄을 쓸 수 있는 본문.

확인하면 저장, git add, 커밋, 푸시가 차례로 진행됩니다.

Restorm은 먼저 저장하고, 그다음 받아 와서 병합합니다.

깔끔한 병합: 트리와 열려 있는 탭들이 그 자리에서 새로 고쳐집니다.

충돌: 네 개의 패널로 된 해결 화면이 열립니다.

네 패널로 된 충돌 해결 화면: 왼쪽에 충돌 목록, 내 버전, 서버 버전 — 서로 다른 URL은 빨간 테두리로 표시됩니다 — 그리고 내 버전을 택한 뒤 채워진 “해결됨” 패널.

패널내용
충돌 목록충돌이 일어난 엔터티
내 버전읽기 전용
상대 버전읽기 전용
해결됨편집 가능 — 실제로 기록될 내용입니다

중요한 점은 이것입니다. 각 패널이 엔터티를 그 본래의 편집기로 보여 줍니다 — HTTP 요청은 HTTP 편집기로, 시나리오는 시나리오 편집기로 말입니다. YAML 안의 <<<<<<< 표시를 해결하는 것이 아니라, 두 요청을 비교하는 것입니다.

양쪽마다 “이 버전 사용” 버튼이 있고, 서로 다른 필드는 빨간색으로 강조됩니다. 다른 필드가 하나뿐이면 패널이 바로 그 탭에서 열립니다.

변수 폴더의 API 문서는 자동으로 해결됩니다(더 새로운 버전이 이깁니다).

취소git merge --abort 를 실행합니다. 해결 중에 애플리케이션을 닫으면 다음 실행 때 병합을 중단할지 물어봅니다.

Restorm은 더 새로운 버전이 있는지 주기적으로 확인하지만, 혼자서 병합하는 일은 결코 없습니다. 세 가지 계기가 있습니다. .git 에서 관찰된 변경, 파일 열기, 그리고 설정 ▸ Git에서 빈도를 조정하는 타이머(Off, 15 분, 30 분, 1 시간, 4 시간, 12 시간, 24 시간)입니다.

그러면 “업데이트 사용 가능” 알림이 지금 풀을 제안합니다.

파일을 연 뒤 디스크에서 내용이 바뀌었다면 저장이 거부되고, Restorm은 다시 불러오기내 버전 유지 중 무엇을 할지 묻습니다.

프로젝트와 .restorm 파일에서 설명한 형식의 두 가지 속성 때문입니다. 정규화된 키 순서안정적으로 도출되는 식별자입니다.

그 결과, 아무것도 바꾸지 않고 열었다가 다시 저장해도 diff가 생기지 않으며, 두 사람이 같은 위치에 같은 요청을 추가하면 병합이 짝지을 수 있는 엔터티가 만들어집니다.

Git ▸ 기록은 두 개의 패널로 된 화면을 엽니다. 왼쪽에는 브랜치 선이 그려진 여백과 함께 커밋 목록이, 오른쪽에는 상세 내용이 표시됩니다. 커밋의 컨텍스트 메뉴에서 그 버전을 가져올 수 있습니다.

Pro 에디션에서 네 가지 도구를 쓸 수 있습니다. git_commit_push(2 단계 중 1 단계 — 검토 토큰, 제목, 본문, 엔터티별 diff를 반환하며 아무것도 기록하지 않습니다), git_confirm_push(2 단계 중 2 단계 — 검토 이후 프로젝트가 변경되었다면 거부됩니다), git_pull, git_resolve_conflicts 입니다.

두 단계로 나눈 것은 의도적입니다. 에이전트는 diff를 먼저 제시하지 않고서는 푸시할 수 없습니다.