다모앙 커뮤니티 운영 규칙을 확인하세요.
X

두 저장소간 공유하는 라이브러리의 git 구성 - subrepo

페이지 정보

작성자 no_profile kkigomi
작성일 2025.02.24 20:14
563 조회
4 추천

본문

바로 아래 글에 이어서 두 가지 플랫폼에 대한 같은 기능을 만들면서 백엔드는 각 플랫폼에 맞게, 프론트는 일부 공통된 코드를 사용하면서 이를 공유하기 위한 방법으로 git subrepo를 사용하려고 합니다.


https://github.com/ingydotnet/git-subrepo


이건 예전에 다모앙의 코드 중 일부가 서브모듈로 구성됐던 때에 통합하면서 발견했던 것인데요.

당시에는 바로 적용하기에는 경험이 없었고 이미 다수의 참여자가 있어서 쉽게 적용하지는 못했습니다. 다만, 조금 살펴보면서 subtree와 매우 비슷해보였습니다.

아직도 그 차이점이 뭔지 모르겠네요. 다른 프로젝트에서 잠깐 서브트리도 써보긴 했지만 감이 잘 안 잡히네요. 다모앙의 서브모듈을 제거하고 통합할 때 서브레포도 사용해봤지만 개념만 확인했던 수준이었고요.


아무튼 서브모듈은 차이가 크고 서브트리와 서브레포를 보면 서브트리에 비해 충돌 등의 문제에서 좀 더 자유롭다는 것 같습니다.


서브트리와 서브레포 둘 중 하나라면 따로 뭔가를 설치해야하는 서브레포가 좀 더 불편하기는 합니다. 둘의 사용성 차이가 명확하게 알지 못해서 좀 더 검토를 해봐야겠지만요. 


subrepo를 프로젝트에 사용하시고 계신 분이 있다면 경험의 공유 부탁드립니다.


제가 subtree, subrepo를 사용하려는 목적은 두개의 저장소에서 공통된 에셋을 같이 사용하려는 목적이고 이게 npm 등에 게시된 것이 아니고, 단순히 서브 디렉토리 하나에 공통된 에셋을 공유하면서 두 저장소의 코드를 배포하려고 합니다.


연결된 리소스의 변경사항을 공유하면서 복붙으로 파일을 가져다 쓰지않기 위해서죠.


서브모듈은 관리의 어려움이 있고 저장소를 클론한 사람도 서브모듈에 얽메이는 것이 좋지않은 경험을 주기 때문에, 서브모듈은 연결된 리소스를 강하게 통제하는 그러한 성향이 강한 프로젝트에나 어울리는 방식이라고 생각해서 제외하였습니디.



두 플랫폼에 따른 각각의 저장소와 공유리소스 저장소까지 3개의 저장소가 필요하겠네요. 

4추천인 목록보기
댓글 2

SDK님의 댓글

작성자 SDK
작성일 02.25 15:28
submoule을 잘 사용하면 좋을것 같긴 합니다

담왕님의 댓글

작성자 담왕
작성일 03.04 13:34
내부에서 사용하는 경우면 다른 파일공유 프로토콜 등으로 에셋을 관리하고 env 형태로 경로 지정하면 환경초기화 스크립트 등에서 해당 에셋들을 긁어오든 네트워크드라이브로 서브디렉토리에 연결을 하든 했었던 기억이 있어요
홈으로 전체메뉴 마이메뉴 새글/새댓글
전체 검색