On Mon, Jun 6, 2022 at 8:24 AM Mouse <mo...@rodents-montreal.org> wrote:
> > [...], I have a question about git, [...] > > I'm not an _expert_ on git, but I have been using it for close on a > decade now and have developed a certain amount of expertise. > > > 1. In CVS, I can do something like: > > cvs log sys/dev/pci/if_bge.c > > and be given a complete history of the changes to that file, as well > > as a list of all the branches that file participates in and which > > versions apply to each branch. > > git log -- sys/dev/pci/if_bge.c > > > And, I can do this without having to download all of the history of > > that file onto my local storage. > > That, you will not find with git. git does, somewhat, support what is > called a shallow clone of a repo, but it is limited by restricting it > to recent commits, not by restricting it to only certain portions of > the tree. I'm not aware of any way to do the latter. > I'm not a git expert or anything but here are some examples of restricting things and savings disk space/memory git clone --single-branch --depth 1 --branch netbsd-9 g...@github.com: NetBSD/src.git Cloning into 'src'... remote: Enumerating objects: 182228, done. remote: Counting objects: 100% (182228/182228), done. remote: Compressing objects: 100% (146504/146504), done. remote: Total 182228 (delta 47394), reused 115949 (delta 29844), pack-reused 0 Receiving objects: 100% (182228/182228), 401.74 MiB | 8.93 MiB/s, done. Resolving deltas: 100% (47394/47394), done. Updating files: 100% (177533/177533), done. src $ git branch * netbsd-9 src $ du -sh .git/ 428M .git/ src $ git log ---- git clone --single-branch --depth 1 --branch netbsd-9 --no-checkout g...@github.com:NetBSD/src.git ... cd src git sparse-checkout init --cone git sparse-checkout set sys src $ git checkout Updating files: 100% (29032/29032), done. Your branch is up to date with 'origin/netbsd-9'. src $ ls -l total 392 -rw-r--r-- 1 msporleder wheel 53770 Jun 6 14:04 BUILDING -rw-r--r-- 1 msporleder wheel 16543 Jun 6 14:04 Makefile -rw-r--r-- 1 msporleder wheel 355 Jun 6 14:04 Makefile.inc -rw-r--r-- 1 msporleder wheel 1751 Jun 6 14:04 README.md -rw-r--r-- 1 msporleder wheel 34634 Jun 6 14:04 UPDATING -rwxr-xr-x 1 msporleder wheel 70768 Jun 6 14:04 build.sh drwxr-xr-x 36 msporleder wheel 1024 Jun 6 14:05 sys