3.10에서 5.3까지 /fs/ 아래에 있는 모든 이전 버전의 read_write.c 소스 코드에 액세스해야 합니다.
내가 지금까지 겪어야 했던 일https://elixir.bootlin.com/read_write.c 변경 사항을 적용하여 각 버전을 반복하고 검토하세요. 나는 커널 3.10부터 5.3까지의 전체 세트를 다운로드하고 싶지 않습니다. 그러나 더 작은 버전에서도 차이점을 확인하고 싶습니다. 어쨌든 특정 버전의 모듈에 대한 특정 소스 코드를 다운로드할 수 있습니까(수동으로 수행해야 해도 괜찮습니다. 항상 diff를 사용하여 변경 사항이 발생한 시점을 찾을 수 있습니다.) 또는 다음을 통해 모듈의 버전 기록을 볼 수 있습니다. 부 버전을 포함한 모든 버전.
답변1
git은 개별 파일의 기록을 저장하지 않기 때문에 개별 파일의 기록을 직접 다운로드할 수 있는 방법은 없습니다(git만 사용). 예를 들어 커널과 같은 대규모 저장소에서도 단일 파일에 영향을 미치는 모든 커밋을 표시할 수 있는 웹 서비스가 있습니다.GitHub의 커밋 목록fs/read_write.c
.
로컬 기록만 갖고 싶다면 fs/read_write.c
다음 방법을 따르세요. 단, 여전히 전체 커널 저장소(현재 기가바이트 이상)를 (일시적으로) 다운로드해야 합니다.
mkdir ~/linux-fs-read_write
cd !$
git init
git config core.sparseCheckout true
echo fs/read_write.c > .git/info/sparse-checkout
git remote add origin https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch origin master
git checkout !$
git filter-repo --path=fs/read_write.c --force
마지막 단계는 사용하는 것입니다git-filter-repo
fs/read_write.c
그리고 기록 만 포함하는 130MiB 트리를 생성합니다 (2.6.12-rc2 기준).
이 작업을 수행하려는 상황에서 특정 파일만 커밋하는 것은 단점이 있습니다. 각 변경 사항을 지정된 릴리스 태그에 연결하기가 어려워집니다.