오버레이 마운트를 사용하여 여러 디렉터리를 다른 하위 디렉터리와 결합하는 방법은 무엇입니까?

오버레이 마운트를 사용하여 여러 디렉터리를 다른 하위 디렉터리와 결합하는 방법은 무엇입니까?

다양한 소스 트리에 배열된 여러 Git 저장소를 다운로드했습니다.

  1. repoDirs1(공급업체를 포함한 하위 디렉터리 포함)
  2. repoDirs2(공급업체를 포함한 하위 디렉터리 포함)
  3. 특별 환매 1
  4. 특별 환매 2

작동하는 소스 트리를 얻으려면 다음을 수행해야 합니다.

1. cp -rp repoDirs2/* repoDirs1/
2. cp -rp specialRepos1/vendor/* repoDirs1/vendor/
3. cp -rp specialRepos2/vendor/* repoDirs1/vendor/

이것은 작동하지만 원래 repoDirs1 소스 트리를 변경하고 repo 명령을 사용하여 이를 관리하기 어렵게 만듭니다.

검색해 보니 마운트에 오버레이 옵션이 있는 것으로 나타났습니다. 그러나 여러 예제를 읽은 후에도 문제를 해결하기 위해 올바른 설치 명령 순서를 작성하는 방법을 여전히 알 수 없습니다. overlayfsknown 또는 기타 잘못된 옵션 오류가 발생합니다.

누구든지 명확한 예를 들어 도와줄 수 있습니까? 감사합니다. 우분투 20.04를 사용하고 있습니다

답변1

미래의 독자들은 주의하세요: 이 질문에는 많은 하위 디렉터리가 포함된 두 디렉터리를 병합해야 합니다. 일반적인 git 작업에는 사용하면 안 됩니다. 이렇게 하려면 일반적으로 .gitignore파일을 사용해 보거나자식 하위 모듈.


두 개의 디렉터리를 한 위치로 병합하려면 중복되는 파일이 있더라도 간단한 overridefs 마운트를 사용할 수 있습니다. 요청한 상황에서 이는 읽기 전용 오버레이로 수행하는 것이 가장 좋습니다. 읽고 쓰려면 변경된 모든 파일을 별도의 디렉토리에 저장합니다. 당신이 찾고 있는 것이 일치할 가능성은 거의 없습니다.

읽기 전용 재정의를 만들려면 upper다음을 지정하지 마세요 workdir.

mount -t overlay overlay -o lowerdir=specialRepos1/vendor/:specialRepos2/vendor/ repoDirs1/vendor/

Archlinux에는 이 기능에 대한 좋은 설명이 있습니다:

https://wiki.archlinux.org/index.php/Overlay_filesystem

관련 정보