Web lists-archives.com

Self-inflicted "abort" in a newbie attempt at read-only exploration of a cloned repository?




Dear GIT enthusiasts!

This ends up with a "git checkout" command aborting. A bit frustrating at the early stage of GIT learning curve.

My first goal is to clone repositories locally in order to explore the various linux kernel versions, with the rich GIT metadata.

Thus, I clone:

$ git clone --branch linux-4.16.y https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-stable
$  git -C linux-stable/ branch
* linux-4.16.y

So far so good. Then, I want to extract an earlier kernel version into a tmp dir:

$  mkdir tmp
$  git -C linux-stable/ --work-tree $PWD/tmp/ checkout linux-4.15.y
$  git -C linux-stable/ branch
* linux-4.15.y
  linux-4.16.y

I got my extracted 4.15 version but the source repository (index? ...?) has somehow changed. Let me try something silly:

$  git -C linux-stable/ --work-tree $PWD/tmp/ checkout linux-4.14.y
$  git -C linux-stable/ branch
* linux-4.14.y
  linux-4.15.y
  linux-4.16.y

I indeed switched my extracted version from 4.15 to 4.14, but I am puzzled that the local source repository (linux-stable) is modified. Then I try to bring it back closer to its original state, just to keep things tidy:

$  git -C linux-stable/ checkout linux-4.16.y

And this command aborts, both with Git versions 2.01 and 2.17. Here is the truncated command output:

error: Your local changes to the following files would be overwritten by checkout:
	.gitignore
	.mailmap
	Documentation/00-INDEX
	Documentation/ABI/obsolete/sysfs-gpio
	Documentation/ABI/stable/sysfs-bus-vmbus
	Documentation/ABI/stable/sysfs-devices
	[... ...]
	Documentation/devicetree/bindings/arm/mediatek/mediatek,vencsys.txt
	Documentation/devicetree/bindings/arm/omap/crossbar.txt
	Documentation/devicetree/bindings/arm/omap/ctrl.txt
	Documentation/devicetree/bindings/arm/realtek.txt
	Documentation/devicetree/bindings/arm/rock
error: The following untracked working tree files would be overwritten by checkout:
	Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Diagram.html
	Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.html
	Documentation/RCU/Design/Memory-Ordering/TreeRCU-callback-invocation.svg
	Documentation/RCU/Design/Memory-Ordering/TreeRCU-callback-registry.svg
	Documentation/RCU/Design/Memory-Ordering/TreeRCU-dyntick.svg
	[... ...]
	arch/riscv/include/asm/smp.h
	arch/riscv/include/asm/spinlock.h
	arch/riscv/include/asm/spinlock_types.h
	arch/riscv/include/asm/string.h
	arch/riscv/include/
Aborting

Questions:
=========

Is there a GIT tutorial that begins with my stated goal of an extract-only usage of cloned GIT repositories? (Maybe the root cause is my reluctance to learn the more involved GIT usages.)

Does the above reproducible abort deserve attention?

Any suggestion for my stated goal?

Thanks in advance,

- Thierry Moreau