1P by GN⁺ | ★ favorite | 댓글 1개
  • Diversion은 클라우드 시대의 대규모 저장소와 협업을 겨냥한 버전 관리 시스템으로, 초기 사용자는 단순성과 확장성을 원하는 게임 개발자들임
  • Git은 2005년의 느린 네트워크·작은 프로젝트·클라우드 부재 환경에서 만들어져, 오늘날의 저장소·파일 크기와 동시 사용자 규모에서 한계가 있다고 봄
  • Google과 Meta의 자체 버전 관리 시스템, 일부 게임 개발·반도체·금융 서비스 기업의 SVN·Perforce 사용은 Git이 모든 조직에 맞지는 않다는 근거로 쓰임
  • Diversion은 분산 스토리지, 데이터베이스, REST API, 서버리스 클라우드 인프라 위에서 commit·branch·merge 같은 저장소 작업을 API 호출로 처리함
  • 현재 오픈 베타로 제공되며 소규모 팀은 무료로 시작할 수 있고, 속도 개선·CI 통합·IDE 및 게임 엔진 플러그인·사용성 개선이 진행 중임

Diversion이 겨냥하는 Git의 한계

  • Diversion은 diversion.dev에서 제공되는 클라우드 네이티브 버전 관리 시스템
    • 빠른 데모는 YouTube 영상으로 제공됨
    • 초기 사용자는 게임 개발자이며, 단순성과 확장성을 장점으로 봄
  • Git은 지난 18년 동안 소프트웨어 개발 발전에 큰 역할을 했지만, 2005년의 환경에 맞춰 만들어져 모든 사용자에게 완벽한 도구는 아님
  • 가장 큰 단점은 저장소 크기, 파일 크기, 동시 사용자 수에서 드러나는 제한된 확장성
    • Google과 Meta는 이 때문에 자체 버전 관리 시스템을 만들었음
    • 게임 개발, 반도체, 금융 서비스 분야의 일부 대기업은 SVN과 Perforce 같은 레거시 도구를 계속 사용함
  • Git의 복잡성도 실제 작업 손실로 이어질 수 있음
    • 이전 스타트업에서 데이터 과학자가 잘못된 Git 명령을 사용해 팀의 한 달치 작업을 잃은 사례가 있었음
    • 몇 시간 뒤 업데이트되지 않은 저장소 클론에서 복구할 수 있었음
  • 다만 Git의 브랜치와 머지 기능은 feature branch와 CI/CD 같은 현대적 개발 방식, 개발자 속도 향상에 크게 기여했음

클라우드 기반 작동 방식

  • Diversion은 Git의 브랜치 기능을 유지하면서도 더 쉽고 빠르며 확장 가능한 버전 관리 시스템을 목표로 함
  • 현대 클라우드 도구의 실시간 협업 개념을 버전 관리에 적용함
    • Google Docs와 Figma처럼 작업 중 상태를 공유할 수 있음
    • 개발자가 항상 작업 중인 내용을 공개하고 싶어 하지는 않지만, 커밋 전 피드백을 받거나 머지 충돌을 감지·방지하거나 다른 사람이 코드베이스의 어느 부분을 바꾸는지 확인하는 데 유용할 수 있음
  • 내부 구조는 분산 스토리지와 데이터베이스, REST API, 서버리스 클라우드 인프라 기반임
    • commit, branch, merge 등 모든 저장소 작업은 API 호출로 처리됨
    • 데스크톱 클라이언트는 커밋 전 작업 중 상태까지 클라우드에 실시간 동기화함
    • 사용자는 대화형 CLI, Web UI, IDE 플러그인으로 접근할 수 있음
    • 현재 IDE 플러그인은 JetBrains를 지원하며, 더 추가될 예정임
    • Web UI는 데스크톱 클라이언트를 설치하지 않아도 대부분의 기본 작업을 수행할 수 있음
  • Git과 호환되며 기존 Git 저장소와 동기화할 수 있음
    • Diversion의 새 커밋은 Git으로 들어가고, Git의 새 커밋도 Diversion으로 들어감

공개 계획과 베타 사용 조건

  • 코드베이스가 성숙하고 웹사이트에 오픈소스 저장소 디렉터리가 구현되면 오픈소스로 공개할 계획임
    • Diversion의 코드도 Diversion에서 관리됨
  • 현재 오픈 베타로 사용할 수 있으며, Get Started를 누르면 셀프서비스로 시작 가능함
    • 누군가와 대화할 필요 없이 사용할 수 있음
    • 소규모 팀에는 무료이며 가격 정보는 pricing에 있음
  • 진행 중인 개선 항목은 속도, CI 통합, IDE 및 게임 엔진 플러그인, 기타 사용성 개선임

댓글과 토론

