Eric Bower
·
2025-12-28
range-diff.html
1{{define "range-diff"}}
2<div class="group">
3 <div class="flex gap-2 collapse">
4 <div class="group patchset-list" style="width: 350px;">
5 <h2 class="text-xl mt">
6 Range-diff <code>rd-{{.Patchset.ID}}</code>
7 </h2>
8
9 {{range $diff := .PatchsetData.RangeDiff}}
10 <div class="box">
11 <dl>
12 <dt>title</dt>
13 <dd><a href="#{{$diff.Header.OldIdx}}-{{$diff.Header.NewIdx}}">{{$diff.Header.Title}}</a></dd>
14
15 <dt>description</dt>
16 <dd>
17 <code class='{{if eq $diff.Type "rm"}}pill-admin{{else if eq $diff.Type "add"}}pill-success{{else if eq $diff.Type "diff"}}pill-review{{end}}'>
18 {{if eq $diff.Header.NewSha ""}}
19 Patch removed
20 {{else if eq $diff.Header.OldSha ""}}
21 Patch added
22 {{else if $diff.Header.ContentEqual}}
23 Patch equal
24 {{else}}
25 Patch changed
26 {{end}}
27 </code>
28 </dd>
29
30 <dt>old #{{$diff.Header.OldIdx}}</dt>
31 <dd><code>{{sha $diff.Header.OldSha}}</code></dd>
32
33 <dt>new #{{$diff.Header.NewIdx}}</dt>
34 <dd><code>{{sha $diff.Header.NewSha}}</code></dd>
35 </dl>
36 </div>
37 {{else}}
38 <div class="box">
39 No range diff found for patchset.
40 </div>
41 {{end}}
42
43 <div><a href="#top">Back to top</a></div>
44 </div>
45
46 <div class="max-w flex-1">
47 <div class="group">
48 {{range .PatchsetData.RangeDiff}}
49 <div id="{{.Header.OldIdx}}-{{.Header.NewIdx}}">
50 <div class="mb">
51 <code class='{{if eq .Type "rm"}}pill-admin{{else if eq .Type "add"}}pill-success{{else if eq .Type "diff"}}pill-review{{end}}'>
52 {{.Header}}
53 </code>
54 </div>
55
56 {{if or .Header.AuthorChanged .Header.TitleChanged .Header.BodyChanged}}
57 <div class="box mb">
58 <dl>
59 {{if .Header.AuthorChanged}}
60 <dt>author changed</dt>
61 <dd>
62 <div><span style="color: tomato;">- {{.Header.OldAuthorName}} <{{.Header.OldAuthorEmail}}></span></div>
63 <div><span style="color: limegreen;">+ {{.Header.NewAuthorName}} <{{.Header.NewAuthorEmail}}></span></div>
64 </dd>
65 {{end}}
66 {{if .Header.TitleChanged}}
67 <dt>title changed</dt>
68 <dd>
69 <div><span style="color: tomato;">- {{.Header.OldTitle}}</span></div>
70 <div><span style="color: limegreen;">+ {{.Header.NewTitle}}</span></div>
71 </dd>
72 {{end}}
73 {{if .Header.BodyChanged}}
74 <dt>message changed</dt>
75 <dd>
76 <pre style="color: tomato; margin: 0;">- {{.Header.OldBody}}</pre>
77 <pre style="color: limegreen; margin: 0;">+ {{.Header.NewBody}}</pre>
78 </dd>
79 {{end}}
80 </dl>
81 </div>
82 {{end}}
83
84 <div>
85 {{- if and .Files (ne .Type "add") -}}
86 {{range .Files}}
87 <div class="flex gap">
88 <div class="flex-1" style="width: 48%;">
89 <h3 class="text-md">old</h3>
90 <div>
91 {{if .OldFile}}
92 {{if .OldFile.OldName}}old:<code>{{.OldFile.OldName}}</code>{{end}}
93 {{if .OldFile.NewName}}new:<code>{{.OldFile.NewName}}</code>{{end}}
94 {{end}}
95 </div>
96 <pre class="m-0">{{- range .Diff -}}
97 {{- if eq .OuterType "delete" -}}
98 {{- if eq .InnerType "insert" -}}
99 <span style="background-color: rgba(255,99,71,0.25); color: limegreen;">{{.Text}}</span>
100 {{- else if eq .InnerType "delete" -}}
101 <span style="background-color: rgba(255,99,71,0.25); color: tomato;">{{.Text}}</span>
102 {{- else -}}
103 <span style="background-color: rgba(255,99,71,0.25);">{{.Text}}</span>
104 {{- end -}}
105 {{- else if eq .OuterType "insert" -}}
106 {{- else if eq .InnerType "insert" -}}
107 <span style="color: limegreen;">{{.Text}}</span>
108 {{- else if eq .InnerType "delete" -}}
109 <span style="color: tomato;">{{.Text}}</span>
110 {{- else -}}
111 <span>{{.Text}}</span>
112 {{- end -}}
113 {{- end -}}</pre>
114 </div>
115
116 <div class="flex-1" style="width: 48%;">
117 <h3 class="text-md">new</h3>
118 <div>
119 {{if .NewFile}}
120 {{if .NewFile.OldName}}old:<code>{{.NewFile.OldName}}</code>{{end}}
121 {{if .NewFile.NewName}}new:<code>{{.NewFile.NewName}}</code>{{end}}
122 {{end}}
123 </div>
124 <pre class="m-0">{{- range .Diff -}}
125 {{- if eq .OuterType "insert" -}}
126 {{- if eq .InnerType "insert" -}}
127 <span style="background-color: rgba(50,205,50,0.25); color: limegreen;">{{.Text}}</span>
128 {{- else if eq .InnerType "delete" -}}
129 <span style="background-color: rgba(50,205,50,0.25); color: tomato;">{{.Text}}</span>
130 {{- else -}}
131 <span style="background-color: rgba(50,205,50,0.25);">{{.Text}}</span>
132 {{- end -}}
133 {{- else if eq .OuterType "delete" -}}
134 {{- else if eq .InnerType "insert" -}}
135 <span style="color: limegreen;">{{.Text}}</span>
136 {{- else if eq .InnerType "delete" -}}
137 <span style="color: tomato;">{{.Text}}</span>
138 {{- else -}}
139 <span>{{.Text}}</span>
140 {{- end -}}
141 {{- end -}}</pre>
142 </div>
143 </div>
144 {{end}}
145 {{- end -}}
146 </div>
147 </div>
148 {{- end -}}
149 </div>
150
151 <hr class="my" />
152 </div>
153 </div>
154</div>
155{{end}}