Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
git_submodules [2019/02/27 14:41] – [The situation thus far] rpjdaygit_submodules [2019/02/27 19:14] (current) – [Overview] rpjday
Line 2: Line 2:
  
 The good and the bad of submodules, using Wind River's Pulsar Linux as a convenient example. The good and the bad of submodules, using Wind River's Pulsar Linux as a convenient example.
 +
 +Stuff to add:
 +
 +  * ''git config submodule.<what>.url PRIVATE_URL''
  
 ===== Links ===== ===== Links =====
Line 384: Line 388:
  
 <code> <code>
-tree .git/modules/coroutine2/ +ls -lF .git/modules/coroutine2/ 
-.git/modules/coroutine2/ +total 48 
-├── branches +drwxrwxr-x2 rpjday rpjday 4096 Feb 27 09:31 branches/ 
-├── config +-rw-rw-r--. 1 rpjday rpjday  297 Feb 27 09:31 config 
-├── description +-rw-rw-r--1 rpjday rpjday   73 Feb 27 09:31 description 
-├── HEAD +-rw-rw-r--1 rpjday rpjday   24 Feb 27 09:31 HEAD 
-├── hooks +drwxrwxr-x2 rpjday rpjday 4096 Feb 27 09:31 hooks/ 
-│   ├── applypatch-msg.sample +-rw-rw-r--. 1 rpjday rpjday 7299 Feb 27 09:33 index 
-│   ├── commit-msg.sample +drwxrwxr-x2 rpjday rpjday 4096 Feb 27 09:31 info/ 
-│   ├── fsmonitor-watchman.sample +drwxrwxr-x3 rpjday rpjday 4096 Feb 27 09:31 logs/ 
-│   ├── post-update.sample +drwxrwxr-x. 4 rpjday rpjday 4096 Feb 27 09:31 objects/ 
-│   ├── pre-applypatch.sample +-rw-rw-r--. 1 rpjday rpjday 1161 Feb 27 09:31 packed-refs 
-│   ├── pre-commit.sample +drwxrwxr-x. 5 rpjday rpjday 4096 Feb 27 09:31 refs/
-│   ├── prepare-commit-msg.sample +
-│   ├── pre-push.sample +
-│   ├── pre-rebase.sample +
-│   ├── pre-receive.sample +
-│   └── update.sample +
-├── index +
-├── info +
-│   └── exclude +
-├── logs +
-│   ├── HEAD +
-│   └── refs +
-│       ├── heads +
-│       │   └── develop +
-│       └── remotes +
-│           └── origin +
-│               └── HEAD +
-├── objects +
-│   ├── info +
-│   └── pack +
-│       ├── pack-8d8045f638534ca1ad0f371994e571b65a330b5a.idx +
-│       └── pack-8d8045f638534ca1ad0f371994e571b65a330b5a.pack +
-├── packed-refs +
-└── refs +
-    ├── heads +
-    │   └── develop +
-    ├── remotes +
-    │   └── origin +
-    │       └── HEAD +
-    └── tags +
- +
-16 directories, 24 files+
 $ $
 </code> </code>
Line 453: Line 426:
 $ $
 </code> </code>
 +
 +Abbreviated form:
  
 <code> <code>
Line 472: Line 447:
  
 <code> <code>
-$ git commit -am "added coroutine2 submodule" +$ git commit -a -m "added coroutine2 submodule" 
-[master bec4c94] added coroutine2 submodule+[master a7561cb] added coroutine2 submodule
  2 files changed, 4 insertions(+)  2 files changed, 4 insertions(+)
  create mode 100644 .gitmodules  create mode 100644 .gitmodules
- create mode 160000 coroutine2     <-- weird mode for submodule+ create mode 160000 coroutine2    <--- weird mode representing submodule
 $ $
 </code> </code>
Line 484: Line 459:
 <code> <code>
 $ git push origin master $ git push origin master
-</code> 
- 
-===== Under the hood ===== 
- 
-The submodule directory has a //file// named ''.git'', not a //directory//, which refers to submodule information in the superproject: 
- 
-<code> 
-$ cat coroutine2/.git 
-gitdir: ../.git/modules/coroutine2 
-$ 
-</code> 
- 
-From the superproject, you can see the information for each submodule: 
- 
-<code> 
-$ ls -l .git/modules/coroutine2/ 
-total 48 
-drwxrwxr-x. 2 rpjday rpjday 4096 Feb 13 15:37 branches 
--rw-rw-r--. 1 rpjday rpjday  297 Feb 13 15:37 config 
--rw-rw-r--. 1 rpjday rpjday   73 Feb 13 15:37 description 
--rw-rw-r--. 1 rpjday rpjday   24 Feb 13 15:37 HEAD 
-drwxrwxr-x. 2 rpjday rpjday 4096 Feb 13 15:37 hooks 
--rw-rw-r--. 1 rpjday rpjday 7299 Feb 13 15:38 index 
-drwxrwxr-x. 2 rpjday rpjday 4096 Feb 13 15:37 info 
-drwxrwxr-x. 3 rpjday rpjday 4096 Feb 13 15:37 logs 
-drwxrwxr-x. 4 rpjday rpjday 4096 Feb 13 15:37 objects 
--rw-rw-r--. 1 rpjday rpjday 1174 Feb 13 15:37 packed-refs 
-drwxrwxr-x. 5 rpjday rpjday 4096 Feb 13 15:37 refs 
-$ 
-</code> 
- 
-===== Cloning a project with submodules ===== 
- 
-If you don't want to populate the submodule directories: 
- 
-<code> 
-$ git clone https://github.com/boostorg/boost 
-</code> 
- 
-If you want to populate the submodule diredctories: 
- 
-<code> 
-$ git clone --recurse-submodules https://github.com/boostorg/boost 
-</code> 
- 
-Populate all submodules after the fact: 
- 
-<code> 
-$ git submodule update --init --recursive 
 </code> </code>
  
  
  • git_submodules.1551278461.txt.gz
  • Last modified: 2019/02/27 14:41
  • by rpjday