롤백
AI 작업 중 작업 공간 파일을 자동으로 버전 관리합니다. AI 제안을 안전하게 살펴보고 변경 사항을 실험하면서도 원치 않는 변경 사항에서 쉽게 복구할 수 있습니다.
롤백이란
롤백을 사용하면:
- AI가 제안한 변경 사항을 안전하게 실험할 수 있습니다
- 원치 않는 수정 사항에서 쉽게 복구할 수 있습니다
- 다양한 구현 방식을 비교할 수 있습니다
- 작업을 잃지 않고 이전 프로젝트 상태로 되돌릴 수 있습니다
롤백 작동 방식
Bob은 메인 버전 관리 시스템과 별도로 작업 실행 중 파일의 스냅샷을 캡처합니다. 이 스냅샷은 파일 수정 전에 자동으로 생성되어 원치 않는 변경 사항을 언제든지 취소할 수 있습니다.
스냅샷은 작업이 시작될 때와 파일 수정 전에 기록됩니다.
롤백 사용하기
롤백은 채팅 인터페이스를 통해 워크플로우에 직접 통합되어 채팅 기록에 바로 표시됩니다. 스냅샷은 파일 수정 전에 생성되어 모든 변경 사항을 쉽게 취소할 수 있습니다.
각 스냅샷은 채팅 기록과 롤백 메뉴 모두에서 항상 사용 가능한 두 가지 주요 기능을 제공합니다:
차이점 보기
작업 내에서 어떤 파일이 변경되었는지 확인하려면:
- Bob이 파일을 편집한 후 변경된 파일 뷰가 접힌 상태로 나타납니다.
- 클릭하여 펼칠 수 있습니다.
- 뷰에서 차이점을 검토합니다:
- 모두 표시를 사용하여 작업의 모든 변경된 파일 보기
- 특정 파일을 클릭하여 변경 사항 확인
스냅샷 복원하기
복원 옵션은 변경 사항이 감지되었는지 여부와 관계없이 롤백 버튼과 다이얼로그에 항상 표시됩니다. 이를 통해 언제든지 어떤 상태로든 되돌릴 수 있습니다.
프로젝트를 이전 상태로 복원하려면:
- 사용자 메시지 위에 마우스를 올리고 롤백 버튼을 사용합니다. 그러면 변경된 파일이 해당 메시지 이전 상태로 복원됩니다.
- 변경된 파일 뷰의 개별 파일에서 롤백 버튼을 클릭합니다. 이를 통해 Bob에게 파일을 되돌렸음을 알립니다.
제한 사항
- 범위: 롤백은 활성 Bob 작업 중에 변경된 사항만 캡처합니다.
- 외부 변경: 작업 외부에서 변경된 사항(수동 편집, 다른 도구)은 포함되지 않습니다.
- 대용량 파일: 매우 큰 바이너리 파일은 성능에 영향을 줄 수 있습니다.
- 저장되지 않은 작업: 복원하면 작업 공간의 저장되지 않은 변경 사항이 덮어씌워집니다.
- 타이밍: 스냅샷은 변경 사항이 적용되기 전에 생성되어 모든 수정에 대한 안전망을 제공합니다.
- 메모리 사용량: 스냅샷은 시간이 지남에 따라 누적되며, 특히 대규모 프로젝트나 장시간 실행되는 작업의 경우 상당한 메모리를 소비할 수 있습니다. 스냅샷이 있는 오래된 작업이 많은 경우 메모리를 확보하기 위해 주기적으로 정리하는 것을 고려하세요. 오래된 작업 대화를 삭제하면 관련 스냅샷도 제거됩니다.
기술적 구현
롤백 아키텍처
롤백 시스템은 다음으로 구성됩니다:
- 롤백 서비스: 다음을 통해 파일 작업과 상태 관리를 처리합니다:
- 스냅샷 생성 및 저장
- 차이점 계산
- 상태 복원
- UI 컴포넌트: 채팅에 표시되어 롤백과의 상호 작용을 가능하게 하는 인터페이스 요소.
복원 프로세스
복원이 실행되면 Bob은:
- 특정 작업의 지정된 시간으로 리셋을 완료합니다.
- 내부 롤백 추적 상태를 업데이트합니다.
스토리지 유형
롤백은 작업 범위로, 각 스냅샷이 단일 작업에 고유합니다.
차이점 계산
롤백 비교는 Git의 기본 차이점 기능을 사용하여 구조화된 파일 차이점을 생성합니다:
- 수정된 파일은 줄별 변경 사항을 표시합니다.
- 바이너리 파일은 적절히 감지되고 처리됩니다.
- 이름 변경 감지가 제한될 수 있습니다; 차이점은 스냅샷 간 파일 콘텐츠 변경에 집중합니다.
- 파일 생성 및 삭제가 명확히 식별됩니다.
파일 제외 및 무시 패턴
롤백 시스템은 관련 파일만 추적하기 위해 지능적인 파일 제외를 사용합니다.
기본 제외 항목
시스템에는 자동으로 무시하는 기본 제외 패턴이 있습니다:
- 빌드 아티팩트 및 의존성 디렉터리 (
node_modules/,dist/,build/). - 미디어 파일 및 바이너리 에셋 (이미지, 동영상, 오디오).
- 캐시 및 임시 파일 (
.cache/,.tmp/,.bak). - 민감한 정보가 포함된 구성 파일 (
.env). - 대용량 데이터 파일 (아카이브, 실행 파일, 바이너리).
- 데이터베이스 파일 및 로그.
.gitignore 지원
롤백 시스템은 작업 공간의 .gitignore 패턴을 준수합니다:
.gitignore에 의해 제외된 파일은 스냅샷 생성을 트리거하지 않습니다.- 제외된 파일은 롤백 차이점에 표시되지 않습니다.
- 파일 변경 스테이징 시 표준 Git 무시 규칙이 적용됩니다.
.bobignore 동작
.bobignore 파일(AI의 파일 액세스를 제어함)은 롤백 추적과 별개입니다:
.bobignore에 의해 제외되었지만.gitignore에는 제외되지 않은 파일은 여전히 롤백에 의해 캡처됩니다.- AI가 접근할 수 없는 파일에 대한 변경 사항도 롤백을 통해 복원할 수 있습니다.
이 분리는 의도적입니다. .bobignore는 AI가 액세스할 수 있는 파일을 제한하는 것이지, 버전 기록을 위해 추적해야 하는 파일을 제한하는 것이 아닙니다.