Submoduler: Python 및 Docker를 통해 git 하위 모듈을 자동으로 업데이트하는 도구

소개



git 하위 모듈에 대해 온라인에서 읽은 대부분의 의견은 다음과 같습니다.
"그들을 피하라"
"하위 모듈을 사용하지 마십시오"
"하나의 큰 저장소 사용"

그리고 1년 동안 그들과 함께 일한 후에 나는 그 이유를 이해할 수 있습니다.

하위 모듈은 이해하기가 즉각적이지 않고 유지 관리하기에 좋은 것도 아니기 때문에 하위 모듈을 멀리하는 것이 좋습니다.

즉, 하위 모듈은 때때로 유용할 수 있습니다.

예를 들어:
  • 동일한 개발자 스크립트를 제공하려는 여러 저장소가 있을 수 있습니다. 이를 달성하는 한 가지 방법은 별도의 저장소에 보관하고 이를 하위 모듈로 추가하는 것입니다.
  • 두 repo 간에 매우 긴밀한 관계가 있지만 동시에 monorepo를 사용하고 싶지 않거나 사용할 수 없습니다.

  • 간단히 말해서 하위 모듈



    하위 모듈이 무엇인지 모른다면 단순히 다른 저장소의 특정 커밋에 대한 링크일 뿐입니다.

    그것이 트릭이있는 곳입니다.

    다시 읽으세요:
    다른 저장소에 대한 링크가 아니라 다른 저장소의 특정 커밋에 대한 링크입니다.

    현재 시나리오를 상상해 봅시다.
  • repository_a 및 repository_b가 있습니다
  • .
  • repository_a 내부에 repository_b의 하위 모듈을 생성합니다
  • .
  • 모두 잘 작동합니다. Git에서 repository_a를 볼 수 있으며 repository_b와 함께 가져옵니다.

  • 어느 시점에서 repository_b 내부를 변경할 수 있습니다.
    그런 다음 repository_a 내부를 가져오거나 가져오고 놀랍게도 변경 사항이 없습니다.

    이는 하위 모듈이 특정 커밋을 가리키기 때문입니다.

    하위 모듈을 업데이트하는 프로세스는 매우 간단합니다.

    cd repository_a
    git submodule update --remote --recursive
    


    엄청난! 이제 하위 모듈이 업데이트되었으며 repository_b에 푸시한 최신 변경 사항이 표시됩니다.

    repository_b에 변경 사항이 있을 때마다 매일 이 작업을 수행하는 것은 어떻습니까?
    repository_b가 10/20/30 리포지토리의 하위 모듈인 경우 어떻게 됩니까?

    너무 많은 일.

    서브 모듈러



    그것이 Submoduler가 들어오는 곳입니다.

    Submoduler는 Docker 컨테이너에서 실행할 수 있는 간단한 Python 앱이며 사용자가 제공한 리포지토리 목록을 반복하여 모든 하위 모듈을 자동으로 업데이트합니다.

    여기에서 찾을 수 있습니다.
    https://github.com/ginwakeup/submoduler

    Docker 이미지를 빠르게 가져오고 옵션과 함께 https URL로 업데이트할 리포지토리를 나열할 수 있는 간단한 configuration.yaml로 실행한 다음 -env 플래그를 통해 사용자 및 pat를 전달하여 실행할 수 있습니다.

    바라건대 이것은 누군가에게 도움이 될 것입니다!

    좋은 웹페이지 즐겨찾기