Browse code

Just greatly improve the documentation. Some of the documented stuff is already implemented, some is not.

Nat! authored on 21-01-2017 14:12:20
Showing 65 changed files
... ...
@@ -1,35 +1,10 @@
1
+# Settings
1 2
 
2
-> None of these settings are required, they are used to tweak **mulle_bootstrap**
3
->
4 3
 > <font color="green">**Important: Setting values are delimited by LF.**</font>
5 4
 
6
-
7
-Assume you have **a** that depends on **b**.  The following
8
-rules are with respect to **a**.
9
-
10
-
11
-# What ends up in the .bootstrap.auto folder
12
-
13
-1. **a**'s `.bootstrap.local` folder is copied first
14
-2. **a**'s `.bootstrap` folder contents are added (except `.bootstrap/config`),
15
-
16
-3. **b**'s `.bootstrap.local` folder is ignored
17
-4. any **file** in **b**'s `.bootstrap` folder except the file
18
-`embedded_repositories` is merged in. If it would overwrite a file copied
19
-from  **a**'s' `.bootstrap.local` the merge is not done.
20
-5. **b**'s `.bootstrap/settings` and `.bootstrap/config` folders are ignored
21
-6. any other **folder** from **b**'s' `./bootstrap`folder is copied, if it
22
-doesn't overwrite an existing folder.
23
-
24
-
25
-Mergable Settings
5
+Root Settings
26 6
 ===================
27 7
 
28
-1. `.bootstrap.local`
29
-2. `.bootstrap`       (Merge)
30
-
31
-
32
-##### Fetch Settings
33 8
 
34 9
 Setting Name            |  Description
35 10
 ------------------------|----------------------------------------
... ...
@@ -38,36 +13,18 @@ Setting Name            |  Description
38 13
 `embedded_repositories` | Repositories to embed, specify the URLs
39 14
 `taps`                  | Homebrew taps to install
40 15
 `tarballs`              | Tarballs to install (currently filesystem only)
41
-                        |
16
+`build_ignore`          | Repositories not to build
42 17
 
43
-##### Build Settings
44 18
 
45
-All build settings are searched OS specific first and then globally.
46
-Example: on OS X, "build_ignore.darwin" will be searched first followed
47
-by a search for "build_ignore".
48
-
49
-Setting Name            |  Description
50
-`build_ignore`          | repositories not to build
51 19
 
20
+> None of these settings are required, they are used to control the
21
+> **mulle_bootstrap** build processs
22
+>
52 23
 
53 24
 
54 25
 Build Settings
55 26
 ===================
56 27
 
57
-These settings are usually repository specific, but can be set globally also.
58
-
59
-#### Search Paths
60
-
61
-1. `.bootstrap.local/${reponame}`
62
-2. `.bootstrap/${reponame}`          (Inheritable)
63
-
64
-3. `.bootstrap.local/settings`
65
-4. `.bootstrap/settings`
66
-5. `.bootstrap/public_settings`       (Inheritable)
67
-
68
-
69
-#### Settings
70 28
 
71 29
 Setting Name                     |  Description                               | Default
72 30
 ---------------------------------|--------------------------------------------|---------------
... ...
@@ -98,66 +55,30 @@ Setting Name                     |  Description                               |
98 55
                                  | controlled by the following settings       | NO
99 56
 `xcode_mangle_include_prefix`    | remove /usr/local from Xcode header paths  | NO
100 57
 `xcode_mangle_header_dash`       | convert '-' to '_' in Xcode header paths   | NO
58
+`xcode_project`                  | The Xcode project file to use              |
59
+`xcode_schemes`                  | The Xcode schemes to build                 |
60
+`xcode_targets`                  | The Xcode targets to build                 |
101 61
 
102 62
 
