xaizek / uncov (License: AGPLv3+) (since 2018-12-07)
Uncov(er) is a tool that collects and processes code coverage reports.
Commit 027891ed616150cbbe4d2be457df172395ea035a

Re-generate manuals with a newer pandoc version
Author: xaizek
Author date (UTC): 2026-07-20 16:18
Committer name: xaizek
Committer date (UTC): 2026-07-20 16:18
Parent(s): 0bae9ee70b2cc2e0a42f38ba39544287f3b382e7
Signing key: 99DC5E4DB05F6BE2
Tree: 03c3e08b1b6f46116d712d371d0c7f7d8c312eb6
File Lines added Lines deleted
docs/uncov-gcov.1 19 19
docs/uncov-web.1 15 15
docs/uncov.1 88 90
File docs/uncov-gcov.1 changed (mode: 100644) (index da815ea..860149e)
1 .\" Automatically generated by Pandoc 3.1.11.1
1 .\" Automatically generated by Pandoc 3.10
2 2 .\" .\"
3 .TH "uncov-gcov" "1" "January 20, 2024" "uncov v0.5" ""
3 .TH "uncov-gcov" "1" "July 20, 2026" "uncov v0.5"
4 4 .SH NAME .SH NAME
5 5 uncov\-gcov is coverage information collector for C and C++ languages uncov\-gcov is coverage information collector for C and C++ languages
6 6 that can be used with \f[B]uncov(1)\f[R]. that can be used with \f[B]uncov(1)\f[R].
7 7 .PP .PP
8 \f[B]NOTE:\f[R] since uncov\-gcov isn\[cq]t the only way to collect C
9 and C++ coverage for uncov anymore, its use is discouraged.
8 \f[B]NOTE:\f[R] since uncov\-gcov isn\(cqt the only way to collect C and
9 C++ coverage for uncov anymore, its use is discouraged.
10 10 It is provided in case it might work better in some contexts because of It is provided in case it might work better in some contexts because of
11 11 some unique options (like taking exclusion markers of LCOV into some unique options (like taking exclusion markers of LCOV into
12 12 account). account).
13 It might be a good idea to switch to using \[lq]uncov new\-gcovi\[rq]
13 It might be a good idea to switch to using \(lquncov new\-gcovi\(rq
14 14 subcommand. subcommand.
15 15 .SH SYNOPSIS .SH SYNOPSIS
16 16 \f[B]uncov\-gcov\f[R] \f[B]\-h|\-\-help\f[R] \f[B]uncov\-gcov\f[R] \f[B]\-h|\-\-help\f[R]
 
... ... Print verbose messages.
29 29 Run the script without printing report. Run the script without printing report.
30 30 .SS \f[B]\-\-gcov\f[R] [=gcov] .SS \f[B]\-\-gcov\f[R] [=gcov]
31 31 Set the location of gcov. Set the location of gcov.
32 .SS \f[B]\-\-gcov\-options\f[R] [=\[lq]\[rq]]
32 .SS \f[B]\-\-gcov\-options\f[R] [=\(lq\(rq]
33 33 Set the options given to gcov. Set the options given to gcov.
34 34 .SS \f[B]\-r\f[R], \f[B]\-\-root\f[R] [=.] .SS \f[B]\-r\f[R], \f[B]\-\-root\f[R] [=.]
35 35 Set the root directory. Set the root directory.
 
... ... needs to run in the same directory as the compiler in order to find the
42 42 source files. source files.
43 43 .SS \f[B]\-\-collect\-root\f[R] [={value of \-\-root}] .SS \f[B]\-\-collect\-root\f[R] [={value of \-\-root}]
44 44 Directory to look gcov files in. Directory to look gcov files in.
45 .SS \f[B]\-e\f[R], \f[B]\-\-exclude\f[R] [=\[lq]\[rq]]
45 .SS \f[B]\-e\f[R], \f[B]\-\-exclude\f[R] [=\(lq\(rq]
46 46 List of paths to exclude. List of paths to exclude.
47 47 Can be specifieid multiple times. Can be specifieid multiple times.
48 48 .PP .PP
49 49 Examples: Examples:
50 50 .IP .IP
51 51 .EX .EX
52 uncov\-gcov \-\[rs]\-exclude build\-release \-\[rs]\-exclude build\-debug ...
53 uncov\-gcov \-\[rs]\-exclude build\-release build\-debug ...
54 uncov\-gcov \-\[rs]\-exclude build* ...
52 uncov\-gcov \-\(rs\-exclude build\-release \-\(rs\-exclude build\-debug ...
53 uncov\-gcov \-\(rs\-exclude build\-release build\-debug ...
54 uncov\-gcov \-\(rs\-exclude build* ...
55 55 .EE .EE
56 .SS \f[B]\-i\f[R], \f[B]\-\-include\f[R] [=\[lq]\[rq]]
56 .SS \f[B]\-i\f[R], \f[B]\-\-include\f[R] [=\(lq\(rq]
57 57 List of paths to include. List of paths to include.
58 58 Can be specifieid multiple times. Can be specifieid multiple times.
59 59 See \f[B]\-\-exclude\f[R] for examples. See \f[B]\-\-exclude\f[R] for examples.
60 .SS \f[B]\-E\f[R], \f[B]\-\-exclude\-pattern\f[R] [=\[lq]\[rq]]
60 .SS \f[B]\-E\f[R], \f[B]\-\-exclude\-pattern\f[R] [=\(lq\(rq]
61 61 Set exclude file/directory pattern. Set exclude file/directory pattern.
62 62 .SS \f[B]\-x\f[R], \f[B]\-\-extension\f[R] [=.h,.hh,.hpp,.hxx,.c,.cc,.cpp,.cxx,.m,.mm] .SS \f[B]\-x\f[R], \f[B]\-\-extension\f[R] [=.h,.hh,.hpp,.hxx,.c,.cc,.cpp,.cxx,.m,.mm]
63 63 Set extension of files to process. Set extension of files to process.
 
... ... information is as follows:
84 84 .IP .IP
85 85 .EX .EX
86 86 # reset coverage counters from previous runs # reset coverage counters from previous runs
87 find . \-name \[aq]*.gcda\[aq] \-delete
87 find . \-name \(aq*.gcda\(aq \-delete
88 88
89 # run tests here with something like \[ga]make check\[ga]
89 # run tests here with something like \(gamake check\(ga
90 90
91 # generage coverage for every object file found (change \[dq].\[dq] to build root)
92 find . \-name \[aq]*.o\[aq] \-exec gcov \-p {} +
91 # generage coverage for every object file found (change \(dq.\(dq to build root)
92 find . \-name \(aq*.o\(aq \-exec gcov \-p {} +
93 93
94 # generage and combine coverage reports (\-\[rs]\-capture\-worktree automatically
94 # generage and combine coverage reports (\-\(rs\-capture\-worktree automatically
95 95 # makes stray commit if repository is dirty) # makes stray commit if repository is dirty)
96 uncov\-gcov \-\[rs]\-root . \-\[rs]\-no\-gcov \-\[rs]\-capture\-worktree \-\[rs]\-exclude tests | uncov new
96 uncov\-gcov \-\(rs\-root . \-\(rs\-no\-gcov \-\(rs\-capture\-worktree \-\(rs\-exclude tests | uncov new
97 97
98 98 # remove coverage reports # remove coverage reports
99 find . \-name \[aq]*.gcov\[aq] \-delete
99 find . \-name \(aq*.gcov\(aq \-delete
100 100 .EE .EE
101 101 .PP .PP
102 102 These commands can be put in a separate script or embedded directly into These commands can be put in a separate script or embedded directly into
File docs/uncov-web.1 changed (mode: 100644) (index 2c30223..f58918f)
1 .\" Automatically generated by Pandoc 3.1.11.1
1 .\" Automatically generated by Pandoc 3.10
2 2 .\" .\"
3 .TH "uncov-web" "1" "January 20, 2024" "uncov v0.5" ""
3 .TH "uncov-web" "1" "July 20, 2026" "uncov v0.5"
4 4 .SH NAME .SH NAME
5 5 uncov\-web is a HTTP\-server that provides Web\-UI for browsing coverage uncov\-web is a HTTP\-server that provides Web\-UI for browsing coverage
6 6 information collected by \f[B]uncov(1)\f[R]. information collected by \f[B]uncov(1)\f[R].
 
... ... Once started provides HTTP\-server to view coverage reports.
32 32 Does not daemonize itself. Does not daemonize itself.
33 33 .SS Notations .SS Notations
34 34 For the sake of brevity interface uses several intuitive abbreviations: For the sake of brevity interface uses several intuitive abbreviations:
35 .IP \[bu] 2
36 Cov \[en] coverage;
37 .IP \[bu] 2
38 Ref \[en] reference (of VCS);
39 .IP \[bu] 2
40 C \[en] covered;
41 .IP \[bu] 2
42 M \[en] missed;
43 .IP \[bu] 2
44 R \[en] relevant.
35 .IP \(bu 2
36 Cov \(en coverage;
37 .IP \(bu 2
38 Ref \(en reference (of VCS);
39 .IP \(bu 2
40 C \(en covered;
41 .IP \(bu 2
42 M \(en missed;
43 .IP \(bu 2
44 R \(en relevant.
45 45 .SH FILES .SH FILES
46 46 \f[B]<data\-directory>\f[R] in the following is either git\-directory \f[B]<data\-directory>\f[R] in the following is either git\-directory
47 47 for a worktree (see \f[B]git\-worktree\f[R](1)) or for the repository for a worktree (see \f[B]git\-worktree\f[R](1)) or for the repository
48 48 that owns it, whichever has either of those files when checking that owns it, whichever has either of those files when checking
49 49 directories in the order they are mentioned. directories in the order they are mentioned.
50 If no files found, repository\[cq]s git\-directory is used.
50 If no files found, repository\(cqs git\-directory is used.
51 51 .PP .PP
52 \f[B]<data\-directory>/uncov.sqlite\f[R] \[en] storage of coverage data.
52 \f[B]<data\-directory>/uncov.sqlite\f[R] \(en storage of coverage data.
53 53 .PP .PP
54 \f[B]<data\-directory>/uncov.ini\f[R] \[en] configuration.
54 \f[B]<data\-directory>/uncov.ini\f[R] \(en configuration.
55 55 .SH SEE ALSO .SH SEE ALSO
56 56 \f[B]uncov\f[R](1), \f[B]uncov\-gcov\f[R](1) \f[B]uncov\f[R](1), \f[B]uncov\-gcov\f[R](1)
57 57 .SH AUTHORS .SH AUTHORS
File docs/uncov.1 changed (mode: 100644) (index a2b01d7..29a03a3)
1 .\" Automatically generated by Pandoc 3.1.11.1
1 .\" Automatically generated by Pandoc 3.10
2 2 .\" .\"
3 .TH "uncov" "1" "January 20, 2024" "uncov v0.5" ""
3 .TH "uncov" "1" "July 20, 2026" "uncov v0.5"
4 4 .SH NAME .SH NAME
5 5 uncov is a software development tool that collect and processes coverage uncov is a software development tool that collect and processes coverage
6 6 reports. reports.
7 7 .PP .PP
8 \f[B]NOTE:\f[R] since uncov\-gcov isn\[cq]t the only way to collect C
9 and C++ coverage for uncov anymore, it is deprecated.
8 \f[B]NOTE:\f[R] since uncov\-gcov isn\(cqt the only way to collect C and
9 C++ coverage for uncov anymore, it is deprecated.
10 10 However, it is still provided in case it might be useful in some However, it is still provided in case it might be useful in some
11 11 environments. environments.
12 Using \[lq]uncov new\-gcovi\[rq] should work noticeably faster and
13 doesn\[cq]t require sources on adding build to the database.
12 Using \(lquncov new\-gcovi\(rq should work noticeably faster and
13 doesn\(cqt require sources on adding build to the database.
14 14 .SH SYNOPSIS .SH SYNOPSIS
15 15 \f[B]uncov\f[R] \f[B]\-h|\-\-help\f[R] \f[B]uncov\f[R] \f[B]\-h|\-\-help\f[R]
16 16 .PP .PP
 
... ... While the relation by default is of one\-to\-one kind, same
35 35 repository by linking or copying \f[CR]uncov.sqlite\f[R] file manually. repository by linking or copying \f[CR]uncov.sqlite\f[R] file manually.
36 36 .PP .PP
37 37 Repository that corresponds to current working directory is discovered Repository that corresponds to current working directory is discovered
38 automatically and doesn\[cq]t need to be specified explicitly.
38 automatically and doesn\(cqt need to be specified explicitly.
39 39 Otherwise \f[B]<repo\-path>\f[R] can point either to repository Otherwise \f[B]<repo\-path>\f[R] can point either to repository
40 directory (\f[CR].git\f[R]) or its main worktree (doesn\[cq]t seem to
40 directory (\f[CR].git\f[R]) or its main worktree (doesn\(cqt seem to
41 41 work with secondary worktrees). work with secondary worktrees).
42 42 .SS Builds .SS Builds
43 43 The largest entity \f[CR]uncov\f[R] operates within repository is a The largest entity \f[CR]uncov\f[R] operates within repository is a
44 44 build. build.
45 45 A build has the following properties: A build has the following properties:
46 .IP \[bu] 2
46 .IP \(bu 2
47 47 number identifying the build (greater than \f[CR]0\f[R]); number identifying the build (greater than \f[CR]0\f[R]);
48 .IP \[bu] 2
48 .IP \(bu 2
49 49 name of reference within repository (branch usually); name of reference within repository (branch usually);
50 .IP \[bu] 2
50 .IP \(bu 2
51 51 commit object that corresponds to the build; commit object that corresponds to the build;
52 .IP \[bu] 2
52 .IP \(bu 2
53 53 date and time at which it was imported; date and time at which it was imported;
54 .IP \[bu] 2
54 .IP \(bu 2
55 55 finally, set of files with their coverage that constitute a build. finally, set of files with their coverage that constitute a build.
56 56 .SS Files .SS Files
57 57 File is the second most important thing after a build. File is the second most important thing after a build.
58 It\[cq]s characterised by:
59 .IP \[bu] 2
58 It\(cqs characterised by:
59 .IP \(bu 2
60 60 path within repository; path within repository;
61 .IP \[bu] 2
61 .IP \(bu 2
62 62 coverage information (basically an array specifying which lines are coverage information (basically an array specifying which lines are
63 63 covered); covered);
64 .IP \[bu] 2
64 .IP \(bu 2
65 65 MD5 hash (to verify that \f[CR]uncov\f[R] state is consistent with MD5 hash (to verify that \f[CR]uncov\f[R] state is consistent with
66 66 repository). repository).
67 67 .SS Directories .SS Directories
 
... ... Based on data provided any line of code is classified as either
81 81 \f[I]relevant\f[R] or \f[I]not relevant\f[R]. \f[I]relevant\f[R] or \f[I]not relevant\f[R].
82 82 Relevant lines in turn can be \f[I]covered\f[R] or \f[I]missed\f[R]. Relevant lines in turn can be \f[I]covered\f[R] or \f[I]missed\f[R].
83 83 So each source line must be in one of three states: So each source line must be in one of three states:
84 .IP \[bu] 2
84 .IP \(bu 2
85 85 not relevant; not relevant;
86 .IP \[bu] 2
86 .IP \(bu 2
87 87 not covered (with number of hits being \f[CR]0\f[R]); not covered (with number of hits being \f[CR]0\f[R]);
88 .IP \[bu] 2
88 .IP \(bu 2
89 89 covered (with number of hits being greater than \f[CR]0\f[R]). covered (with number of hits being greater than \f[CR]0\f[R]).
90 90 .PP .PP
91 91 Coverage rate is defined simply as number of covered lines divided by Coverage rate is defined simply as number of covered lines divided by
92 92 number of relevant lines. number of relevant lines.
93 93 If file consists solely of not relevant lines (which is also the case If file consists solely of not relevant lines (which is also the case
94 for files that don\[cq]t exist in one of builds being compared),
95 it\[cq]s assumed to have 100% coverage.
94 for files that don\(cqt exist in one of builds being compared), it\(cqs
95 assumed to have 100% coverage.
96 96 We also have number of lines covered, missed and total number of We also have number of lines covered, missed and total number of
97 97 relevant lines (sum of previous two) and can calculate their changes. relevant lines (sum of previous two) and can calculate their changes.
98 98 .PP .PP
 
... ... files, directory comparison compares files under specified path, file
106 106 comparison compares only one file. comparison compares only one file.
107 107 .PP .PP
108 108 However, comparing coverage is not exactly the same as comparing files. However, comparing coverage is not exactly the same as comparing files.
109 While we are interested in whether changed code is covered we don\[cq]t
110 really care about addition or removal of lines that aren\[cq]t relevant
109 While we are interested in whether changed code is covered we don\(cqt
110 really care about addition or removal of lines that aren\(cqt relevant
111 111 for coverage. for coverage.
112 112 So these uninteresting changes are not shown. So these uninteresting changes are not shown.
113 113 .PP .PP
 
... ... On the other hand, change of coverage when only number of line hits
115 115 increased or decreased is also irrelevant in most cases and are shown increased or decreased is also irrelevant in most cases and are shown
116 116 only by separate command. only by separate command.
117 117 Regular comparison draws attention mainly to lines that have changed Regular comparison draws attention mainly to lines that have changed
118 their state (e.g., from \[lq]not covered\[rq] to \[lq]covered\[rq] or
119 vice versa).
118 their state (e.g., from \(lqnot covered\(rq to \(lqcovered\(rq or vice
119 versa).
120 120 Should such lines be part of diff context, they are displayed as Should such lines be part of diff context, they are displayed as
121 121 somewhat dimmed compared to lines with interesting changes. somewhat dimmed compared to lines with interesting changes.
122 122 .SS Notations .SS Notations
123 123 For the sake of brevity interface uses several intuitive abbreviations: For the sake of brevity interface uses several intuitive abbreviations:
124 .IP \[bu] 2
125 Cov \[en] coverage;
126 .IP \[bu] 2
127 Ref \[en] reference (of VCS);
128 .IP \[bu] 2
129 C \[en] covered;
130 .IP \[bu] 2
131 M \[en] missed;
132 .IP \[bu] 2
133 R \[en] relevant.
124 .IP \(bu 2
125 Cov \(en coverage;
126 .IP \(bu 2
127 Ref \(en reference (of VCS);
128 .IP \(bu 2
129 C \(en covered;
130 .IP \(bu 2
131 M \(en missed;
132 .IP \(bu 2
133 R \(en relevant.
134 134 .SH SUBCOMMANDS .SH SUBCOMMANDS
135 135 .SS Syntax of build numbers .SS Syntax of build numbers
136 136 Build numbers are specified in arguments for subcommands by being Build numbers are specified in arguments for subcommands by being
137 prepended with \f[CR]\[at]\f[R] sign.
137 prepended with \f[CR]\(at\f[R] sign.
138 138 So to refer to build number \f[CR]5\f[R], one would write So to refer to build number \f[CR]5\f[R], one would write
139 \f[CR]\[at]5\f[R].
139 \f[CR]\(at5\f[R].
140 140 .PP .PP
141 Build numbers start at \f[CR]1\f[R], this leaves \f[CR]\[at]0\f[R]
141 Build numbers start at \f[CR]1\f[R], this leaves \f[CR]\(at0\f[R]
142 142 unused. unused.
143 143 It is thus repurposed to be a handy shortcut for the latest build. It is thus repurposed to be a handy shortcut for the latest build.
144 An alternative form of writing \f[CR]\[at]0\f[R] is
145 \f[CR]\[at]\[at]\f[R].
144 An alternative form of writing \f[CR]\(at0\f[R] is \f[CR]\(at\(at\f[R].
146 145 .PP .PP
147 Build numbers can also be specified in the form of \f[CR]\[at]\-N\f[R],
146 Build numbers can also be specified in the form of \f[CR]\(at\-N\f[R],
148 147 in which case they select Nth to the latest build. in which case they select Nth to the latest build.
149 148 For example, to specify range from previous build to one build before For example, to specify range from previous build to one build before
150 that one would write \f[CR]\[at]\-1 \[at]\-2\f[R].
149 that one would write \f[CR]\(at\-1 \(at\-2\f[R].
151 150 .PP .PP
152 151 Lastly, branch names can be used to specify latest build from that Lastly, branch names can be used to specify latest build from that
153 branch (e.g., \f[CR]\[at]master\f[R]).
152 branch (e.g., \f[CR]\(atmaster\f[R]).
154 153 .SS Resolving ambiguity .SS Resolving ambiguity
155 154 Some commands can take optional build number, which opens the door for Some commands can take optional build number, which opens the door for
156 155 ambiguity between file/directory names and build identifiers. ambiguity between file/directory names and build identifiers.
157 Anything that starts with \f[CR]\[at]\f[R] at a suitable position on
156 Anything that starts with \f[CR]\(at\f[R] at a suitable position on
158 157 command\-line is assumed to be build number. command\-line is assumed to be build number.
159 For files which have \f[CR]\[at]\f[R] as prefix, specifying build number
158 For files which have \f[CR]\(at\f[R] as prefix, specifying build number
160 159 becomes mandatory. becomes mandatory.
161 160 As an example: As an example:
162 161 .IP .IP
163 162 .EX .EX
164 # this doesn\[aq]t work
165 uncov show \[at]strangely\-named\-file
166 # this is equivalent and works
167 uncov show \[at]\[at] \[at]strangely\-named\-file
163 \f[I]# this doesn\(aqt work\f[R]
164 uncov show \(atstrangely\-named\-file
165 \f[I]# this is equivalent and works\f[R]
166 uncov show \(at\(at \(atstrangely\-named\-file
168 167 .EE .EE
169 168 .SS Default build .SS Default build
170 If a subcommand accepts build number, in almost all cases it\[cq]s an
169 If a subcommand accepts build number, in almost all cases it\(cqs an
171 170 optional parameter and latest build is used when this argument is optional parameter and latest build is used when this argument is
172 171 omitted. omitted.
173 172 .SS Subcommand aliases .SS Subcommand aliases
 
... ... hits of a line to be significant change.
239 238 .PP .PP
240 239 See description of \f[B]diff\f[R] subcommand above for syntax. See description of \f[B]diff\f[R] subcommand above for syntax.
241 240 .SS dirs .SS dirs
242 Lists statistics of files grouped by directories they\[cq]re located in.
241 Lists statistics of files grouped by directories they\(cqre located in.
243 242 .PP .PP
244 243 \f[B]Usage: dirs\f[R] \f[B]Usage: dirs\f[R]
245 244 .PP .PP
 
... ... Lists files of \f[B]<build>\f[R] (or last build) located under
289 288 \f[B]Usage: files [<old build>] [<new build>] <path>\f[R] \f[B]Usage: files [<old build>] [<new build>] <path>\f[R]
290 289 .PP .PP
291 290 See forms above for information about first two arguments. See forms above for information about first two arguments.
292 Lists files located under \f[B]<path>\f[R] (if it\[cq]s a directory) or
291 Lists files located under \f[B]<path>\f[R] (if it\(cqs a directory) or
293 292 single file that exactly matches the path. single file that exactly matches the path.
294 293 .SS get .SS get
295 294 Dumps coverage information of a file. Dumps coverage information of a file.
 
... ... Reads coverage information from standard input in the following format:
341 340 .EE .EE
342 341 .PP .PP
343 342 Integers have the following meaning: Integers have the following meaning:
344 .IP \[bu] 2
345 when less than zero (specifically \f[CR]\-1\f[R]) \[en] line is not
343 .IP \(bu 2
344 when less than zero (specifically \f[CR]\-1\f[R]) \(en line is not
346 345 relevant; relevant;
347 .IP \[bu] 2
348 when equal to zero \[en] line is not covered (missed);
349 .IP \[bu] 2
350 when greater than zero \[en] line is covered and was hit that many
351 times.
346 .IP \(bu 2
347 when equal to zero \(en line is not covered (missed);
348 .IP \(bu 2
349 when greater than zero \(en line is covered and was hit that many times.
352 350 .SS new\-gcovi .SS new\-gcovi
353 351 Generates coverage via \f[CR]gcov\f[R] and imports it. Generates coverage via \f[CR]gcov\f[R] and imports it.
354 352 .PP .PP
 
... ... Generates coverage via \f[CR]gcov\f[R] and imports it.
356 354 [covoutroot]\f[R] [covoutroot]\f[R]
357 355 .PP .PP
358 356 \f[B]Parameters:\f[R] \f[B]Parameters:\f[R]
359 .IP \[bu] 2
360 \f[B]covoutroot\f[R] \[en] where to look for generated coverage data.
357 .IP \(bu 2
358 \f[B]covoutroot\f[R] \(en where to look for generated coverage data.
361 359 .PP .PP
362 360 \f[B]Options:\f[R] \f[B]Options:\f[R]
363 .IP \[bu] 2
364 \f[B]\-h [ \-\-help ]\f[R] \[en] display help message;
365 .IP \[bu] 2
366 \f[B]\-v [ \-\-verbose ]\f[R] \[en] print output of external commands;
367 .IP \[bu] 2
368 \f[B]\-e [ \-\-exclude ] arg\f[R] \[en] specifies a path to exclude (can
361 .IP \(bu 2
362 \f[B]\-h [ \-\-help ]\f[R] \(en display help message;
363 .IP \(bu 2
364 \f[B]\-v [ \-\-verbose ]\f[R] \(en print output of external commands;
365 .IP \(bu 2
366 \f[B]\-e [ \-\-exclude ] arg\f[R] \(en specifies a path to exclude (can
369 367 be repeated), paths are taken to be relative to the root of the be repeated), paths are taken to be relative to the root of the
370 368 repository; repository;
371 .IP \[bu] 2
372 \f[B]\-\-prefix arg\f[R] \[en] prefix to be added to relative path of
369 .IP \(bu 2
370 \f[B]\-\-prefix arg\f[R] \(en prefix to be added to relative path of
373 371 sources; sources;
374 .IP \[bu] 2
375 \f[B]\-\-ref\-name arg\f[R] \[en] forces custom ref name;
376 .IP \[bu] 2
377 \f[B]\-c [ \-\-capture\-worktree ]\f[R] \[en] make a dangling commit if
372 .IP \(bu 2
373 \f[B]\-\-ref\-name arg\f[R] \(en forces custom ref name;
374 .IP \(bu 2
375 \f[B]\-c [ \-\-capture\-worktree ]\f[R] \(en make a dangling commit if
378 376 working directory is dirty. working directory is dirty.
379 377 .PP .PP
380 378 To do its work this subcommand invokes \f[CR]gcov\f[R] and then parses To do its work this subcommand invokes \f[CR]gcov\f[R] and then parses
 
... ... Imports new build in JSON format from standard input.
388 386 Reads coverage information from standard input in the following format: Reads coverage information from standard input in the following format:
389 387 .IP .IP
390 388 .EX .EX
391 <prefix that doesn\[aq]t contain { character>
389 <prefix that doesn\(aqt contain { character>
392 390 { {
393 \[dq]source_files\[dq]: [
391 \(dqsource_files\(dq: [
394 392 { {
395 \[dq]source_digest\[dq]: \[dq]<MD5 hash>\[dq],
396 \[dq]source\[dq]: \[dq]<source, which can be used instead of source_digest>\[dq],
397 \[dq]name\[dq]: \[dq]file name relative to repository root\[dq],
398 \[dq]coverage\[dq]: [null for not relevant lines, int for number of hits]
393 \(dqsource_digest\(dq: \(dq<MD5 hash>\(dq,
394 \(dqsource\(dq: \(dq<source, which can be used instead of source_digest>\(dq,
395 \(dqname\(dq: \(dqfile name relative to repository root\(dq,
396 \(dqcoverage\(dq: [null for not relevant lines, int for number of hits]
399 397 } }
400 398 ... ...
401 399 ], ],
402 \[dq]git\[dq]: {
403 \[dq]head\[dq]: {
404 \[dq]id\[dq]: \[dq]<commit>\[dq]
400 \(dqgit\(dq: {
401 \(dqhead\(dq: {
402 \(dqid\(dq: \(dq<commit>\(dq
405 403 }, },
406 \[dq]branch\[dq]: \[dq]<branch>\[dq]
404 \(dqbranch\(dq: \(dq<branch>\(dq
407 405 } }
408 406 } }
409 407 .EE .EE
 
... ... Reads coverage information from standard input in the following format:
411 409 Any other elements are ignored. Any other elements are ignored.
412 410 .SS regress .SS regress
413 411 Same as \f[B]diff\f[R] subcommand, but displays introduced lines that Same as \f[B]diff\f[R] subcommand, but displays introduced lines that
414 aren\[cq]t covered.
412 aren\(cqt covered.
415 413 .PP .PP
416 414 See description of \f[B]diff\f[R] subcommand above for syntax. See description of \f[B]diff\f[R] subcommand above for syntax.
417 415 .SS show .SS show
 
... ... Prints files of \f[B]<build>\f[R] (or last build) located under
434 432 .SS Location and format .SS Location and format
435 433 Configuration is read from \f[B]<repository\-directory>/uncov.ini\f[R] Configuration is read from \f[B]<repository\-directory>/uncov.ini\f[R]
436 434 file. file.
437 If it doesn\[cq]t exist or contains invalid data (e.g., duplicated
438 keys), default settings remain intact.
435 If it doesn\(cqt exist or contains invalid data (e.g., duplicated keys),
436 default settings remain intact.
439 437 .PP .PP
440 438 The file has regular ini\-format and can contain either comments that The file has regular ini\-format and can contain either comments that
441 439 start with \f[B];\f[R] or key\-value pairs like \f[B]tab\-size = 2\f[R] start with \f[B];\f[R] or key\-value pairs like \f[B]tab\-size = 2\f[R]
 
... ... Whether line numbers are displayed in diffs.
487 485 for a worktree (see \f[B]git\-worktree\f[R](1)) or for the repository for a worktree (see \f[B]git\-worktree\f[R](1)) or for the repository
488 486 that owns it, whichever has either of those files when checking that owns it, whichever has either of those files when checking
489 487 directories in the order they are mentioned. directories in the order they are mentioned.
490 If no files found, repository\[cq]s git\-directory is used.
488 If no files found, repository\(cqs git\-directory is used.
491 489 .PP .PP
492 \f[B]<data\-directory>/uncov.sqlite\f[R] \[en] storage of coverage data.
490 \f[B]<data\-directory>/uncov.sqlite\f[R] \(en storage of coverage data.
493 491 .PP .PP
494 \f[B]<data\-directory>/uncov.ini\f[R] \[en] configuration.
492 \f[B]<data\-directory>/uncov.ini\f[R] \(en configuration.
495 493 .SH SEE ALSO .SH SEE ALSO
496 494 \f[B]uncov\-gcov\f[R](1), \f[B]uncov\-web\f[R](1) \f[B]uncov\-gcov\f[R](1), \f[B]uncov\-web\f[R](1)
497 495 .SH AUTHORS .SH AUTHORS
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/uncov

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/uncov

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master