스택큐힙리스트

서버에서 Git 포크의 중복을 제거하세요. 본문

카테고리 없음

서버에서 Git 포크의 중복을 제거하세요.

스택큐힙리스트 2023. 12. 18. 12:01
반응형

여러 개의 Git 저장소가 포함된 폴더에서 모든 중복 객체를 하드 링크하는 방법이 있을까요?


설명:


저는 회사 서버 (Linux 기계)에서 Git 서버를 호스팅하고 있습니다.
아이디어는 메인 규범 저장소를 가지고 있는데, 모든 사용자는 해당 저장소에 대해 푸시 액세스를 가지지 않지만, 모든 사용자가 규범 저장소를 포크하고 (규범을 사용자의 홈 디렉토리로 복제하여 실제로 하드 링크를 생성함) 아이디어입니다.



/canonical/Repo
/Dev1/Repo (초기 복제시 /canonical/Repo로 하드 링크로 연결된 객체)
/Dev2/Repo (초기 복제시 /canonical/Repo로 하드 링크로 연결된 객체)



이것은 모두 잘 작동합니다. 문제는 다음과 같을 때 발생합니다:



Dev1: 서버의 자신의 포크 (/Dev1/Repo)에 거대한 커밋을 푸시 Dev2:
해당 커밋을 로컬 시스템에 가져오고 자신의 변경 사항을 만들어 자신의 포크(/Dev2/Repo)에 푸시


(이제 같은 '큰' 파일이 개발자의 파일 저장소에 모두 존재합니다. 하드 링크는 자동으로 생성되지 않습니다.)


이렇게 하면 서버 공간이 엄청나게 소비됩니다!


양 많은 객체들 사이에 하드 링크를 생성하여 서버 공간을 절약하고, 각 개발자가 자신의 로컬 머신에서 자신의 파일 저장소로부터 복제된 데이터를 모두 가져올 수 있도록 할 수 있을까요?

답변 1

커밋 647982b (2023년 2월 3일) Eric Wong (ele828)이(가) 작성함.

(Junio C Hamano -- gitster --에 의해 커밋 6d1b2e4에서 병합됨, 2023년 2월 9일)



delta-islands: island_marks와 비트맵을 해제합니다.


Signed-off-by: Eric Wong

Helped-by: Ævar Arnfjörð Bjarmason

Helped-by: Jeff King



linux.git 포크 그룹의 거울에서 780개의 섬을 가지고 있는 경우, 이는 pack-objects에서 거의 4G의 힙 메모리를 절약합니다.

이 절약은 pack 비트맵의 델타 섬 사용자에게만 이익을 제공하며, 그렇지 않으면 프로세스가 이미 종료되었을 것입니다.


하지만 델타 섬 사용자는 많지 않을 것으로 예상되지만, 대부분의 델타 섬 사용자는 pack 비트맵 사용자일 것입니다.


답변 2

서버에서 Git 포크 중복 제거하기
Git은 협업 개발을 위한 최고의 도구 중 하나입니다. 많은 개발자들은 프로젝트 공동 작업을 위해 Git을 사용하고 있으며, 이는 원활한 개발 작업과 코드 관리를 가능하게 해 줍니다. 그러나 때로는 Git 포크가 중복되어 문제를 일으킬 수 있습니다. 이러한 문제를 해결하고 서버에서 Git 포크 중복을 제거하는 방법에 대해 알아보겠습니다.
첫 번째로, 포크 중복을 효과적으로 제거하기 위해 Git 저장소의 모든 포크를 확인해야 합니다. Git 명령행 도구를 사용하여 저장소의 모든 포크를 나열하는 명령을 실행해 보세요. 이를 통해 어떤 포크가 중복되었는지 파악할 수 있습니다.
둘째로, 중복된 포크를 제거할 것인지 또는 소유자에게 알려야 할 것인지를 결정해야 합니다. 중복된 포크를 제거하기로 결정한 경우, Git 명령행 도구를 사용하여 중복된 포크를 삭제할 수 있습니다. 이때, 주의할 점은 원격 저장소까지 제거하지 않도록 하는 것입니다. 다른 사람이 이미 포크한 저장소가 있는 경우에는 소유자에게 해당 사실을 알려주어 중복 포크를 방지할 수 있습니다.
셋째로, 중복 포크를 방지하기 위해 팀원들에게 협조를 부탁할 수 있습니다. Git을 사용하는 모든 팀원에게 중복 포크가 문제가 될 수 있으며, 포크할 때에는 이미 포크된 저장소를 확인하도록 안내해야 합니다. 팀원들에게 포크 중복 문제에 대해 교육하는 것도 좋은 방법입니다. 이렇게 함으로써 팀 내에서 중복 포크가 발생하는 비율을 줄일 수 있습니다.
마지막으로, Git 저장소에서 중복 포크를 제거한 후, 이를 검증해야 합니다. 모든 포크가 효과적으로 제거되었는지 확인하기 위해 원격 저장소 및 로컬 저장소를 확인해야 합니다. 포크 중복 문제를 감지할 수 있는 자동화된 도구를 활용하는 것도 좋은 방법입니다.
결론적으로, Git 포크 중복은 협업 작업에 문제를 일으킬 수 있으므로 서버에서 중복 포크를 제거하는 것이 중요합니다. 이를 위해 포크 목록을 확인하고 중복 포크를 제거하는 절차를 따라야 합니다. 또한 팀원들에게 중복 포크에 대한 경각심을 심어 주어 이러한 문제를 예방할 수 있도록 해야 합니다.
참고: 본 문서는 SEO 최적화를 지키기 위해 일부 용어와 구문을 추가했습니다.

반응형
Comments