Repolode
Ataraxy-Labs

Ataraxy-Labs/weave

함수, 클래스, 키 단위로 코드를 병합하는 엔터티 수준 Git merge driver로, 서로 독립적인 변경 사이의 잘못된 충돌을 방지합니다.

스타
1,352
포크
49
열린 이슈
2
마지막 커밋
13시간 전

어떤 프로젝트인가요?

Weave는 Git의 줄 단위 3-way 병합을 엔터티 수준 병합으로 대체합니다. tree-sitter로 파일의 base, ours, theirs 버전을 파싱하고 이름, 유형, 스코프를 기준으로 각 버전의 함수, 클래스, 키를 매칭한 뒤 해당 엔터티를 병합합니다. 서로 다른 엔터티의 변경 사항은 자동으로 해결되며, 같은 엔터티의 변경 사항은 실제로 양립할 수 없는 경우에만 충돌합니다.

여러 AI 에이전트나 개발자가 동시에 같은 파일을 수정할 때 이 도구가 해결하려는 문제가 특히 두드러집니다. 두 브랜치에서 서로 다른 함수를 나란히 추가했을 뿐인데도 실제로는 충돌이 없지만 Git은 충돌을 보고합니다. Weave는 `weave setup`으로 merge driver를 설치하며, 해결하지 못한 충돌은 한쪽에서는 어떤 함수가 수정되고 다른 쪽에서는 삭제되었는지와 같은 엔터티 수준의 맥락을 포함해 기록합니다.

프로젝트에는 에이전트의 병합을 검증하고 게시하는 `weave land`, 해결 결과를 검토하는 `weave check`와 `weave explain`, 에이전트 프레임워크용 MCP 서버, Jujutsu 설정도 포함됩니다. 약 38개 언어를 지원하며, 지원하지 않는 파일이나 매우 큰 파일은 Git의 줄 단위 병합으로 처리합니다.

핵심 기능

  • 01함수, 클래스, 키를 엔터티 단위로 병합해 한 파일에 서로 독립적인 항목을 추가해도 충돌하지 않게 합니다.
  • 02tree-sitter 문법을 사용해 TypeScript, Python, Go, Rust, JSON을 포함한 약 38개 언어를 파싱합니다.
  • 03엔터티 유형과 어느 쪽에서 수정하거나 삭제했는지 등 엔터티 수준의 맥락과 함께 충돌을 보고합니다.
  • 04`weave setup`으로 전역 또는 저장소별 Git merge driver를 설치합니다.
  • 05커밋 전에 병합 결과를 검토할 수 있도록 `weave check`, `weave explain`, `weave preview`를 제공합니다.
  • 06에이전트 프레임워크가 병합, 편집, 검사 도구를 호출할 수 있도록 MCP 서버를 제공합니다.

활용 사례

  • 여러 AI 코딩 에이전트가 수동으로 충돌을 해결하지 않고 같은 소스 파일에서 작업하도록 합니다.
  • 여러 개발자가 같은 대형 모듈이나 설정 파일을 수정할 때 잘못된 병합 충돌을 줄입니다.
  • 자동화된 에이전트 병합 결과를 브랜치에 게시하기 전에 구조 검사를 추가합니다.

빠른 시작

  1. 1

    weave를 설치합니다(자세한 내용은 README의 Install 섹션을 참조하세요)

  2. 2

    저장소에서 weave를 활성화해 git merge에 사용되도록 합니다

    weave setup
  3. 3

    merge를 실행합니다. 실제 충돌은 refused_by 줄이 포함된 마커로 표시됩니다

    git merge <branch>
  4. 4

    해결된 작업 트리를 merge 단계와 대조해 확인합니다

    weave check

사용 전 알아둘 점

  • 엔티티 단위 병합은 일반 Git이라면 문제없이 병합할 수 있는 경우에도 충돌을 일으킬 수 있습니다. 프로젝트 자체 벤치마크에서도 여러 저장소에서 성능 저하가 나타났습니다.
  • Vue, Svelte, ERB, Haskell 파일은 의도적으로 weave에서 병합하지 않으며 다른 처리 방식으로 넘어갑니다.
  • 프로젝트는 버전 0.5.x이며 릴리스마다 병합 판정이 달라졌습니다.

포함된 컬렉션

토픽

자주 묻는 질문

weave은(는) 무엇인가요?
함수, 클래스, 키 단위로 코드를 병합하는 엔터티 수준 Git merge driver로, 서로 독립적인 변경 사이의 잘못된 충돌을 방지합니다. Weave는 Git의 줄 단위 3-way 병합을 엔터티 수준 병합으로 대체합니다. tree-sitter로 파일의 base, ours, theirs 버전을 파싱하고 이름, 유형, 스코프를 기준으로 각 버전의 함수, 클래스, 키를 매칭한 뒤 해당 엔터티를 병합합니다. 서로 다른 엔터티의 변경 사항은 자동으로 해결되며, 같은 엔터티의 변경 사항은 실제로 양립할 수 없는 경우에만 충돌합니다.
weave은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
weave은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
weave은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. weave의 마지막 커밋은 2026년 11월 7일입니다.
weave은(는) 어디에 사용할 수 있나요?
여러 AI 코딩 에이전트가 수동으로 충돌을 해결하지 않고 같은 소스 파일에서 작업하도록 합니다. 여러 개발자가 같은 대형 모듈이나 설정 파일을 수정할 때 잘못된 병합 충돌을 줄입니다. 자동화된 에이전트 병합 결과를 브랜치에 게시하기 전에 구조 검사를 추가합니다.
weave는 어떻게 설치하나요?
weave를 설치합니다(자세한 내용은 README의 Install 섹션을 참조하세요) 저장소에서 weave를 활성화해 git merge에 사용되도록 합니다: weave setup merge를 실행합니다. 실제 충돌은 refused_by 줄이 포함된 마커로 표시됩니다: git merge <branch> 해결된 작업 트리를 merge 단계와 대조해 확인합니다: weave check
weave은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/Ataraxy-Labs/weave

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트