xaizek / uncov (License: AGPLv3+) (since 2018-12-07)
Uncov(er) is a tool that collects and processes code coverage reports.
<root> / docs / uncov / 05-subcommands.md (e15d157a80e3ff3f531583da327611a61e6be05d) (1,806B) (mode 100644) [raw]
SUBCOMMANDS
===========

Syntax of build numbers
-----------------------

Build numbers are specified in arguments for subcommands by being prepended with
`@` sign.  So to refer to build number `5`, one would write `@5`.

Build numbers start at `1`, this leaves `@0` unused.  It is thus repurposed to
be a handy shortcut for the latest build.  An alternative form of writing `@0`
is `@@`.

Build numbers can also be specified in the form of `@-N`, in which case they
select Nth to the latest build.  For example, to specify range from previous
build to one build before that one would write `@-1 @-2`.

Lastly, branch names can be used to specify latest build from that branch (e.g.,
`@master`).

Resolving ambiguity
-------------------

Some commands can take optional build number, which opens the door for ambiguity
between file/directory names and build identifiers.  Anything that starts with
`@` at a suitable position on command-line is assumed to be build number.  For
files which have `@` as prefix, specifying build number becomes mandatory.  As
an example:

```bash
# this doesn't work
uncov show @strangely-named-file
# this is equivalent and works
uncov show @@ @strangely-named-file
```

Default build
-------------

If a subcommand accepts build number, in almost all cases it's an optional
parameter and latest build is used when this argument is omitted.

Subcommand aliases
------------------

Instead of requiring arguments for subcommands a different approach has been
taken.  Some commands have several names and depending on how you call them,
they act slightly differently.

Paths
-----

As a convenience when current working directory is under work tree of a
repository, paths that do not start with a slash `/` are automatically converted
to be relative to root of the repository.
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