TOPO SNAP · DRAWING SET HISTORY

TopoGit을 이해하고 사용하기

Git의 핵심 개념을 건축 도면 작업에 맞게 정리했습니다. 여러 설계안을 안전하게 기록하고, 필요할 때 과거 결정을 다시 확인하는 방법입니다.

1. Git이란 무엇인가?

Git은 파일의 변경 이력을 Commit(버전)으로 기록하고, Branch(분기)를 통해 서로 다른 작업 방향을 관리하는 버전 관리 시스템입니다.

TopoGit은 이 사고방식을 CAD 도면 세트에 적용한 TopoSnap 고유의 버전 관리 기능입니다. 명령줄 Git이 아니며, Git 저장소·원격 서비스와 자동 연동하지 않습니다. 도면을 편집하는 것은 기존 CAD 도구이고, TopoGit은 사용자가 승인한 시점의 파일 구성을 별도 스냅샷으로 남깁니다.

평면도 A 작성→Commit 01→설계 변경→Commit 02→대안 Branch 생성
Linux X11에서 실제 실행한 TopoGit: 왼쪽 Repository 메뉴, 중앙 CAD 캔버스, 오른쪽 가이드
실제 Linux X11 QHD 실행 캡처. 왼쪽 버전 관리, 중앙 CAD 작업 영역, 오른쪽 안내 영역. 이 QA 화면은 테스트용 빈 도면이며 Commit 이력을 생성한 화면은 아닙니다.

2. 어떻게 사용하는가?

① 도면 저장TopoSnap에서 DWG·DXF·TSBIN 도면을 먼저 저장합니다. 아직 저장하지 않은 도면으로는 Repository를 만들 수 없습니다.
② Repository 만들기우측 상단 TopoGit을 눌러 Repository → Create / Open을 실행합니다. 현재 도면 폴더가 버전 관리 범위가 됩니다.
③ Commit 기록도면 변경을 저장한 뒤 History → Commit에서 변경 내용을 짧게 작성합니다. 예: 1층 코어 변경. 자동저장은 Commit을 대신하지 않습니다.
④ Branch 생성Branches → Create Branch에서 Alternative_A처럼 분기 이름을 지정합니다. 각기 다른 설계 대안을 구분해 기록하는 출발점입니다.

현재 V1.5.16 기능 범위: Repository 생성, 명시적 Commit, Branch 생성과 파일 수준 변경 조회가 동작합니다. Branch Checkout(전환), 과거 Commit MVIEW 동시 비교, CAD 객체 단위 Visual Diff, 승인형 Restore, Binder GUI 편집은 아직 연결되지 않았습니다. 생성한 Branch로 자동 전환되거나 도면이 자동 복사되지 않습니다.

TopoGit의 Repository 선택 상태 및 안내 패널 실제 X11 화면
실제 Linux X11 실행 캡처. 좌측 Repository 메뉴와 우측 안내 영역. 현재 상태 안내는 파일 단위 버전 관리의 첫 진입점입니다.

간단한 사용 시나리오

가상 예시: 학교 건물 평면도를 저장하고 기준 평면 확정 Commit을 기록합니다. 이후 Alternative_A Branch를 만들고, 현재 버전 관리 코어에서 독립적으로 설계 대안을 관리할 준비를 합니다. 실제 Branch 전환과 작업 파일 덮어쓰기는 여전히 차단되어 있습니다. 과거 Commit은 새 폴더로 추출해 따로 확인할 수 있습니다.

V1.5.16 — 변경 상태·무결성·스냅샷 추출

TopoGit 명령은 Windows와 Linux 공통입니다. 프로젝트 도면을 먼저 저장한 뒤 GITINIT으로 현재 도면 폴더의 저장소를 연결합니다.

명령동작
GITSTATUS마지막 Commit과 디스크에 저장된 도면 파일을 비교하여 변경 파일 개수를 표시합니다. 아직 저장하지 않은 GUI 편집 상태는 포함하지 않습니다.
GITVERIFY현재 브랜치 HEAD의 전체 조상 Commit과 스냅샷 Blob을 해시로 검증합니다.
GITEXPORT HEAD "/home/user/Version-01"HEAD의 도면 묶음을 별도 폴더로 추출합니다. 대상 폴더가 이미 있거나 현재 프로젝트 내부라면 거부합니다.
GITEXPORT <전체 Commit ID> "X:\Archive\Version 01"특정 Commit에서 도면을 읽어 새 폴더로 추출합니다. 공백이 있는 폴더는 큰따옴표로 묶습니다.

추적 확장자에 .3dm과 .tsplot이 추가되었습니다. 과거 Commit 내용은 변경하지 않으며 다음 Commit부터 포함됩니다.

중요: GITEXPORT는 원본 도면을 자동 덮어쓰지 않습니다. Branch Checkout, 자동 병합, Binder의 GUI 편집, 2D 객체 단위 Visual Diff는 아직 완성되지 않았습니다. 추출 폴더를 작업 프로젝트와 동일시하지 마세요.

3. 어떤 장점이 있는가?

변경 이력언제 어떤 도면 상태를 확정했는지 Commit 메시지와 불변 스냅샷으로 추적합니다.
대안 구분최종안과 구조 변경안처럼 서로 다른 설계 방향을 Branch로 구분합니다. 자동 병합하지 않습니다.
납품 재현성Drawing Binder의 코어는 시트를 특정 Commit에 고정하는 Manifest를 다룹니다. GUI 편집·출력까지 완성된 상태는 아닙니다.
자동저장과 역할 분담Autosave는 장애 복구용 임시 사본, Commit은 사용자가 의미 있게 확정한 설계 기록입니다.
TopoGit을 닫은 상태의 일반 TopoSnap CAD 작업 공간 실제 Linux QHD 캡처
실제 Linux X11 QHD 캡처. 일반 CAD 화면으로 돌아와도 버전 저장소는 독립적으로 유지됩니다. 이 이미지는 도면 내용 비교 결과가 아닙니다.

4. 용어 간단 정리

용어뜻TopoGit 동작
Repository도면 세트의 이력 보관함현재 폴더 기준으로 생성
Commit사용자가 확정한 버전 기록명시적 승인으로 생성
Branch별도 설계 흐름이름과 분기 참조 생성, Checkout은 미지원
History저장된 Commit의 시간순 내역파일 단위 이력 표시
Compare / Diff두 버전 사이의 차이점 비교파일 비교 코어만 구현, MVIEW Visual Diff 미연결
Restore과거 상태 복구GUI 복원 비활성화

자동 병합은 제공하지 않습니다. TopoGit은 설계안을 선택하는 도구가 아닙니다. 현재 작업 중인 파일을 묵시적으로 덮어쓰거나 다른 Branch의 변경을 자동 적용하지 않습니다.