Git과 팀
Git으로 작업 공간을 공유하고, 변경 사항을 작은 diff로 검토하며, 비밀 값과 개인 설정은 저장소 밖에 둡니다.
작업 공간은 Git에 보관하도록 작성된 텍스트 파일의 폴더입니다. 요청마다 파일 하나, 같은 내용이면 같은 바이트, 비공개 내용은 없습니다. 커밋하고 푸시하면 팀이 같은 요청으로 작업하며, 각자 자신의 자격 증명을 사용합니다.
diff를 위해 만든 파일
- 요청마다 파일 하나. 요청을 바꾸면 파일 하나가 바뀝니다. 요청을 추가하면 파일 하나가 추가됩니다.
- 결정적. Echolot은 같은 내용을 매번 같은 방식으로 기록합니다. 같은 키가 같은 순서로 놓이므로 변경 없이 저장하면 아무것도 바뀌지 않고, diff에는 사용자가 바꾼 것만 나타납니다.
- 읽기 쉬움. 요청은 TOML이며, 본문은 요청 옆에 별도 파일(
create-order.body.json)로, GraphQL 쿼리는.graphql로 놓이므로 이스케이프된 문자열이 아니라 JSON과 GraphQL로 diff가 나옵니다. - 순서는 폴더 파일에. 폴더 안 항목의 순서는 파일 이름이 아니라
_folder.toml의 목록이므로 순서를 바꾸면 한 줄만 바뀝니다. - 주석은 그대로 남습니다. 파일에 직접 쓴 주석(
# why this header)은 Echolot이 저장할 때 유지됩니다. 맨 위의 주석 블록, 키나 테이블 위의 주석, 값 뒤의 주석이 해당됩니다. 더 이상 존재하지 않는 키에 달린 주석은 삭제됩니다.
요청의 이름을 바꾸면 파일 이름과 그 옆의 본문 및 스크립트 파일 이름도 바뀝니다. 환경의 이름을 바꾸면 파일 이름은 유지됩니다.
커밋할 것
작업 공간 폴더 전체를 커밋하세요. 그 안에는 무시할 것이 없습니다. Echolot은 비밀 값, 기록, 응답 본문, 개인 설정을 그 안에 절대 기록하지 않습니다.
| 작업 공간에 있음(공유됨) | 이 Mac에만 있음(공유되지 않음) |
|---|---|
| 요청, 폴더, 순서, 문서, 인증, 스크립트 | 키체인에 있는 비밀 값 |
| 변수와 그 비밀이 아닌 값 | 전역 변수 |
| 환경과 보호된 환경 여부 | 활성 환경 |
| MCP 서버, 명세, 모의 서버, 플로 | 기록과 응답 본문 |
| 작업 공간의 에이전트 규칙, 프록시, 인증서 | 패널 레이아웃과 기타 앱 설정 |
| 공유하기로 선택한 어시스턴트 대화 | 신뢰한 스크립트와 에이전트 규칙 |
workspace.toml의 작업 공간 ID는 그대로 두세요. Echolot은 이 ID로 각 사용자의 비밀 값을 찾습니다.
비밀 변수를 거치지 않고 필드에 직접 입력한 값은 그대로 파일에 기록됩니다. Echolot은 그런 값이 들어 있는 인증과 프록시 필드 아래에 (작업 공간 파일에 일반 텍스트로 저장됩니다.) 경고를 표시합니다. 커밋하기 전에 키체인으로 이동을 클릭하세요. 비밀 값을 참조하세요.
공유 시작하기
- 작업 공간을 Git 저장소에 넣습니다.
.echolot폴더 안에 저장소를 만들거나, 작업 공간을 프로젝트 저장소 안의 폴더로 둡니다.workspace.toml이 있는 폴더는 모두 Echolot에서 열립니다. - 커밋하고 푸시합니다.
- 팀원이 저장소를 클론하고 파일 › 작업 공간 열기…로 작업 공간을 엽니다.
- 팀원은 각자 자신의 Mac에서 비밀 값을 한 번 설정합니다. 환경 페이지에는 각 비밀 값에 이 Mac에 설정되지 않음이 표시됩니다.
명령줄 도구도 같은 파일을 읽으므로 CI가 커밋한 요청을 실행합니다. CI에서 테스트하기를 참조하세요.
Git, 편집기, 에이전트가 만든 변경
Echolot은 작업 공간 폴더를 감시합니다. Echolot 밖에서 파일이 바뀌면(git pull, 브랜치 전환, 편집기, 에이전트) 윈도우가 다시 불러옵니다.
사이드바, 열려 있는 요청, 환경, 명세, 모의 서버, 플로가 즉시 따라갑니다.
저장되지 않은 편집이 없는 열린 요청은 질문 없이 새 버전을 받습니다.
탭에 저장되지 않은 편집이 있는 요청은 Echolot이 어느 쪽도 고르지 않습니다. 요청 위에 막대가 나타나 디스크에서 이 요청이 변경되었습니다, “저장하지 않은 편집 내용이 있는 동안 다른 앱이나 Git이 파일을 변경했습니다.”라고 알려 줍니다.
- 내 변경 사항 유지는 탭의 편집 내용을 유지하고 파일에 덮어씁니다.
- 디스크 버전 사용은 탭의 편집 내용을 버리고 디스크의 파일을 불러옵니다.
선택하기 전까지 Echolot은 그 요청을 저장하지 않으므로 디스크의 변경은 그대로 남습니다.
충돌 중에 탭 닫기
선택하기 전에 탭을 닫으면 Echolot이 저장하지 않은 편집 내용이 있는 동안 디스크에서 “Create order”이(가) 변경되었습니다라고 묻고, “탭을 닫으면 한 가지 버전만 남습니다.”라고 안내합니다. 내 변경 사항 유지, 디스크 버전 사용, 또는 탭을 열어 두는 취소를 선택하세요. 충돌이 해결되지 않은 상태에서 윈도우를 닫거나 종료하면 편집을 저장할 수 없다고 알려 주고 버리기 전에 먼저 묻습니다. 어느 쪽 버전도 사용자의 동의 없이 사라지지 않습니다.
병합 충돌
Git 병합 충돌은 다른 텍스트 파일과 마찬가지로 편집기나 Git 도구에서 해결하세요. 충돌 표시가 남아 있는 파일은 올바른 TOML이 아닙니다. 파일을 읽을 수 없는 동안 열려 있는 윈도우는 이전에 읽은 내용을 유지하며, 작업 공간을 새로 열면 환영 윈도우에 해당 파일의 이름과 함께 “…을(를) 읽을 수 없었습니다”라는 메시지가 표시되며 실패합니다. 파일을 고치면 작업 공간을 다시 읽을 수 있습니다.
Git에서 온 스크립트와 에이전트 규칙
스크립트는 요청을 보내고 작업 공간의 변수를 읽을 수 있으므로, Echolot은 사용자가 이 Mac에서 신뢰한 스크립트만 실행합니다. Echolot에서 직접 작성한 스크립트는 신뢰됩니다. Git, 가져오기, 다른 편집기를 통해 들어왔거나 거기서 코드가 바뀐 스크립트에는 내용을 읽고 스크립트 신뢰를 클릭할 때까지 Echolot 외부에서 온 스크립트입니다라고 표시됩니다. 스크립트와 테스트를 참조하세요.
작업 공간의 에이전트 규칙도 마찬가지입니다. 파일에서 온 규칙 중 에이전트가 할 수 있는 일을 더 제한하는 규칙은 즉시 적용되고, 더 느슨하게 하는 규칙은 사용자가 이 Mac에서 그 버전을 신뢰한 뒤에만 적용됩니다. 에이전트를 참조하세요.
Git 없이 공유
Git을 쓰지 않는 사람에게 작업 공간을 넘기려면 Echolot 작업 공간으로 내보내세요. 사본은 새 ID를 받으므로 비밀 값이 사용자의 것과 분리되며, 비밀 값은 사본에 절대 기록되지 않습니다.
Finder에서 작업 공간 폴더를 복사하면 ID가 그대로 유지됩니다. 같은 Mac에서는 사본과 원본이 키체인에서 같은 비밀 값을 읽습니다.