▲GN⁺ 2024-11-10 | parent | ★ favorite | on: Mergiraf - Git용 구문 인식 Merge 처리기 (mergiraf.org)Hacker News 의견 SemanticDiff와 유사한 작업을 하고 있으며, tree-sitter와 GumTree 사용에서 문제를 겪고 있음 tree-sitter는 주로 구문 강조를 위해 작성되어, 코드 수정 시 정확한 구문 분석이 어려움 GumTree는 빠른 결과를 제공하지만, 잘못된 매칭을 자주 반환함 Dijkstra 기반 접근 방식으로 전환하여 더 나은 결과를 얻고 있음 Mergiraf의 아키텍처 섹션이 복잡한 도구의 작동 방식을 깊이 있게 설명하고 있음 기린을 선택한 이유는 높이로 인해 멀리 볼 수 있고, 육상 포유류 중 가장 큰 심장을 가졌기 때문임 일부 삽입에서 순서가 중요하지 않다고 주장하는 것에 대해 비판적임 언어 수준에서는 순서가 중요하지 않을 수 있지만, 인간에게는 특정 순서가 중요할 수 있음 예시로 Base struct Foo; struct Bar; 사이에 Left가 impl Foo { }를 삽입하고 Right가 struct Baz;를 삽입하는 경우, 컴퓨터는 차이를 인식하지 못함 Git의 병합 드라이버 개발에 긍정적임 표준 3-way 병합은 언어를 인식하지 못해 문제를 일으킬 수 있음 Python 코드에서 두 가지 다른 브랜치가 각각 다른 print를 삭제하면 유효하지 않은 코드가 됨 팀이 문제에 맞게 기본 언어를 확장할 때 구문 인식 도구가 문제를 겪음 Rust의 매크로나 "go generate" 사용 사례를 언급함 자동 포맷팅 관련 충돌 해결에 도움이 될 수 있는 아이디어임 코드 이동으로 인해 발생하는 의미적 충돌을 감지할 수 있는지 궁금해함 Mergiraf를 시도해볼 예정이며, git-absorb와 함께 사용 중임 두 도구가 완벽하게 작동하거나 Git에 공식적으로 통합되면 좋겠음 Python 지원이 유용할 것 같음 Python의 들여쓰기 기반 AST가 잘 작동할 것으로 보임 언어 지원이 제한적이지만, 더 많은 언어 지원이 추가되기를 바람
Hacker News 의견
SemanticDiff와 유사한 작업을 하고 있으며, tree-sitter와 GumTree 사용에서 문제를 겪고 있음
Mergiraf의 아키텍처 섹션이 복잡한 도구의 작동 방식을 깊이 있게 설명하고 있음
기린을 선택한 이유는 높이로 인해 멀리 볼 수 있고, 육상 포유류 중 가장 큰 심장을 가졌기 때문임
일부 삽입에서 순서가 중요하지 않다고 주장하는 것에 대해 비판적임
struct Foo; struct Bar;사이에 Left가impl Foo { }를 삽입하고 Right가struct Baz;를 삽입하는 경우, 컴퓨터는 차이를 인식하지 못함Git의 병합 드라이버 개발에 긍정적임
print를 삭제하면 유효하지 않은 코드가 됨팀이 문제에 맞게 기본 언어를 확장할 때 구문 인식 도구가 문제를 겪음
자동 포맷팅 관련 충돌 해결에 도움이 될 수 있는 아이디어임
Mergiraf를 시도해볼 예정이며, git-absorb와 함께 사용 중임
Python 지원이 유용할 것 같음
언어 지원이 제한적이지만, 더 많은 언어 지원이 추가되기를 바람