Hacker News 의견
  • Cloud-Native Git Alternative

    • 클라우드 네이티브는 구현 세부사항이며, 새로운 버전 관리 시스템(VCS)을 서비스가 아닌 패키지 소프트웨어로 판매할 계획이 아니라면 중요하지 않음.
    • 클라우드 네이티브가 Git 사용자의 일상적인 문제를 어떻게 해결하는지 불분명함.
  • The biggest drawback of Git is its limited scalability

    • Git의 확장성 문제를 겪는 사용자 비율에 대한 궁금증.
    • 수백에서 수만 명의 엔지니어를 보유한 회사에서 근무했지만, 개인적으로 Git의 확장성 문제를 겪어본 적 없음.
    • 모노레포(monorepo) 사용이 확장성 문제를 일으킬 수 있으나, 모노레포 자체가 논란의 여지가 있음.
  • Diversion is built on top of distributed storage and databases, accessible via REST API, and runs on serverless cloud infrastructure. Every repository operation is an API call (commit, branch, merge etc.).

    • 사용자 입장에서 내부 프로토콜에 대한 관심 부족.
    • CLI나 UI 사용 시 내부 프로토콜이 중요하지 않음.
    • 추상 구문 트리(AST) 기반의 VCS에 대한 호기심.
  • most notably in games development, semiconductors and financial services are still using legacy tools like SVN and Perforce

    • Git의 복잡성보다는 대규모 바이너리 자산을 처리하는 데 Git이 적합하지 않다는 점에 초점을 맞출 것.
    • Git이 대규모 파일을 잘 처리하지 못한다는 리누스 토발즈의 인용.
  • it was built for a very different world in 2005 (slow networks, much smaller projects, no cloud)

    • 느린 네트워크, 작은 프로젝트, 클라우드가 없던 2005년과는 다른 환경에서 Git이 설계됨.
    • Git은 분산형이므로 클라우드 환경에서도 잘 작동해야 함.
    • 데이터 과학자가 잘못된 Git 명령어로 한 달 치 작업을 파괴한 것은 구성 문제로 보임.
  • In our previous startup, a data scientist accidentally destroyed a month’s work of his team by using the wrong Git command

    • Git에 대한 비판보다는 자체 제품에 초점을 맞출 것.
    • Git은 분산형 VCS이며, 백업 없이 중앙 집중식으로 사용하려는 시도가 문제임.
  • git is bad we're better

    • 게임 개발자로서 제시된 제안에 대한 흥미 부족.
    • Git LFS를 사용한 현대적인 워크플로우가 원활하게 작동함.
    • 클라우드 네이티브가 특징으로 제시되었으나, 온프레미스 및 자체 호스팅된 프라이빗 클라우드 지원에 대한 세부사항 누락.
    • 파일 잠금 기능에 대한 아티스트의 선호도와 P4 스트림 및 브랜치 사용으로 인한 잠금 사용의 어려움.
  • File locking across branches - coming soon!

    • 파일 잠금 기능이 곧 출시될 예정이지만, 제안에 대한 개선 필요성.
  • Git cli UX made be not great, but the git datastructure of representing commits, branches, trees and blobs as immutable pointers and merkle trees is a phenomenal invention.

    • Git의 데이터 구조는 놀라운 발명품이지만, 모든 명령어가 REST API를 통해 이루어지는 것에 대한 동의 부족.
    • Git의 강력한 점은 오프라인에서도 부분적인 클론으로 작업하고 온라인 상태가 되면 커밋을 동기화할 수 있다는 것.
  • In our previous startup, a data scientist accidentally destroyed a month’s work of his team by using the wrong Git command.

    • Git의 사용성 개선 필요성 인정, 그러나 발생한 문제는 개발 운영 실패로 보임.
    • 비코더들에게 소스 컨트롤의 이점을 소개하면서 고급 기능을 유지할 수 있는 더 쉬운 학습 곡선 필요.
  • The world needs a git alternative.

    • Git 대안의 필요성.
    • 여러 명이 매일 동일한 저장소에 커밋할 때 Git의 한계.
    • Git이 리베이스를 더 잘 처리할 수 있다면 소프트웨어 개발 팀의 작업 속도가 20% 향상될 것으로 예상.
  • I get that enterprises will buy anything with "Cloud" or "AI" in the name, but VCS doesn't have anything to do with the cloud.

    • 기업이 "클라우드"나 "AI"가 이름에 포함된 모든 것을 구매할 것이라는 인식.
    • 기술보다 문제 해결에 초점을 맞추는 것이 중요함.
    • 사용자 경험이 좋지 않다면 기술적 세부사항은 의미가 없음.
    • 개발 시간을 단축하고 오류를 줄이며 협업을 개선하는 경험을 제공하는 제품에 대한 판매 전략 필요.