103
-
104
-Repository Specific Settings
105
-===================
106
-
107
-Some settings are not supplied by root build settings.
108
-
109
-#### Search Paths
110
-
111
-1. `.bootstrap.local/${reponame}`
112
-2. `.bootstrap/${reponame}`       (Inheritable)
113
-
114
-
115
-#### Settings
116
-
117
-Setting Name     | Used by       | Description
118
-`tag`            | fetch         | What to checkout after fetching a
119
-                 |               | repository. (Preferably don't use)
120
-`xcode_project`  | build,xcode   | The Xcode project file to use
121
-`xcode_schemes`  | build         | The Xcode schemes to build
122
-`xcode_targets`  | build         | The Xcode targets to build
123
-
124
-
125
-Scripts
63
+Root Scripts
126 64
 ==========================
127 65
 
128
-Scripts are run at various times during the fetch, build and tag process.
129
-Root scripts must be aware, that they will be called for every repository.
130
-
131
-1. `.bootstrap.local/${reponame}/bin`
132
-2. `.bootstrap/${reponame}/bin`     (Inheritable)
133
-
134
-3. `.bootstrap.local/settings/bin`
135
-4. `.bootstrap/settings/bin`
136
-5. `.bootstrap/public_settings/bin` (Inheritable)
66
+`bin/pre-fetch.sh`
67
+`bin/post-fetch.sh`
68
+`bin/pre-update.sh`
69
+`bin/post-update.sh`
70
+`bin/pre-tag.sh`
71
+`bin/post-tag.sh`
137 72
 
138
-`pre-fetch.sh`
139
-`post-fetch.sh`
140
-`pre-update.sh`
141
-`post-update.sh`
142
-`pre-tag.sh`
143
-`post-tag.sh`
144 73
 
74
+> None of these settings are required, they are used to tweak **mulle_bootstrap**
75
+>
76
+> <font color="green">**Important: Setting values are delimited by LF.**</font>
145 77
 
146 78
 
147 79
 Config Settings
148 80
 ===================
149 81
 
150
-Environment variables use the setting name, transformed to upper case and
151
-prepended with "MULLE_BOOTSTRAP_". So "preferences" is `MULLE_BOOTSTRAP_PREFERENCES`
152
-in the environment. These can only be specified locally. They are not inherited.
153
-
154
-#### Search Paths
155
-
156
-1. ENVIRONMENT
157
-2. `.bootstrap.local/config`
158
-3. `~/.mulle-bootstrap`
159
-
160 82
 
161 83
 ##### General Settings
162 84
 
163 85
new file mode 100755
... ...
@@ -0,0 +1,9 @@
1
+#! /bin/sh
2
+
3
+
4
+for i in *.dot
5
+do
6
+  svg="`basename "$i" .dot`.svg"
7
+  echo "$i" >&2
8
+  dot -Tsvg "$i" > "$svg"
9
+done
0 10
new file mode 100644
... ...
@@ -0,0 +1,45 @@
1
+digraph inherit {
2
+   node [shape="folder"]
3
+
4
+   compound=true;
5
+   node [shape= record];
6
+
7
+   "Before" [ label="Before", color="red" ]
8
+   "After"  [ label="After", color="blue" ]
9
+
10
+   node [shape= folder];
11
+
12
+   "Before" -> "dst"     [lhead=cluster_0];
13
+   "After"  -> "result:dst" [lhead=cluster_1];
14
+
15
+  subgraph cluster_0 {
16
+      color="red"
17
+
18
+      "dst"
19
+
20
+      "src" -> "foo"
21
+      "foo"           [ shape="none", label=< <TABLE BORDER="3" CELLBORDER="0" CELLSPACING="0">
22
+<TR><TD bgcolor="#DDDDDD">foo</TD></TR>
23
+<TR><TD PORT="f0">1848</TD></TR>
24
+</TABLE>>];
25
+   }
26
+
27
+  subgraph cluster_1 {
28
+      color="blue"
29
+
30
+      "result:dst"         -> "result:dst/foo"
31
+      "result:dst"         [ label="dst"]
32
+      "result:dst/foo"     [ shape="none", label=< <TABLE BORDER="3" CELLBORDER="0" CELLSPACING="0">
33
+<TR><TD bgcolor="#DDDDDD">foo</TD></TR>
34
+<TR><TD PORT="f0">1848</TD></TR>
35
+</TABLE>>];
36
+
37
+      rank=same ;
38
+      "result:src"         -> "result:src/foo"
39
+      "result:src"         [ label="src"]
40
+      "result:src/foo"     [ shape="none", label=< <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0">
41
+<TR><TD bgcolor="#DDDDDD">foo</TD></TR>
42
+<TR><TD PORT="f0">1848</TD></TR>
43
+</TABLE>>];
44
+   }
45
+}
0 46
\ No newline at end of file
1 47
new file mode 100644
... ...
@@ -0,0 +1,95 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+<!-- Generated by graphviz version 2.34.0 (20131231.1455)
5
+ -->
6
+<!-- Title: inherit Pages: 1 -->
7
+<svg width="318pt" height="226pt"
8
+ viewBox="0.00 0.00 318.00 226.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 222)">
10
+<title>inherit</title>
11
+<polygon fill="white" stroke="white" points="-4,4 -4,-222 314,-222 314,4 -4,4"/>
12
+<g id="clust1" class="cluster"><title>cluster_0</title>
13
+<polygon fill="none" stroke="red" points="8,-8 8,-152 150,-152 150,-8 8,-8"/>
14
+</g>
15
+<g id="clust2" class="cluster"><title>cluster_1</title>
16
+<polygon fill="none" stroke="blue" points="158,-8 158,-152 302,-152 302,-8 158,-8"/>
17
+</g>
18
+<!-- Before -->
19
+<g id="node1" class="node"><title>Before</title>
20
+<polygon fill="none" stroke="red" points="87.9551,-181 87.9551,-217 142.045,-217 142.045,-181 87.9551,-181"/>
21
+<text text-anchor="middle" x="115" y="-193.4" font-family="Times,serif" font-size="14.00">Before</text>
22
+</g>
23
+<!-- dst -->
24
+<g id="node3" class="node"><title>dst</title>
25
+<polygon fill="none" stroke="black" points="142,-144 139,-148 118,-148 115,-144 88,-144 88,-108 142,-108 142,-144"/>
26
+<text text-anchor="middle" x="115" y="-120.4" font-family="Times,serif" font-size="14.00">dst</text>
27
+</g>
28
+<!-- Before&#45;&gt;dst -->
29
+<g id="edge1" class="edge"><title>Before&#45;&gt;dst</title>
30
+<path fill="none" stroke="black" d="M115,-180.813C115,-172.789 115,-163.047 115,-154.069"/>
31
+<polygon fill="black" stroke="black" points="118.5,-162 115,-152 111.5,-162 118.5,-162"/>
32
+</g>
33
+<!-- After -->
34
+<g id="node2" class="node"><title>After</title>
35
+<polygon fill="none" stroke="blue" points="239,-181 239,-217 293,-217 293,-181 239,-181"/>
36
+<text text-anchor="middle" x="265.769" y="-193.4" font-family="Times,serif" font-size="14.00">After</text>
37
+</g>
38
+<!-- result:dst -->
39
+<g id="node4" class="node"><title>result:dst</title>
40
+<polygon fill="none" stroke="black" points="293,-144 290,-148 269,-148 266,-144 239,-144 239,-108 293,-108 293,-144"/>
41
+<text text-anchor="middle" x="266" y="-120.4" font-family="Times,serif" font-size="14.00">dst</text>
42
+</g>
43
+<!-- After&#45;&gt;result:dst -->
44
+<g id="edge2" class="edge"><title>After&#45;&gt;result:dst</title>
45
+<path fill="none" stroke="black" d="M266,-180.813C266,-172.789 266,-163.047 266,-154.069"/>
46
+<polygon fill="black" stroke="black" points="269.5,-162 266,-152 262.5,-162 269.5,-162"/>
47
+</g>
48
+<!-- result:dst/foo -->
49
+<g id="node7" class="node"><title>result:dst/foo</title>
50
+<polygon fill="#dddddd" stroke="none" points="250,-43 250,-64 283,-64 283,-43 250,-43"/>
51
+<text text-anchor="start" x="257.169" y="-47.9" font-family="Times,serif" font-size="14.00">foo</text>
52
+<text text-anchor="start" x="252.5" y="-27" font-family="Times,serif" font-size="14.00">1848</text>
53
+<polygon fill="none" stroke="black" stroke-width="3" points="248,-22 248,-66 284,-66 284,-22 248,-22"/>
54
+</g>
55
+<!-- result:dst&#45;&gt;result:dst/foo -->
56
+<g id="edge4" class="edge"><title>result:dst&#45;&gt;result:dst/foo</title>
57
+<path fill="none" stroke="black" d="M266,-107.641C266,-100.11 266,-90.9832 266,-82.0529"/>
58
+<polygon fill="black" stroke="black" points="269.5,-81.7674 266,-71.7675 262.5,-81.7675 269.5,-81.7674"/>
59
+</g>
60
+<!-- src -->
61
+<g id="node5" class="node"><title>src</title>
62
+<polygon fill="none" stroke="black" points="70,-144 67,-148 46,-148 43,-144 16,-144 16,-108 70,-108 70,-144"/>
63
+<text text-anchor="middle" x="43" y="-120.4" font-family="Times,serif" font-size="14.00">src</text>
64
+</g>
65
+<!-- foo -->
66
+<g id="node6" class="node"><title>foo</title>
67
+<polygon fill="#dddddd" stroke="none" points="28,-43 28,-64 61,-64 61,-43 28,-43"/>
68
+<text text-anchor="start" x="35.1689" y="-47.9" font-family="Times,serif" font-size="14.00">foo</text>
69
+<text text-anchor="start" x="30.5" y="-27" font-family="Times,serif" font-size="14.00">1848</text>
70
+<polygon fill="none" stroke="black" stroke-width="3" points="26,-22 26,-66 62,-66 62,-22 26,-22"/>
71
+</g>
72
+<!-- src&#45;&gt;foo -->
73
+<g id="edge3" class="edge"><title>src&#45;&gt;foo</title>
74
+<path fill="none" stroke="black" d="M43.217,-107.641C43.3111,-100.11 43.4252,-90.9832 43.5368,-82.0529"/>
75
+<polygon fill="black" stroke="black" points="47.04,-81.8105 43.6654,-71.7675 40.0406,-81.7229 47.04,-81.8105"/>
76
+</g>
77
+<!-- result:src -->
78
+<g id="node8" class="node"><title>result:src</title>
79
+<polygon fill="none" stroke="black" points="220,-144 217,-148 196,-148 193,-144 166,-144 166,-108 220,-108 220,-144"/>
80
+<text text-anchor="middle" x="193" y="-120.4" font-family="Times,serif" font-size="14.00">src</text>
81
+</g>
82
+<!-- result:src/foo -->
83
+<g id="node9" class="node"><title>result:src/foo</title>
84
+<polygon fill="#dddddd" stroke="none" points="177,-43 177,-64 210,-64 210,-43 177,-43"/>
85
+<text text-anchor="start" x="184.169" y="-47.9" font-family="Times,serif" font-size="14.00">foo</text>
86
+<text text-anchor="start" x="179.5" y="-27" font-family="Times,serif" font-size="14.00">1848</text>
87
+<polygon fill="none" stroke="black" points="175.5,-22.5 175.5,-65.5 210.5,-65.5 210.5,-22.5 175.5,-22.5"/>
88
+</g>
89
+<!-- result:src&#45;&gt;result:src/foo -->
90
+<g id="edge5" class="edge"><title>result:src&#45;&gt;result:src/foo</title>
91
+<path fill="none" stroke="black" d="M193,-107.641C193,-99.4742 193,-89.4297 193,-79.795"/>
92
+<polygon fill="black" stroke="black" points="196.5,-79.6093 193,-69.6094 189.5,-79.6094 196.5,-79.6093"/>
93
+</g>
94
+</g>
95
+</svg>
0 96
new file mode 100644
... ...
@@ -0,0 +1,45 @@
1
+digraph inherit {
2
+   node [shape="folder"]
3
+
4
+   compound=true;
5
+   node [shape= record];
6
+
7
+   "Before" [ label="Before", color="red" ]
8
+   "After"  [ label="After", color="blue" ]
9
+
10
+   node [shape= folder];
11
+
12
+   "Before" -> "dst"     [lhead=cluster_0];
13
+   "After"  -> "result:dst" [lhead=cluster_1];
14
+
15
+  subgraph cluster_0 {
16
+      color="red"
17
+
18
+      "dst"
19
+
20
+      "src" -> "foo.darwin"
21
+      "foo.darwin"           [ shape="none", label=< <TABLE BORDER="3" CELLBORDER="0" CELLSPACING="0">
22
+<TR><TD bgcolor="#DDDDDD">foo.darwin</TD></TR>
23
+<TR><TD PORT="f0">1849</TD></TR>
24
+</TABLE>>];
25
+   }
26
+
27
+  subgraph cluster_1 {
28
+      color="blue"
29
+
30
+      "result:dst"         -> "result:dst/foo"
31
+      "result:dst"         [ label="dst"]
32
+      "result:dst/foo"     [ shape="none", label=< <TABLE BORDER="3" CELLBORDER="0" CELLSPACING="0">
33
+<TR><TD bgcolor="#DDDDDD">foo</TD></TR>
34
+<TR><TD PORT="f0">1849</TD></TR>
35
+</TABLE>>];
36
+
37
+      rank=same ;
38
+      "result:src"         -> "result:src/foo.darwin"
39
+      "result:src"         [ label="src"]
40
+      "result:src/foo.darwin"     [ shape="none", label=< <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0">
41
+<TR><TD bgcolor="#DDDDDD">foo.darwin</TD></TR>
42
+<TR><TD PORT="f0">1849</TD></TR>
43
+</TABLE>>];
44
+   }
45
+}
0 46
\ No newline at end of file
1 47
new file mode 100644
... ...
@@ -0,0 +1,95 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+<!-- Generated by graphviz version 2.34.0 (20131231.1455)
5
+ -->
6
+<!-- Title: inherit Pages: 1 -->
7
+<svg width="348pt" height="226pt"
8
+ viewBox="0.00 0.00 348.00 226.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 222)">
10
+<title>inherit</title>
11
+<polygon fill="white" stroke="white" points="-4,4 -4,-222 344,-222 344,4 -4,4"/>
12
+<g id="clust1" class="cluster"><title>cluster_0</title>
13
+<polygon fill="none" stroke="red" points="8,-8 8,-152 150,-152 150,-8 8,-8"/>
14
+</g>
15
+<g id="clust2" class="cluster"><title>cluster_1</title>
16
+<polygon fill="none" stroke="blue" points="158,-8 158,-152 332,-152 332,-8 158,-8"/>
17
+</g>
18
+<!-- Before -->
19
+<g id="node1" class="node"><title>Before</title>
20
+<polygon fill="none" stroke="red" points="87.9551,-181 87.9551,-217 142.045,-217 142.045,-181 87.9551,-181"/>
21
+<text text-anchor="middle" x="115" y="-193.4" font-family="Times,serif" font-size="14.00">Before</text>
22
+</g>
23
+<!-- dst -->
24
+<g id="node3" class="node"><title>dst</title>
25
+<polygon fill="none" stroke="black" points="142,-144 139,-148 118,-148 115,-144 88,-144 88,-108 142,-108 142,-144"/>
26
+<text text-anchor="middle" x="115" y="-120.4" font-family="Times,serif" font-size="14.00">dst</text>
27
+</g>
28
+<!-- Before&#45;&gt;dst -->
29
+<g id="edge1" class="edge"><title>Before&#45;&gt;dst</title>
30
+<path fill="none" stroke="black" d="M115,-180.813C115,-172.789 115,-163.047 115,-154.069"/>
31
+<polygon fill="black" stroke="black" points="118.5,-162 115,-152 111.5,-162 118.5,-162"/>
32
+</g>
33
+<!-- After -->
34
+<g id="node2" class="node"><title>After</title>
35
+<polygon fill="none" stroke="blue" points="269,-181 269,-217 323,-217 323,-181 269,-181"/>
36
+<text text-anchor="middle" x="295.769" y="-193.4" font-family="Times,serif" font-size="14.00">After</text>
37
+</g>
38
+<!-- result:dst -->
39
+<g id="node4" class="node"><title>result:dst</title>
40
+<polygon fill="none" stroke="black" points="323,-144 320,-148 299,-148 296,-144 269,-144 269,-108 323,-108 323,-144"/>
41
+<text text-anchor="middle" x="296" y="-120.4" font-family="Times,serif" font-size="14.00">dst</text>
42
+</g>
43
+<!-- After&#45;&gt;result:dst -->
44
+<g id="edge2" class="edge"><title>After&#45;&gt;result:dst</title>
45
+<path fill="none" stroke="black" d="M296,-180.813C296,-172.789 296,-163.047 296,-154.069"/>
46
+<polygon fill="black" stroke="black" points="299.5,-162 296,-152 292.5,-162 299.5,-162"/>
47
+</g>
48
+<!-- result:dst/foo -->
49
+<g id="node7" class="node"><title>result:dst/foo</title>
50
+<polygon fill="#dddddd" stroke="none" points="280,-43 280,-64 313,-64 313,-43 280,-43"/>
51
+<text text-anchor="start" x="287.169" y="-47.9" font-family="Times,serif" font-size="14.00">foo</text>
52
+<text text-anchor="start" x="282.5" y="-27" font-family="Times,serif" font-size="14.00">1849</text>
53
+<polygon fill="none" stroke="black" stroke-width="3" points="278,-22 278,-66 314,-66 314,-22 278,-22"/>
54
+</g>
55
+<!-- result:dst&#45;&gt;result:dst/foo -->
56
+<g id="edge4" class="edge"><title>result:dst&#45;&gt;result:dst/foo</title>
57
+<path fill="none" stroke="black" d="M296,-107.641C296,-100.11 296,-90.9832 296,-82.0529"/>
58
+<polygon fill="black" stroke="black" points="299.5,-81.7674 296,-71.7675 292.5,-81.7675 299.5,-81.7674"/>
59
+</g>
60
+<!-- src -->
61
+<g id="node5" class="node"><title>src</title>
62
+<polygon fill="none" stroke="black" points="70,-144 67,-148 46,-148 43,-144 16,-144 16,-108 70,-108 70,-144"/>
63
+<text text-anchor="middle" x="43" y="-120.4" font-family="Times,serif" font-size="14.00">src</text>
64
+</g>
65
+<!-- foo.darwin -->
66
+<g id="node6" class="node"><title>foo.darwin</title>
67
+<polygon fill="#dddddd" stroke="none" points="27,-43 27,-64 93,-64 93,-43 27,-43"/>
68
+<text text-anchor="start" x="29.481" y="-47.9" font-family="Times,serif" font-size="14.00">foo.darwin</text>
69
+<text text-anchor="start" x="46" y="-27" font-family="Times,serif" font-size="14.00">1849</text>
70
+<polygon fill="none" stroke="black" stroke-width="3" points="25.5,-22 25.5,-66 94.5,-66 94.5,-22 25.5,-22"/>
71
+</g>
72
+<!-- src&#45;&gt;foo.darwin -->
73
+<g id="edge3" class="edge"><title>src&#45;&gt;foo.darwin</title>
74
+<path fill="none" stroke="black" d="M46.6887,-107.641C48.3064,-100.029 50.2708,-90.7846 52.1881,-81.7618"/>
75
+<polygon fill="black" stroke="black" points="55.6568,-82.2766 54.3119,-71.7675 48.8097,-80.8215 55.6568,-82.2766"/>
76
+</g>
77
+<!-- result:src -->
78
+<g id="node8" class="node"><title>result:src</title>
79
+<polygon fill="none" stroke="black" points="235,-144 232,-148 211,-148 208,-144 181,-144 181,-108 235,-108 235,-144"/>
80
+<text text-anchor="middle" x="208" y="-120.4" font-family="Times,serif" font-size="14.00">src</text>
81
+</g>
82
+<!-- result:src/foo.darwin -->
83
+<g id="node9" class="node"><title>result:src/foo.darwin</title>
84
+<polygon fill="#dddddd" stroke="none" points="175,-43 175,-64 241,-64 241,-43 175,-43"/>
85
+<text text-anchor="start" x="177.481" y="-47.9" font-family="Times,serif" font-size="14.00">foo.darwin</text>
86
+<text text-anchor="start" x="194" y="-27" font-family="Times,serif" font-size="14.00">1849</text>
87
+<polygon fill="none" stroke="black" points="174,-22.5 174,-65.5 242,-65.5 242,-22.5 174,-22.5"/>
88
+</g>
89
+<!-- result:src&#45;&gt;result:src/foo.darwin -->
90
+<g id="edge5" class="edge"><title>result:src&#45;&gt;result:src/foo.darwin</title>
91
+<path fill="none" stroke="black" d="M208,-107.641C208,-99.4742 208,-89.4297 208,-79.795"/>
92
+<polygon fill="black" stroke="black" points="211.5,-79.6093 208,-69.6094 204.5,-79.6094 211.5,-79.6093"/>
93
+</g>
94
+</g>
95
+</svg>
0 96
new file mode 100644
... ...
@@ -0,0 +1,40 @@
1
+digraph inherit {
2
+   node [shape="folder"]
3
+
4
+   compound=true;
5
+   node [shape= record];
6
+
7
+   "Before" [ label="Before", color="red" ]
8
+   "After"  [ label="After", color="blue" ]
9
+
10
+   node [shape= folder];
11
+
12
+   "Before" -> "dst"     [lhead=cluster_0];
13
+   "After"  -> "result:dst" [lhead=cluster_1];
14
+
15
+  subgraph cluster_0 {
16
+      color="red"
17
+
18
+      "dst"
19
+
20
+      "src" -> "foo.linux"
21
+      "foo.linux"           [ shape="none", label=< <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0">
22
+<TR><TD bgcolor="#DDDDDD">foo.linux</TD></TR>
23
+<TR><TD PORT="f0">1850</TD></TR>
24
+</TABLE>>];
25
+   }
26
+
27
+  subgraph cluster_1 {
28
+      color="blue"
29
+
30
+      "result:dst"         [ label="dst"]
31
+
32
+      rank=same ;
33
+      "result:src"         -> "result:src/foo.linux"
34
+      "result:src"         [ label="src"]
35
+      "result:src/foo.linux"     [ shape="none", label=< <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0">
36
+<TR><TD bgcolor="#DDDDDD">foo.linux</TD></TR>
37
+<TR><TD PORT="f0">1850</TD></TR>
38
+</TABLE>>];
39
+   }
40
+}
0 41
\ No newline at end of file
1 42
new file mode 100644
... ...
@@ -0,0 +1,83 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+<!-- Generated by graphviz version 2.34.0 (20131231.1455)
5
+ -->
6
+<!-- Title: inherit Pages: 1 -->
7
+<svg width="316pt" height="222pt"
8
+ viewBox="0.00 0.00 316.00 222.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 218)">
10
+<title>inherit</title>
11
+<polygon fill="white" stroke="white" points="-4,4 -4,-218 312,-218 312,4 -4,4"/>
12
+<g id="clust1" class="cluster"><title>cluster_0</title>
13
+<polygon fill="none" stroke="red" points="8,-8 8,-148 150,-148 150,-8 8,-8"/>
14
+</g>
15
+<g id="clust2" class="cluster"><title>cluster_1</title>
16
+<polygon fill="none" stroke="blue" points="158,-8 158,-148 300,-148 300,-8 158,-8"/>
17
+</g>
18
+<!-- Before -->
19
+<g id="node1" class="node"><title>Before</title>
20
+<polygon fill="none" stroke="red" points="87.9551,-177 87.9551,-213 142.045,-213 142.045,-177 87.9551,-177"/>
21
+<text text-anchor="middle" x="115" y="-189.4" font-family="Times,serif" font-size="14.00">Before</text>
22
+</g>
23
+<!-- dst -->
24
+<g id="node3" class="node"><title>dst</title>
25
+<polygon fill="none" stroke="black" points="142,-140 139,-144 118,-144 115,-140 88,-140 88,-104 142,-104 142,-140"/>
26
+<text text-anchor="middle" x="115" y="-116.4" font-family="Times,serif" font-size="14.00">dst</text>
27
+</g>
28
+<!-- Before&#45;&gt;dst -->
29
+<g id="edge1" class="edge"><title>Before&#45;&gt;dst</title>
30
+<path fill="none" stroke="black" d="M115,-176.813C115,-168.789 115,-159.047 115,-150.069"/>
31
+<polygon fill="black" stroke="black" points="118.5,-158 115,-148 111.5,-158 118.5,-158"/>
32
+</g>
33
+<!-- After -->
34
+<g id="node2" class="node"><title>After</title>
35
+<polygon fill="none" stroke="blue" points="238,-177 238,-213 292,-213 292,-177 238,-177"/>
36
+<text text-anchor="middle" x="264.769" y="-189.4" font-family="Times,serif" font-size="14.00">After</text>
37
+</g>
38
+<!-- result:dst -->
39
+<g id="node4" class="node"><title>result:dst</title>
40
+<polygon fill="none" stroke="black" points="292,-140 289,-144 268,-144 265,-140 238,-140 238,-104 292,-104 292,-140"/>
41
+<text text-anchor="middle" x="265" y="-116.4" font-family="Times,serif" font-size="14.00">dst</text>
42
+</g>
43
+<!-- After&#45;&gt;result:dst -->
44
+<g id="edge2" class="edge"><title>After&#45;&gt;result:dst</title>
45
+<path fill="none" stroke="black" d="M265,-176.813C265,-168.789 265,-159.047 265,-150.069"/>
46
+<polygon fill="black" stroke="black" points="268.5,-158 265,-148 261.5,-158 268.5,-158"/>
47
+</g>
48
+<!-- src -->
49
+<g id="node5" class="node"><title>src</title>
50
+<polygon fill="none" stroke="black" points="70,-140 67,-144 46,-144 43,-140 16,-140 16,-104 70,-104 70,-140"/>
51
+<text text-anchor="middle" x="43" y="-116.4" font-family="Times,serif" font-size="14.00">src</text>
52
+</g>
53
+<!-- foo.linux -->
54
+<g id="node6" class="node"><title>foo.linux</title>
55
+<polygon fill="#dddddd" stroke="none" points="26,-41 26,-62 81,-62 81,-41 26,-41"/>
56
+<text text-anchor="start" x="28.0293" y="-45.9" font-family="Times,serif" font-size="14.00">foo.linux</text>
57
+<text text-anchor="start" x="39.5" y="-25" font-family="Times,serif" font-size="14.00">1850</text>
58
+<polygon fill="none" stroke="black" points="24.5,-20.5 24.5,-63.5 81.5,-63.5 81.5,-20.5 24.5,-20.5"/>
59
+</g>
60
+<!-- src&#45;&gt;foo.linux -->
61
+<g id="edge3" class="edge"><title>src&#45;&gt;foo.linux</title>
62
+<path fill="none" stroke="black" d="M45.2193,-103.689C46.206,-95.9935 47.4044,-86.6455 48.5622,-77.6152"/>
63
+<polygon fill="black" stroke="black" points="52.0384,-78.0235 49.8385,-67.6596 45.0952,-77.1333 52.0384,-78.0235"/>
64
+</g>
65
+<!-- result:src -->
66
+<g id="node7" class="node"><title>result:src</title>
67
+<polygon fill="none" stroke="black" points="220,-140 217,-144 196,-144 193,-140 166,-140 166,-104 220,-104 220,-140"/>
68
+<text text-anchor="middle" x="193" y="-116.4" font-family="Times,serif" font-size="14.00">src</text>
69
+</g>
70
+<!-- result:src/foo.linux -->
71
+<g id="node8" class="node"><title>result:src/foo.linux</title>
72
+<polygon fill="#dddddd" stroke="none" points="176,-41 176,-62 231,-62 231,-41 176,-41"/>
73
+<text text-anchor="start" x="178.029" y="-45.9" font-family="Times,serif" font-size="14.00">foo.linux</text>
74
+<text text-anchor="start" x="189.5" y="-25" font-family="Times,serif" font-size="14.00">1850</text>
75
+<polygon fill="none" stroke="black" points="174.5,-20.5 174.5,-63.5 231.5,-63.5 231.5,-20.5 174.5,-20.5"/>
76
+</g>
77
+<!-- result:src&#45;&gt;result:src/foo.linux -->
78
+<g id="edge4" class="edge"><title>result:src&#45;&gt;result:src/foo.linux</title>
79
+<path fill="none" stroke="black" d="M195.219,-103.689C196.206,-95.9935 197.404,-86.6455 198.562,-77.6152"/>
80
+<polygon fill="black" stroke="black" points="202.038,-78.0235 199.839,-67.6596 195.095,-77.1333 202.038,-78.0235"/>
81
+</g>
82
+</g>
83
+</svg>
0 84
new file mode 100644
... ...
@@ -0,0 +1,64 @@
1
+digraph inherit {
2
+   node [shape="folder"]
3
+
4
+   compound=true;
5
+   node [shape= record];
6
+
7
+   "Before" [ label="Before", color="red" ]
8
+   "After"  [ label="After", color="blue" ]
9
+
10
+   node [shape= folder];
11
+
12
+   "Before" -> "dst"     [lhead=cluster_0];
13
+   "After"  -> "result:dst" [lhead=cluster_1];
14
+
15
+  subgraph cluster_0 {
16
+      color="red"
17
+
18
+      "dst"
19
+
20
+      "src" -> "foo"
21
+      "src" -> "foo.darwin"
22
+      "src" -> "foo.linux"
23
+      "foo"           [ shape="none", label=< <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0">
24
+<TR><TD bgcolor="#DDDDDD">foo</TD></TR>
25
+<TR><TD PORT="f0">1848</TD></TR>
26
+</TABLE>>];
27
+      "foo.darwin"           [ shape="none", label=< <TABLE BORDER="3" CELLBORDER="0" CELLSPACING="0">
28
+<TR><TD bgcolor="#DDDDDD">foo.darwin</TD></TR>
29
+<TR><TD PORT="f0">1849</TD></TR>
30
+</TABLE>>];
31
+      "foo.linux"           [ shape="none", label=< <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0">
32
+<TR><TD bgcolor="#DDDDDD">foo.linux</TD></TR>
33
+<TR><TD PORT="f0">1850</TD></TR>
34
+</TABLE>>];
35
+   }
36
+
37
+  subgraph cluster_1 {
38
+      color="blue"
39
+
40
+      "result:dst"         [ label="dst"]
41
+      "result:dst"         ->  "result:dst/foo"
42
+      "result:dst/foo"     [ shape="none", label=< <TABLE BORDER="3" CELLBORDER="0" CELLSPACING="0">
43
+<TR><TD bgcolor="#DDDDDD">foo</TD></TR>
44
+<TR><TD PORT="f0">1849</TD></TR>
45
+</TABLE>>];
46
+
47
+      "result:src"         [ label="src"]
48
+      "result:src"         -> "result:src/foo"
49
+      "result:src"         -> "result:src/foo.darwin"
50
+      "result:src"         -> "result:src/foo.linux"
51
+      "result:src/foo"     [ shape="none", label=< <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0">
52
+<TR><TD bgcolor="#DDDDDD">foo</TD></TR>
53
+<TR><TD PORT="f0">1848</TD></TR>
54
+</TABLE>>];
55
+      "result:src/foo.darwin"     [ shape="none", label=< <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0">
56
+<TR><TD bgcolor="#DDDDDD">foo.darwin</TD></TR>
57
+<TR><TD PORT="f0">1849</TD></TR>
58
+</TABLE>>];
59
+      "result:src/foo.linux"     [ shape="none", label=< <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0">
60
+<TR><TD bgcolor="#DDDDDD">foo.linux</TD></TR>
61
+<TR><TD PORT="f0">1850</TD></TR>
62
+</TABLE>>];
63
+   }
64
+}
0 65
\ No newline at end of file
1 66
new file mode 100644
... ...
@@ -0,0 +1,143 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+<!-- Generated by graphviz version 2.34.0 (20131231.1455)
5
+ -->
6
+<!-- Title: inherit Pages: 1 -->
7
+<svg width="637pt" height="226pt"
8
+ viewBox="0.00 0.00 637.00 226.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 222)">
10
+<title>inherit</title>
11
+<polygon fill="white" stroke="white" points="-4,4 -4,-222 633,-222 633,4 -4,4"/>
12
+<g id="clust1" class="cluster"><title>cluster_0</title>
13
+<polygon fill="none" stroke="red" points="8,-8 8,-152 276,-152 276,-8 8,-8"/>
14
+</g>
15
+<g id="clust2" class="cluster"><title>cluster_1</title>
16
+<polygon fill="none" stroke="blue" points="284,-8 284,-152 621,-152 621,-8 284,-8"/>
17
+</g>
18
+<!-- Before -->
19
+<g id="node1" class="node"><title>Before</title>
20
+<polygon fill="none" stroke="red" points="195.955,-181 195.955,-217 250.045,-217 250.045,-181 195.955,-181"/>
21
+<text text-anchor="middle" x="223" y="-193.4" font-family="Times,serif" font-size="14.00">Before</text>
22
+</g>
23
+<!-- dst -->
24
+<g id="node3" class="node"><title>dst</title>
25
+<polygon fill="none" stroke="black" points="250,-144 247,-148 226,-148 223,-144 196,-144 196,-108 250,-108 250,-144"/>
26
+<text text-anchor="middle" x="223" y="-120.4" font-family="Times,serif" font-size="14.00">dst</text>
27
+</g>
28
+<!-- Before&#45;&gt;dst -->
29
+<g id="edge1" class="edge"><title>Before&#45;&gt;dst</title>
30
+<path fill="none" stroke="black" d="M223,-180.813C223,-172.789 223,-163.047 223,-154.069"/>
31
+<polygon fill="black" stroke="black" points="226.5,-162 223,-152 219.5,-162 226.5,-162"/>
32
+</g>
33
+<!-- After -->
34
+<g id="node2" class="node"><title>After</title>
35
+<polygon fill="none" stroke="blue" points="558,-181 558,-217 612,-217 612,-181 558,-181"/>
36
+<text text-anchor="middle" x="584.769" y="-193.4" font-family="Times,serif" font-size="14.00">After</text>
37
+</g>
38
+<!-- result:dst -->
39
+<g id="node4" class="node"><title>result:dst</title>
40
+<polygon fill="none" stroke="black" points="612,-144 609,-148 588,-148 585,-144 558,-144 558,-108 612,-108 612,-144"/>
41
+<text text-anchor="middle" x="585" y="-120.4" font-family="Times,serif" font-size="14.00">dst</text>
42
+</g>
43
+<!-- After&#45;&gt;result:dst -->
44
+<g id="edge2" class="edge"><title>After&#45;&gt;result:dst</title>
45
+<path fill="none" stroke="black" d="M585,-180.813C585,-172.789 585,-163.047 585,-154.069"/>
46
+<polygon fill="black" stroke="black" points="588.5,-162 585,-152 581.5,-162 588.5,-162"/>
47
+</g>
48
+<!-- result:dst/foo -->
49
+<g id="node9" class="node"><title>result:dst/foo</title>
50
+<polygon fill="#dddddd" stroke="none" points="569,-43 569,-64 602,-64 602,-43 569,-43"/>
51
+<text text-anchor="start" x="576.169" y="-47.9" font-family="Times,serif" font-size="14.00">foo</text>
52
+<text text-anchor="start" x="571.5" y="-27" font-family="Times,serif" font-size="14.00">1849</text>
53
+<polygon fill="none" stroke="black" stroke-width="3" points="567,-22 567,-66 603,-66 603,-22 567,-22"/>
54
+</g>
55
+<!-- result:dst&#45;&gt;result:dst/foo -->
56
+<g id="edge6" class="edge"><title>result:dst&#45;&gt;result:dst/foo</title>
57
+<path fill="none" stroke="black" d="M585,-107.641C585,-100.11 585,-90.9832 585,-82.0529"/>
58
+<polygon fill="black" stroke="black" points="588.5,-81.7674 585,-71.7675 581.5,-81.7675 588.5,-81.7674"/>
59
+</g>
60
+<!-- src -->
61
+<g id="node5" class="node"><title>src</title>
62
+<polygon fill="none" stroke="black" points="159,-144 156,-148 135,-148 132,-144 105,-144 105,-108 159,-108 159,-144"/>
63
+<text text-anchor="middle" x="132" y="-120.4" font-family="Times,serif" font-size="14.00">src</text>
64
+</g>
65
+<!-- foo -->
66
+<g id="node6" class="node"><title>foo</title>
67
+<polygon fill="#dddddd" stroke="none" points="27,-43 27,-64 60,-64 60,-43 27,-43"/>
68
+<text text-anchor="start" x="34.1689" y="-47.9" font-family="Times,serif" font-size="14.00">foo</text>
69
+<text text-anchor="start" x="29.5" y="-27" font-family="Times,serif" font-size="14.00">1848</text>
70
+<polygon fill="none" stroke="black" points="25.5,-22.5 25.5,-65.5 60.5,-65.5 60.5,-22.5 25.5,-22.5"/>
71
+</g>
72
+<!-- src&#45;&gt;foo -->
73
+<g id="edge3" class="edge"><title>src&#45;&gt;foo</title>
74
+<path fill="none" stroke="black" d="M112.688,-107.641C102.455,-98.4431 89.5731,-86.8634 77.6766,-76.1699"/>
75
+<polygon fill="black" stroke="black" points="79.8158,-73.3867 70.039,-69.3047 75.1363,-78.5927 79.8158,-73.3867"/>
76
+</g>
77
+<!-- foo.darwin -->
78
+<g id="node7" class="node"><title>foo.darwin</title>
79
+<polygon fill="#dddddd" stroke="none" points="99,-43 99,-64 165,-64 165,-43 99,-43"/>
80
+<text text-anchor="start" x="101.481" y="-47.9" font-family="Times,serif" font-size="14.00">foo.darwin</text>
81
+<text text-anchor="start" x="118" y="-27" font-family="Times,serif" font-size="14.00">1849</text>
82
+<polygon fill="none" stroke="black" stroke-width="3" points="97.5,-22 97.5,-66 166.5,-66 166.5,-22 97.5,-22"/>
83
+</g>
84
+<!-- src&#45;&gt;foo.darwin -->
85
+<g id="edge4" class="edge"><title>src&#45;&gt;foo.darwin</title>
86
+<path fill="none" stroke="black" d="M132,-107.641C132,-100.11 132,-90.9832 132,-82.0529"/>
87
+<polygon fill="black" stroke="black" points="135.5,-81.7674 132,-71.7675 128.5,-81.7675 135.5,-81.7674"/>
88
+</g>
89
+<!-- foo.linux -->
90
+<g id="node8" class="node"><title>foo.linux</title>
91
+<polygon fill="#dddddd" stroke="none" points="204,-43 204,-64 259,-64 259,-43 204,-43"/>
92
+<text text-anchor="start" x="206.029" y="-47.9" font-family="Times,serif" font-size="14.00">foo.linux</text>
93
+<text text-anchor="start" x="217.5" y="-27" font-family="Times,serif" font-size="14.00">1850</text>
94
+<polygon fill="none" stroke="black" points="202.5,-22.5 202.5,-65.5 259.5,-65.5 259.5,-22.5 202.5,-22.5"/>
95
+</g>
96
+<!-- src&#45;&gt;foo.linux -->
97
+<g id="edge5" class="edge"><title>src&#45;&gt;foo.linux</title>
98
+<path fill="none" stroke="black" d="M153.482,-107.641C164.878,-98.4316 179.23,-86.8345 192.477,-76.1299"/>
99
+<polygon fill="black" stroke="black" points="194.968,-78.6169 200.546,-69.6094 190.568,-73.1723 194.968,-78.6169"/>
100
+</g>
101
+<!-- result:src -->
102
+<g id="node10" class="node"><title>result:src</title>
103
+<polygon fill="none" stroke="black" points="433,-144 430,-148 409,-148 406,-144 379,-144 379,-108 433,-108 433,-144"/>
104
+<text text-anchor="middle" x="406" y="-120.4" font-family="Times,serif" font-size="14.00">src</text>
105
+</g>
106
+<!-- result:src/foo -->
107
+<g id="node11" class="node"><title>result:src/foo</title>
108
+<polygon fill="#dddddd" stroke="none" points="303,-43 303,-64 336,-64 336,-43 303,-43"/>
109
+<text text-anchor="start" x="310.169" y="-47.9" font-family="Times,serif" font-size="14.00">foo</text>
110
+<text text-anchor="start" x="305.5" y="-27" font-family="Times,serif" font-size="14.00">1848</text>
111
+<polygon fill="none" stroke="black" points="301.5,-22.5 301.5,-65.5 336.5,-65.5 336.5,-22.5 301.5,-22.5"/>
112
+</g>
113
+<!-- result:src&#45;&gt;result:src/foo -->
114
+<g id="edge7" class="edge"><title>result:src&#45;&gt;result:src/foo</title>
115
+<path fill="none" stroke="black" d="M387.122,-107.641C377.201,-98.5185 364.733,-87.0531 353.183,-76.4331"/>
116
+<polygon fill="black" stroke="black" points="355.493,-73.8018 345.763,-69.6094 350.755,-78.9545 355.493,-73.8018"/>
117
+</g>
118
+<!-- result:src/foo.darwin -->
119
+<g id="node12" class="node"><title>result:src/foo.darwin</title>
120
+<polygon fill="#dddddd" stroke="none" points="373,-43 373,-64 439,-64 439,-43 373,-43"/>
121
+<text text-anchor="start" x="375.481" y="-47.9" font-family="Times,serif" font-size="14.00">foo.darwin</text>
122
+<text text-anchor="start" x="392" y="-27" font-family="Times,serif" font-size="14.00">1849</text>
123
+<polygon fill="none" stroke="black" points="372,-22.5 372,-65.5 440,-65.5 440,-22.5 372,-22.5"/>
124
+</g>
125
+<!-- result:src&#45;&gt;result:src/foo.darwin -->
126
+<g id="edge8" class="edge"><title>result:src&#45;&gt;result:src/foo.darwin</title>
127
+<path fill="none" stroke="black" d="M406,-107.641C406,-99.4742 406,-89.4297 406,-79.795"/>
128
+<polygon fill="black" stroke="black" points="409.5,-79.6093 406,-69.6094 402.5,-79.6094 409.5,-79.6093"/>
129
+</g>
130
+<!-- result:src/foo.linux -->
131
+<g id="node13" class="node"><title>result:src/foo.linux</title>
132
+<polygon fill="#dddddd" stroke="none" points="476,-43 476,-64 531,-64 531,-43 476,-43"/>
133
+<text text-anchor="start" x="478.029" y="-47.9" font-family="Times,serif" font-size="14.00">foo.linux</text>
134
+<text text-anchor="start" x="489.5" y="-27" font-family="Times,serif" font-size="14.00">1850</text>
135
+<polygon fill="none" stroke="black" points="474.5,-22.5 474.5,-65.5 531.5,-65.5 531.5,-22.5 474.5,-22.5"/>
136
+</g>
137
+<!-- result:src&#45;&gt;result:src/foo.linux -->
138
+<g id="edge9" class="edge"><title>result:src&#45;&gt;result:src/foo.linux</title>
139
+<path fill="none" stroke="black" d="M427.048,-107.641C438.214,-98.4316 452.276,-86.8345 465.255,-76.1299"/>
140
+<polygon fill="black" stroke="black" points="467.673,-78.6722 473.161,-69.6094 463.219,-73.2719 467.673,-78.6722"/>
141
+</g>
142
+</g>
143
+</svg>
0 144
new file mode 100644
... ...
@@ -0,0 +1,43 @@
1
+digraph inherit {
2
+   node [shape= record]  ;
3
+
4
+   {
5
+
6
+      "settings"                [ color="red" ]
7
+      "stashes.Noobie.build"    [ label="stashes/Foobie/.bootstrap/Noobie.build", color="blue" ]
8
+      "Noobie.build"            [ label="Noobie.build", color="green" ]
9
+      "overrides"               [ color="goldenrod" ]
10
+   }
11
+
12
+
13
+   node [shape= folder];
14
+
15
+   "Noobie.build"          -> "settings"              [ label=" 1. inherit", dir=back]
16
+   "settings"              -> "stashes.Noobie.build"  [ label=" 2. inherit", dir=back]
17
+   "stashes.Noobie.build"  -> "overrides"             [ label=" 3. override", dir=back]
18
+
19
+   {
20
+
21
+      subgraph cluster_0 {
22
+         color="gray"
23
+
24
+
25
+         "FS:.bootstrap.auto"                [ label=".bootstrap.auto",fontcolor="gray"]
26
+         "FS:.bootstrap.auto/settings"       [ label="settings",fontcolor="red"]
27
+         "FS:.bootstrap.auto/overrides"      [ label="overrides",fontcolor="goldenrod"]
28
+         "FS:.bootstrap.auto/Noobie.build"   [ label="Noobie.build",fontcolor="green"]
29
+         "FS:stashes"                        [ label="stashes",fontcolor="gray"]
30
+         "FS:stashes/Foobie"                 [ label="Foobie",fontcolor="gray"]
31
+         "FS:stashes/Foobie/.bootstrap"      [ label=".bootstrap",fontcolor="gray"]
32
+         "FS:stashes/Foobie/.bootstrap/Noobie.build" [ label="Noobie.build",fontcolor="blue"]
33
+
34
+         "FS:.bootstrap.auto" -> "FS:.bootstrap.auto/settings"       [color="gray"]
35
+         "FS:.bootstrap.auto" -> "FS:.bootstrap.auto/overrides"      [color="gray"]
36
+         "FS:.bootstrap.auto" -> "FS:.bootstrap.auto/Noobie.build"   [color="gray"]
37
+
38
+         "FS:stashes"        -> "FS:stashes/Foobie"       [color="gray"]
39
+         "FS:stashes/Foobie" -> "FS:stashes/Foobie/.bootstrap"  [color="gray"]
40
+         "FS:stashes/Foobie/.bootstrap" -> "FS:stashes/Foobie/.bootstrap/Noobie.build"   [color="gray"]
41
+      }
42
+   }
43
+}
0 44
\ No newline at end of file
1 45
new file mode 100644
... ...
@@ -0,0 +1,124 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+<!-- Generated by graphviz version 2.34.0 (20131231.1455)
5
+ -->
6
+<!-- Title: inherit Pages: 1 -->
7
+<svg width="600pt" height="352pt"
8
+ viewBox="0.00 0.00 600.00 352.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 348)">
10
+<title>inherit</title>
11
+<polygon fill="white" stroke="white" points="-4,4 -4,-348 596,-348 596,4 -4,4"/>
12
+<g id="clust3" class="cluster"><title>cluster_0</title>
13
+<polygon fill="none" stroke="gray" points="243,-8 243,-336 584,-336 584,-8 243,-8"/>
14
+</g>
15
+<!-- settings -->
16
+<g id="node1" class="node"><title>settings</title>
17
+<polygon fill="none" stroke="red" points="87.6104,-200 87.6104,-236 146.39,-236 146.39,-200 87.6104,-200"/>
18
+<text text-anchor="middle" x="117" y="-212.4" font-family="Times,serif" font-size="14.00">settings</text>
19
+</g>
20
+<!-- stashes.Noobie.build -->
21
+<g id="node2" class="node"><title>stashes.Noobie.build</title>
22
+<polygon fill="none" stroke="blue" points="-0.658691,-108 -0.658691,-144 234.659,-144 234.659,-108 -0.658691,-108"/>
23
+<text text-anchor="middle" x="117" y="-120.4" font-family="Times,serif" font-size="14.00">stashes/Foobie/.bootstrap/Noobie.build</text>
24
+</g>
25
+<!-- settings&#45;&gt;stashes.Noobie.build -->
26
+<g id="edge2" class="edge"><title>settings&#45;&gt;stashes.Noobie.build</title>
27
+<path fill="none" stroke="black" d="M117,-189.557C117,-174.823 117,-157.11 117,-144.3"/>
28
+<polygon fill="black" stroke="black" points="113.5,-189.647 117,-199.647 120.5,-189.647 113.5,-189.647"/>
29
+<text text-anchor="middle" x="144.022" y="-166.4" font-family="Times,serif" font-size="14.00"> 2. inherit</text>
30
+</g>
31
+<!-- overrides -->
32
+<g id="node4" class="node"><title>overrides</title>
33
+<polygon fill="none" stroke="goldenrod" points="82.9551,-16 82.9551,-52 151.045,-52 151.045,-16 82.9551,-16"/>
34
+<text text-anchor="middle" x="117" y="-28.4" font-family="Times,serif" font-size="14.00">overrides</text>
35
+</g>
36
+<!-- stashes.Noobie.build&#45;&gt;overrides -->
37
+<g id="edge3" class="edge"><title>stashes.Noobie.build&#45;&gt;overrides</title>
38
+<path fill="none" stroke="black" d="M117,-97.5573C117,-82.823 117,-65.1103 117,-52.2996"/>
39
+<polygon fill="black" stroke="black" points="113.5,-97.6471 117,-107.647 120.5,-97.6471 113.5,-97.6471"/>
40
+<text text-anchor="middle" x="149.071" y="-74.4" font-family="Times,serif" font-size="14.00"> 3. override</text>
41
+</g>
42
+<!-- Noobie.build -->
43
+<g id="node3" class="node"><title>Noobie.build</title>
44
+<polygon fill="none" stroke="green" points="72.2534,-292 72.2534,-328 161.747,-328 161.747,-292 72.2534,-292"/>
45
+<text text-anchor="middle" x="117" y="-304.4" font-family="Times,serif" font-size="14.00">Noobie.build</text>
46
+</g>
47
+<!-- Noobie.build&#45;&gt;settings -->
48
+<g id="edge1" class="edge"><title>Noobie.build&#45;&gt;settings</title>
49
+<path fill="none" stroke="black" d="M117,-281.557C117,-266.823 117,-249.11 117,-236.3"/>
50
+<polygon fill="black" stroke="black" points="113.5,-281.647 117,-291.647 120.5,-281.647 113.5,-281.647"/>
51
+<text text-anchor="middle" x="144.022" y="-258.4" font-family="Times,serif" font-size="14.00"> 1. inherit</text>
52
+</g>
53
+<!-- FS:.bootstrap.auto -->
54
+<g id="node5" class="node"><title>FS:.bootstrap.auto</title>
55
+<polygon fill="none" stroke="black" points="483.405,-328 480.405,-332 459.405,-332 456.405,-328 384.595,-328 384.595,-292 483.405,-292 483.405,-328"/>
56
+<text text-anchor="middle" x="434" y="-304.4" font-family="Times,serif" font-size="14.00" fill="gray">.bootstrap.auto</text>
57
+</g>
58
+<!-- FS:.bootstrap.auto/settings -->
59
+<g id="node6" class="node"><title>FS:.bootstrap.auto/settings</title>
60
+<polygon fill="none" stroke="black" points="382.086,-236 379.086,-240 358.086,-240 355.086,-236 323.914,-236 323.914,-200 382.086,-200 382.086,-236"/>
61
+<text text-anchor="middle" x="353" y="-212.4" font-family="Times,serif" font-size="14.00" fill="red">settings</text>
62
+</g>
63
+<!-- FS:.bootstrap.auto&#45;&gt;FS:.bootstrap.auto/settings -->
64
+<g id="edge4" class="edge"><title>FS:.bootstrap.auto&#45;&gt;FS:.bootstrap.auto/settings</title>
65
+<path fill="none" stroke="gray" d="M418.382,-291.647C406.168,-278.076 389.024,-259.027 375.356,-243.84"/>
66
+<polygon fill="gray" stroke="gray" points="377.861,-241.391 368.57,-236.3 372.658,-246.074 377.861,-241.391"/>
67
+</g>
68
+<!-- FS:.bootstrap.auto/overrides -->
69
+<g id="node7" class="node"><title>FS:.bootstrap.auto/overrides</title>
70
+<polygon fill="none" stroke="black" points="468.067,-236 465.067,-240 444.067,-240 441.067,-236 399.933,-236 399.933,-200 468.067,-200 468.067,-236"/>
71
+<text text-anchor="middle" x="434" y="-212.4" font-family="Times,serif" font-size="14.00" fill="goldenrod">overrides</text>
72
+</g>
73
+<!-- FS:.bootstrap.auto&#45;&gt;FS:.bootstrap.auto/overrides -->
74
+<g id="edge5" class="edge"><title>FS:.bootstrap.auto&#45;&gt;FS:.bootstrap.auto/overrides</title>
75
+<path fill="none" stroke="gray" d="M434,-291.647C434,-278.823 434,-261.108 434,-246.381"/>
76
+<polygon fill="gray" stroke="gray" points="437.5,-246.3 434,-236.3 430.5,-246.3 437.5,-246.3"/>
77
+</g>
78
+<!-- FS:.bootstrap.auto/Noobie.build -->
79
+<g id="node8" class="node"><title>FS:.bootstrap.auto/Noobie.build</title>
80
+<polygon fill="none" stroke="black" points="575.619,-236 572.619,-240 551.619,-240 548.619,-236 486.381,-236 486.381,-200 575.619,-200 575.619,-236"/>
81
+<text text-anchor="middle" x="531" y="-212.4" font-family="Times,serif" font-size="14.00" fill="green">Noobie.build</text>
82
+</g>
83
+<!-- FS:.bootstrap.auto&#45;&gt;FS:.bootstrap.auto/Noobie.build -->
84
+<g id="edge6" class="edge"><title>FS:.bootstrap.auto&#45;&gt;FS:.bootstrap.auto/Noobie.build</title>
85
+<path fill="none" stroke="gray" d="M452.703,-291.647C467.464,-277.951 488.237,-258.677 504.677,-243.423"/>
86
+<polygon fill="gray" stroke="gray" points="507.405,-245.667 512.355,-236.3 502.644,-240.536 507.405,-245.667"/>
87
+</g>
88
+<!-- FS:stashes -->
89
+<g id="node9" class="node"><title>FS:stashes</title>
90
+<polygon fill="none" stroke="black" points="306.25,-328 303.25,-332 282.25,-332 279.25,-328 251.75,-328 251.75,-292 306.25,-292 306.25,-328"/>
91
+<text text-anchor="middle" x="279" y="-304.4" font-family="Times,serif" font-size="14.00" fill="gray">stashes</text>
92
+</g>
93
+<!-- FS:stashes/Foobie -->
94
+<g id="node10" class="node"><title>FS:stashes/Foobie</title>
95
+<polygon fill="none" stroke="black" points="305.168,-236 302.168,-240 281.168,-240 278.168,-236 250.832,-236 250.832,-200 305.168,-200 305.168,-236"/>
96
+<text text-anchor="middle" x="278" y="-212.4" font-family="Times,serif" font-size="14.00" fill="gray">Foobie</text>
97
+</g>
98
+<!-- FS:stashes&#45;&gt;FS:stashes/Foobie -->
99
+<g id="edge7" class="edge"><title>FS:stashes&#45;&gt;FS:stashes/Foobie</title>
100
+<path fill="none" stroke="gray" d="M278.807,-291.647C278.665,-278.823 278.468,-261.108 278.304,-246.381"/>
101
+<polygon fill="gray" stroke="gray" points="281.803,-246.26 278.192,-236.3 274.804,-246.338 281.803,-246.26"/>
102
+</g>
103
+<!-- FS:stashes/Foobie/.bootstrap -->
104
+<g id="node11" class="node"><title>FS:stashes/Foobie/.bootstrap</title>
105
+<polygon fill="none" stroke="black" points="325.206,-144 322.206,-148 301.206,-148 298.206,-144 254.794,-144 254.794,-108 325.206,-108 325.206,-144"/>
106
+<text text-anchor="middle" x="290" y="-120.4" font-family="Times,serif" font-size="14.00" fill="gray">.bootstrap</text>
107
+</g>
108
+<!-- FS:stashes/Foobie&#45;&gt;FS:stashes/Foobie/.bootstrap -->
109
+<g id="edge8" class="edge"><title>FS:stashes/Foobie&#45;&gt;FS:stashes/Foobie/.bootstrap</title>
110
+<path fill="none" stroke="gray" d="M280.314,-199.647C282.024,-186.823 284.386,-169.108 286.349,-154.381"/>
111
+<polygon fill="gray" stroke="gray" points="289.841,-154.675 287.693,-144.3 282.902,-153.749 289.841,-154.675"/>
112
+</g>
113
+<!-- FS:stashes/Foobie/.bootstrap/Noobie.build -->
114
+<g id="node12" class="node"><title>FS:stashes/Foobie/.bootstrap/Noobie.build</title>
115
+<polygon fill="none" stroke="black" points="340.619,-52 337.619,-56 316.619,-56 313.619,-52 251.381,-52 251.381,-16 340.619,-16 340.619,-52"/>
116
+<text text-anchor="middle" x="296" y="-28.4" font-family="Times,serif" font-size="14.00" fill="blue">Noobie.build</text>
117
+</g>
118
+<!-- FS:stashes/Foobie/.bootstrap&#45;&gt;FS:stashes/Foobie/.bootstrap/Noobie.build -->
119
+<g id="edge9" class="edge"><title>FS:stashes/Foobie/.bootstrap&#45;&gt;FS:stashes/Foobie/.bootstrap/Noobie.build</title>
120
+<path fill="none" stroke="gray" d="M291.157,-107.647C292.012,-94.8228 293.193,-77.1075 294.175,-62.3815"/>
121
+<polygon fill="gray" stroke="gray" points="297.674,-62.5103 294.847,-52.2996 290.689,-62.0446 297.674,-62.5103"/>
122
+</g>
123
+</g>
124
+</svg>
0 125
new file mode 100644
... ...
@@ -0,0 +1,61 @@
1
+digraph inherit {
2
+   node [shape= record]  ;
3
+
4
+   {
5
+
6
+      "settings"                       [ color="red" ]
7
+      "Noobie.build"                   [ label="Noobie.build", color="green" ]
8
+      "stashes.Foobie/Noobie.build"    [ label="stashes/Foobie/.bootstrap/Noobie.build", color="blue" ]
9
+      "stashes.Noobie/Noobie.build"    [ label="stashes/Noobie/.bootstrap/Noobie.build", color="purple" ]
10
+      "stashes.Toobie/Noobie.build"    [ label="stashes/Toobie/.bootstrap/Noobie.build", color="gray", fontcolor="gray" ]
11
+      "overrides"                      [ color="goldenrod" ]
12
+   }
13
+
14
+
15
+   node [shape= folder];
16
+
17
+   "Noobie.build"                -> "settings"                    [ label=" 1. inherit", dir=back]
18
+   "settings"                    -> "stashes.Foobie/Noobie.build" [ label=" 2. inherit", dir=back]
19
+   "stashes.Foobie/Noobie.build" -> "stashes.Noobie/Noobie.build" [ label=" 3. inherit", dir=back]
20
+   "stashes.Noobie/Noobie.build" -> "stashes.Toobie/Noobie.build" [ label=" 4. skipped", dir=back, color="gray", fontcolor="gray" ]
21
+   "stashes.Toobie/Noobie.build" -> "overrides"                   [ label=" 5. override", dir=back]
22
+
23
+   {
24
+
25
+      subgraph cluster_0 {
26
+         color="gray"
27
+
28
+
29
+         "FS:.bootstrap.auto"                [ label=".bootstrap.auto",fontcolor="gray"]
30
+         "FS:.bootstrap.auto/settings"       [ label="settings",fontcolor="red"]
31
+         "FS:.bootstrap.auto/overrides"      [ label="overrides",fontcolor="goldenrod"]
32
+         "FS:.bootstrap.auto/Noobie.build"   [ label="Noobie.build",fontcolor="green"]
33
+         "FS:stashes"                        [ label="stashes",fontcolor="gray"]
34
+
35
+         "FS:.bootstrap.auto" -> "FS:.bootstrap.auto/settings"       [color="gray"]
36
+         "FS:.bootstrap.auto" -> "FS:.bootstrap.auto/overrides"      [color="gray"]
37
+         "FS:.bootstrap.auto" -> "FS:.bootstrap.auto/Noobie.build"   [color="gray"]
38
+
39
+         "FS:stashes/Foobie"                 [ label="Foobie",fontcolor="gray"]
40
+         "FS:stashes/Foobie/.bootstrap"      [ label=".bootstrap",fontcolor="gray"]
41
+         "FS:stashes/Foobie/.bootstrap/Noobie.build" [ label="Noobie.build",fontcolor="blue"]
42
+         "FS:stashes"        -> "FS:stashes/Foobie"             [color="gray"]
43
+         "FS:stashes/Foobie" -> "FS:stashes/Foobie/.bootstrap"  [color="gray"]
44
+         "FS:stashes/Foobie/.bootstrap" -> "FS:stashes/Foobie/.bootstrap/Noobie.build"   [color="gray"]
45
+
46
+         "FS:stashes/Noobie"                 [ label="Noobie",fontcolor="gray"]
47
+         "FS:stashes/Noobie/.bootstrap"      [ label=".bootstrap",fontcolor="gray"]
48
+         "FS:stashes/Noobie/.bootstrap/Noobie.build" [ label="Noobie.build",fontcolor="purple"]
49
+         "FS:stashes"        -> "FS:stashes/Noobie"             [color="gray"]
50
+         "FS:stashes/Noobie" -> "FS:stashes/Noobie/.bootstrap"  [color="gray"]
51
+         "FS:stashes/Noobie/.bootstrap" -> "FS:stashes/Noobie/.bootstrap/Noobie.build"   [color="gray"]
52
+
53
+         "FS:stashes/Toobie"                 [ label="Toobie",fontcolor="gray"]
54
+         "FS:stashes/Toobie/.bootstrap"      [ label=".bootstrap",fontcolor="gray"]
55
+         "FS:stashes/Toobie/.bootstrap/Noobie.build" [ label="Toobie.build",fontcolor="gray"]
56
+         "FS:stashes"        -> "FS:stashes/Toobie"             [color="gray"]
57
+         "FS:stashes/Toobie" -> "FS:stashes/Toobie/.bootstrap"  [color="gray"]
58
+         "FS:stashes/Toobie/.bootstrap" -> "FS:stashes/Toobie/.bootstrap/Noobie.build"   [color="gray"]
59
+      }
60
+   }
61
+}
0 62
\ No newline at end of file
1 63
new file mode 100644
... ...
@@ -0,0 +1,206 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+<!-- Generated by graphviz version 2.34.0 (20131231.1455)
5
+ -->
6
+<!-- Title: inherit Pages: 1 -->
7
+<svg width="752pt" height="521pt"
8
+ viewBox="0.00 0.00 752.00 521.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 517)">
10
+<title>inherit</title>
11
+<polygon fill="white" stroke="white" points="-4,4 -4,-517 748,-517 748,4 -4,4"/>
12
+<g id="clust3" class="cluster"><title>cluster_0</title>
13
+<polygon fill="none" stroke="gray" points="247,-177 247,-505 736,-505 736,-177 247,-177"/>
14
+</g>
15
+<!-- settings -->
16
+<g id="node1" class="node"><title>settings</title>
17
+<polygon fill="none" stroke="red" points="88.6104,-369 88.6104,-405 147.39,-405 147.39,-369 88.6104,-369"/>
18
+<text text-anchor="middle" x="118" y="-381.4" font-family="Times,serif" font-size="14.00">settings</text>
19
+</g>
20
+<!-- stashes.Foobie/Noobie.build -->
21
+<g id="node3" class="node"><title>stashes.Foobie/Noobie.build</title>
22
+<polygon fill="none" stroke="blue" points="0.341309,-277 0.341309,-313 235.659,-313 235.659,-277 0.341309,-277"/>
23
+<text text-anchor="middle" x="118" y="-289.4" font-family="Times,serif" font-size="14.00">stashes/Foobie/.bootstrap/Noobie.build</text>
24
+</g>
25
+<!-- settings&#45;&gt;stashes.Foobie/Noobie.build -->
26
+<g id="edge2" class="edge"><title>settings&#45;&gt;stashes.Foobie/Noobie.build</title>
27
+<path fill="none" stroke="black" d="M118,-358.557C118,-343.823 118,-326.11 118,-313.3"/>
28
+<polygon fill="black" stroke="black" points="114.5,-358.647 118,-368.647 121.5,-358.647 114.5,-358.647"/>
29
+<text text-anchor="middle" x="145.022" y="-335.4" font-family="Times,serif" font-size="14.00"> 2. inherit</text>
30
+</g>
31
+<!-- Noobie.build -->
32
+<g id="node2" class="node"><title>Noobie.build</title>
33
+<polygon fill="none" stroke="green" points="73.2534,-461 73.2534,-497 162.747,-497 162.747,-461 73.2534,-461"/>
34
+<text text-anchor="middle" x="118" y="-473.4" font-family="Times,serif" font-size="14.00">Noobie.build</text>
35
+</g>
36
+<!-- Noobie.build&#45;&gt;settings -->
37
+<g id="edge1" class="edge"><title>Noobie.build&#45;&gt;settings</title>
38
+<path fill="none" stroke="black" d="M118,-450.557C118,-435.823 118,-418.11 118,-405.3"/>
39
+<polygon fill="black" stroke="black" points="114.5,-450.647 118,-460.647 121.5,-450.647 114.5,-450.647"/>
40
+<text text-anchor="middle" x="145.022" y="-427.4" font-family="Times,serif" font-size="14.00"> 1. inherit</text>
41
+</g>
42
+<!-- stashes.Noobie/Noobie.build -->
43
+<g id="node4" class="node"><title>stashes.Noobie/Noobie.build</title>
44
+<polygon fill="none" stroke="purple" points="-0.820801,-185 -0.820801,-221 236.821,-221 236.821,-185 -0.820801,-185"/>
45
+<text text-anchor="middle" x="118" y="-197.4" font-family="Times,serif" font-size="14.00">stashes/Noobie/.bootstrap/Noobie.build</text>
46
+</g>
47
+<!-- stashes.Foobie/Noobie.build&#45;&gt;stashes.Noobie/Noobie.build -->
48
+<g id="edge3" class="edge"><title>stashes.Foobie/Noobie.build&#45;&gt;stashes.Noobie/Noobie.build</title>
49
+<path fill="none" stroke="black" d="M118,-266.557C118,-251.823 118,-234.11 118,-221.3"/>
50
+<polygon fill="black" stroke="black" points="114.5,-266.647 118,-276.647 121.5,-266.647 114.5,-266.647"/>
51
+<text text-anchor="middle" x="145.022" y="-243.4" font-family="Times,serif" font-size="14.00"> 3. inherit</text>
52
+</g>
53
+<!-- stashes.Toobie/Noobie.build -->
54
+<g id="node5" class="node"><title>stashes.Toobie/Noobie.build</title>
55
+<polygon fill="none" stroke="gray" points="0.447266,-93 0.447266,-129 235.553,-129 235.553,-93 0.447266,-93"/>
56
+<text text-anchor="middle" x="118" y="-105.4" font-family="Times,serif" font-size="14.00" fill="gray">stashes/Toobie/.bootstrap/Noobie.build</text>
57
+</g>
58
+<!-- stashes.Noobie/Noobie.build&#45;&gt;stashes.Toobie/Noobie.build -->
59
+<g id="edge4" class="edge"><title>stashes.Noobie/Noobie.build&#45;&gt;stashes.Toobie/Noobie.build</title>
60
+<path fill="none" stroke="gray" d="M118,-174.557C118,-159.823 118,-142.11 118,-129.3"/>
61
+<polygon fill="gray" stroke="gray" points="114.5,-174.647 118,-184.647 121.5,-174.647 114.5,-174.647"/>
62
+<text text-anchor="middle" x="148.133" y="-151.4" font-family="Times,serif" font-size="14.00" fill="gray"> 4. ignored</text>
63
+</g>
64
+<!-- overrides -->
65
+<g id="node6" class="node"><title>overrides</title>
66
+<polygon fill="none" stroke="goldenrod" points="83.9551,-1 83.9551,-37 152.045,-37 152.045,-1 83.9551,-1"/>
67
+<text text-anchor="middle" x="118" y="-13.4" font-family="Times,serif" font-size="14.00">overrides</text>
68
+</g>
69
+<!-- stashes.Toobie/Noobie.build&#45;&gt;overrides -->
70
+<g id="edge5" class="edge"><title>stashes.Toobie/Noobie.build&#45;&gt;overrides</title>
71
+<path fill="none" stroke="black" d="M118,-82.5573C118,-67.823 118,-50.1103 118,-37.2996"/>
72
+<polygon fill="black" stroke="black" points="114.5,-82.6471 118,-92.6471 121.5,-82.6471 114.5,-82.6471"/>
73
+<text text-anchor="middle" x="150.071" y="-59.4" font-family="Times,serif" font-size="14.00"> 5. override</text>
74
+</g>
75
+<!-- FS:.bootstrap.auto -->
76
+<g id="node7" class="node"><title>FS:.bootstrap.auto</title>
77
+<polygon fill="none" stroke="black" points="635.405,-497 632.405,-501 611.405,-501 608.405,-497 536.595,-497 536.595,-461 635.405,-461 635.405,-497"/>
78
+<text text-anchor="middle" x="586" y="-473.4" font-family="Times,serif" font-size="14.00" fill="gray">.bootstrap.auto</text>
79
+</g>
80
+<!-- FS:.bootstrap.auto/settings -->
81
+<g id="node8" class="node"><title>FS:.bootstrap.auto/settings</title>
82
+<polygon fill="none" stroke="black" points="534.086,-405 531.086,-409 510.086,-409 507.086,-405 475.914,-405 475.914,-369 534.086,-369 534.086,-405"/>
83
+<text text-anchor="middle" x="505" y="-381.4" font-family="Times,serif" font-size="14.00" fill="red">settings</text>
84
+</g>
85
+<!-- FS:.bootstrap.auto&#45;&gt;FS:.bootstrap.auto/settings -->
86
+<g id="edge6" class="edge"><title>FS:.bootstrap.auto&#45;&gt;FS:.bootstrap.auto/settings</title>
87
+<path fill="none" stroke="gray" d="M570.382,-460.647C558.168,-447.076 541.024,-428.027 527.356,-412.84"/>
88
+<polygon fill="gray" stroke="gray" points="529.861,-410.391 520.57,-405.3 524.658,-415.074 529.861,-410.391"/>
89
+</g>
90
+<!-- FS:.bootstrap.auto/overrides -->
91
+<g id="node9" class="node"><title>FS:.bootstrap.auto/overrides</title>
92
+<polygon fill="none" stroke="black" points="620.067,-405 617.067,-409 596.067,-409 593.067,-405 551.933,-405 551.933,-369 620.067,-369 620.067,-405"/>
93
+<text text-anchor="middle" x="586" y="-381.4" font-family="Times,serif" font-size="14.00" fill="goldenrod">overrides</text>
94
+</g>
95
+<!-- FS:.bootstrap.auto&#45;&gt;FS:.bootstrap.auto/overrides -->
96
+<g id="edge7" class="edge"><title>FS:.bootstrap.auto&#45;&gt;FS:.bootstrap.auto/overrides</title>
97
+<path fill="none" stroke="gray" d="M586,-460.647C586,-447.823 586,-430.108 586,-415.381"/>
98
+<polygon fill="gray" stroke="gray" points="589.5,-415.3 586,-405.3 582.5,-415.3 589.5,-415.3"/>
99
+</g>
100
+<!-- FS:.bootstrap.auto/Noobie.build -->
101
+<g id="node10" class="node"><title>FS:.bootstrap.auto/Noobie.build</title>
102
+<polygon fill="none" stroke="black" points="727.619,-405 724.619,-409 703.619,-409 700.619,-405 638.381,-405 638.381,-369 727.619,-369 727.619,-405"/>
103
+<text text-anchor="middle" x="683" y="-381.4" font-family="Times,serif" font-size="14.00" fill="green">Noobie.build</text>
104
+</g>
105
+<!-- FS:.bootstrap.auto&#45;&gt;FS:.bootstrap.auto/Noobie.build -->
106
+<g id="edge8" class="edge"><title>FS:.bootstrap.auto&#45;&gt;FS:.bootstrap.auto/Noobie.build</title>
107
+<path fill="none" stroke="gray" d="M604.703,-460.647C619.464,-446.951 640.237,-427.677 656.677,-412.423"/>
108
+<polygon fill="gray" stroke="gray" points="659.405,-414.667 664.355,-405.3 654.644,-409.536 659.405,-414.667"/>
109
+</g>
110
+<!-- FS:stashes -->
111
+<g id="node11" class="node"><title>FS:stashes</title>
112
+<polygon fill="none" stroke="black" points="383.25,-497 380.25,-501 359.25,-501 356.25,-497 328.75,-497 328.75,-461 383.25,-461 383.25,-497"/>
113
+<text text-anchor="middle" x="356" y="-473.4" font-family="Times,serif" font-size="14.00" fill="gray">stashes</text>
114
+</g>
115
+<!-- FS:stashes/Foobie -->
116
+<g id="node12" class="node"><title>FS:stashes/Foobie</title>
117
+<polygon fill="none" stroke="black" points="309.168,-405 306.168,-409 285.168,-409 282.168,-405 254.832,-405 254.832,-369 309.168,-369 309.168,-405"/>
118
+<text text-anchor="middle" x="282" y="-381.4" font-family="Times,serif" font-size="14.00" fill="gray">Foobie</text>
119
+</g>
120
+<!-- FS:stashes&#45;&gt;FS:stashes/Foobie -->
121
+<g id="edge9" class="edge"><title>FS:stashes&#45;&gt;FS:stashes/Foobie</title>
122
+<path fill="none" stroke="gray" d="M341.732,-460.647C330.676,-447.2 315.198,-428.376 302.768,-413.259"/>
123
+<polygon fill="gray" stroke="gray" points="305.279,-410.801 296.224,-405.3 299.872,-415.247 305.279,-410.801"/>
124
+</g>
125
+<!-- FS:stashes/Noobie -->
126
+<g id="node15" class="node"><title>FS:stashes/Noobie</title>
127
+<polygon fill="none" stroke="black" points="384.41,-405 381.41,-409 360.41,-409 357.41,-405 327.59,-405 327.59,-369 384.41,-369 384.41,-405"/>
128
+<text text-anchor="middle" x="356" y="-381.4" font-family="Times,serif" font-size="14.00" fill="gray">Noobie</text>
129
+</g>
130
+<!-- FS:stashes&#45;&gt;FS:stashes/Noobie -->
131
+<g id="edge12" class="edge"><title>FS:stashes&#45;&gt;FS:stashes/Noobie</title>
132
+<path fill="none" stroke="gray" d="M356,-460.647C356,-447.823 356,-430.108 356,-415.381"/>
133
+<polygon fill="gray" stroke="gray" points="359.5,-415.3 356,-405.3 352.5,-415.3 359.5,-415.3"/>
134
+</g>
135
+<!-- FS:stashes/Toobie -->
136
+<g id="node18" class="node"><title>FS:stashes/Toobie</title>
137
+<polygon fill="none" stroke="black" points="457.01,-405 454.01,-409 433.01,-409 430.01,-405 402.99,-405 402.99,-369 457.01,-369 457.01,-405"/>
138
+<text text-anchor="middle" x="430" y="-381.4" font-family="Times,serif" font-size="14.00" fill="gray">Toobie</text>
139
+</g>
140
+<!-- FS:stashes&#45;&gt;FS:stashes/Toobie -->
141
+<g id="edge15" class="edge"><title>FS:stashes&#45;&gt;FS:stashes/Toobie</title>
142
+<path fill="none" stroke="gray" d="M370.268,-460.647C381.324,-447.2 396.802,-428.376 409.232,-413.259"/>
143
+<polygon fill="gray" stroke="gray" points="412.128,-415.247 415.776,-405.3 406.721,-410.801 412.128,-415.247"/>
144
+</g>
145
+<!-- FS:stashes/Foobie/.bootstrap -->
146
+<g id="node13" class="node"><title>FS:stashes/Foobie/.bootstrap</title>
147
+<polygon fill="none" stroke="black" points="330.206,-313 327.206,-317 306.206,-317 303.206,-313 259.794,-313 259.794,-277 330.206,-277 330.206,-313"/>
148
+<text text-anchor="middle" x="295" y="-289.4" font-family="Times,serif" font-size="14.00" fill="gray">.bootstrap</text>
149
+</g>
150
+<!-- FS:stashes/Foobie&#45;&gt;FS:stashes/Foobie/.bootstrap -->
151
+<g id="edge10" class="edge"><title>FS:stashes/Foobie&#45;&gt;FS:stashes/Foobie/.bootstrap</title>
152
+<path fill="none" stroke="gray" d="M284.507,-368.647C286.359,-355.823 288.918,-338.108 291.045,-323.381"/>
153
+<polygon fill="gray" stroke="gray" points="294.536,-323.697 292.501,-313.3 287.607,-322.697 294.536,-323.697"/>
154
+</g>
155
+<!-- FS:stashes/Foobie/.bootstrap/Noobie.build -->
156
+<g id="node14" class="node"><title>FS:stashes/Foobie/.bootstrap/Noobie.build</title>
157
+<polygon fill="none" stroke="black" points="344.619,-221 341.619,-225 320.619,-225 317.619,-221 255.381,-221 255.381,-185 344.619,-185 344.619,-221"/>
158
+<text text-anchor="middle" x="300" y="-197.4" font-family="Times,serif" font-size="14.00" fill="blue">Noobie.build</text>
159
+</g>
160
+<!-- FS:stashes/Foobie/.bootstrap&#45;&gt;FS:stashes/Foobie/.bootstrap/Noobie.build -->
161
+<g id="edge11" class="edge"><title>FS:stashes/Foobie/.bootstrap&#45;&gt;FS:stashes/Foobie/.bootstrap/Noobie.build</title>
162
+<path fill="none" stroke="gray" d="M295.964,-276.647C296.677,-263.823 297.661,-246.108 298.479,-231.381"/>
163
+<polygon fill="gray" stroke="gray" points="301.979,-231.478 299.039,-221.3 294.99,-231.09 301.979,-231.478"/>
164
+</g>
165
+<!-- FS:stashes/Noobie/.bootstrap -->
166
+<g id="node16" class="node"><title>FS:stashes/Noobie/.bootstrap</title>
167
+<polygon fill="none" stroke="black" points="431.206,-313 428.206,-317 407.206,-317 404.206,-313 360.794,-313 360.794,-277 431.206,-277 431.206,-313"/>
168
+<text text-anchor="middle" x="396" y="-289.4" font-family="Times,serif" font-size="14.00" fill="gray">.bootstrap</text>
169
+</g>
170
+<!-- FS:stashes/Noobie&#45;&gt;FS:stashes/Noobie/.bootstrap -->
171
+<g id="edge13" class="edge"><title>FS:stashes/Noobie&#45;&gt;FS:stashes/Noobie/.bootstrap</title>
172
+<path fill="none" stroke="gray" d="M363.712,-368.647C369.523,-355.574 377.592,-337.418 384.21,-322.527"/>
173
+<polygon fill="gray" stroke="gray" points="387.448,-323.859 388.311,-313.3 381.051,-321.016 387.448,-323.859"/>
174
+</g>
175
+<!-- FS:stashes/Noobie/.bootstrap/Noobie.build -->
176
+<g id="node17" class="node"><title>FS:stashes/Noobie/.bootstrap/Noobie.build</title>
177
+<polygon fill="none" stroke="black" points="451.619,-221 448.619,-225 427.619,-225 424.619,-221 362.381,-221 362.381,-185 451.619,-185 451.619,-221"/>
178
+<text text-anchor="middle" x="407" y="-197.4" font-family="Times,serif" font-size="14.00" fill="purple">Noobie.build</text>
179
+</g>
180
+<!-- FS:stashes/Noobie/.bootstrap&#45;&gt;FS:stashes/Noobie/.bootstrap/Noobie.build -->
181
+<g id="edge14" class="edge"><title>FS:stashes/Noobie/.bootstrap&#45;&gt;FS:stashes/Noobie/.bootstrap/Noobie.build</title>
182
+<path fill="none" stroke="gray" d="M398.121,-276.647C399.688,-263.823 401.854,-246.108 403.653,-231.381"/>
183
+<polygon fill="gray" stroke="gray" points="407.146,-231.65 404.886,-221.3 400.198,-230.801 407.146,-231.65"/>
184
+</g>
185
+<!-- FS:stashes/Toobie/.bootstrap -->
186
+<g id="node19" class="node"><title>FS:stashes/Toobie/.bootstrap</title>
187
+<polygon fill="none" stroke="black" points="534.206,-313 531.206,-317 510.206,-317 507.206,-313 463.794,-313 463.794,-277 534.206,-277 534.206,-313"/>
188
+<text text-anchor="middle" x="499" y="-289.4" font-family="Times,serif" font-size="14.00" fill="gray">.bootstrap</text>
189
+</g>
190
+<!-- FS:stashes/Toobie&#45;&gt;FS:stashes/Toobie/.bootstrap -->
191
+<g id="edge16" class="edge"><title>FS:stashes/Toobie&#45;&gt;FS:stashes/Toobie/.bootstrap</title>
192
+<path fill="none" stroke="gray" d="M443.304,-368.647C453.613,-355.2 468.045,-336.376 479.635,-321.259"/>
193
+<polygon fill="gray" stroke="gray" points="482.43,-323.365 485.737,-313.3 476.875,-319.106 482.43,-323.365"/>
194
+</g>
195
+<!-- FS:stashes/Toobie/.bootstrap/Noobie.build -->
196
+<g id="node20" class="node"><title>FS:stashes/Toobie/.bootstrap/Noobie.build</title>
197
+<polygon fill="none" stroke="black" points="556.218,-221 553.218,-225 532.218,-225 529.218,-221 469.782,-221 469.782,-185 556.218,-185 556.218,-221"/>
198
+<text text-anchor="middle" x="513" y="-197.4" font-family="Times,serif" font-size="14.00" fill="gray">Toobie.build</text>
199
+</g>
200
+<!-- FS:stashes/Toobie/.bootstrap&#45;&gt;FS:stashes/Toobie/.bootstrap/Noobie.build -->
201
+<g id="edge17" class="edge"><title>FS:stashes/Toobie/.bootstrap&#45;&gt;FS:stashes/Toobie/.bootstrap/Noobie.build</title>
202
+<path fill="none" stroke="gray" d="M501.699,-276.647C503.694,-263.823 506.45,-246.108 508.741,-231.381"/>
203
+<polygon fill="gray" stroke="gray" points="512.23,-231.719 510.309,-221.3 505.313,-230.643 512.23,-231.719"/>
204
+</g>
205
+</g>
206
+</svg>
0 207
new file mode 100644
... ...
@@ -0,0 +1,104 @@
1
+## Build Settings
2
+
3
+A setting is generally stored as a file somewhere in the `.bootstrap` folder hierarchy. The filename is the **name** of the setting. The file contents are the **value** of the setting.
4
+
5
+The settings inside `.build` folders are called build settings. A build setting can be a generic setting (no extension), or an os-specific setting. The os-specific settings have an extension, that is the simplified **uname** of the platform. Known values are
6
+
7
+uname   | OS
8
+--------|----
9
+darwin  | OS X
10
+linux   | Linux
11
+freebsd | FreeBSD
12
+mingw   | MinGW on Windows
13
+
14
+
15
+
16
+> ## Important
17
+> In these examples it is assumed that you are on "OS X", whose simplified
18
+> **uname** is `darwin`
19
+
20
+
21
+### How copying works
22
+
23
+Asssume you have an empty folder `dst` and a folder `src` containing a setting. You want to copy a setting from `src` to `dst`.
24
+
25
+
26
+#### Copy a generic setting
27
+
28
+![1-copy](1-copy.svg)
29
+
30
+Just a straight copy of `foo`.
31
+
32
+
33
+#### Copy a matching os-specific setting
34
+
35
+![2-copy](2-copy.svg)
36
+
37
+Copy `foo.darwin` with extension removed into `dst`.
38
+
39
+
40
+#### Copy a mismatch os-specific setting
41
+
42
+![3-copy](3-copy.svg)
43
+
44
+Nothing matches for extension `.darwin` or no extension, so nothing is copied.
45
+
46
+
47
+#### Copy from a set of generic and os-specific settings
48
+
49
+![4-copy](4-copy.svg)
50
+
51
+`foo.darwin` is the best match so it is copied to `dst` as `foo`. The other files are ignored.
52
+
53
+
54
+### Inheriting and Overriding settings
55
+
56
+So far we have seen what happens when `dst` is empty. But what if there is already content ?
57
+
58
+**mulle-bootstrap** simplifies the scenario, by first applying the above operations for `src` and `dst`. That means all the os-specific settings will be turned into generic settings, and the os-specific settings are removed.
59
+
60
+> **mulle-bootstrap** uses temporary folders for this simplification
61
+
62
+Then the scenario reduces to the following table for the operations **inherit** and **override**:
63
+
64
+ dst      | override | inherit
65
+----------|----------|------------------
66
+ empty    | copy     | skip
67
+ occupied | copy     | copy
68
+
69
+
70
+## So where do the .build settings actually come from ?
71
+
72
+Remember that the contents of `.bootstrap.auto` are created by copying `.bootstrap.auto` and `.bootstrap.local`. Then other settings are **inherited** or **overridden** as shown on the pictures. The left diagram shows the order of steps. The right diagram gives a view on the filesystem:
73
+
74
+![Settings inheritance chain](5-settings-chain.svg)
75
+
76
+
77
+> #### Stopping the inheritance
78
+>
79
+> If you want to stop the inheritance at some point, place a setting `final` with value "YES"
80
+> inside the `.bootstrap/<repository>.build` folder.
81
+> **overrides** will still be applied though, if  `final` is set in a repository folder
82
+> (blue).
83
+>
84
+
85
+Imagine that you have a more complicated setup, with "Foobie" depending on "Noobie" and "Noobie" depending on "Toobie".