tito(8) - Linux man page

Name

tito - manage RPM based projects using git

Synopsis

tito init

tito tag [OPTIONS]

tito build --test --rpm

tito build [OPTIONS]

tito report

Description

After setting up a directory as a Git repo, use tito to manage the tags and builds. A simple workflow may look like:

1. Save user preferences as described in titorc(5)
2. Initialize a rel-eng directory
3. Test
1. Make changes to source
2. Use git to commit changes
3. Build: tito build --rpm --test
4. Finalize a release
1. Tag: tito tag
2. Push: git push && git push $ORIGIN $TAG
3. Build: tito build [OPTIONS]

Options

tito init

This will create a top-level metadata directory called "rel-eng/" and commit it to git. This directory will store tito's configuration and package metadata on a per branch basis. It will be filtered out when creating .tar.gz's.
Note

Your spec file should list the source as %{name}-%{version}.tar.gz

tito tag [options]

By default, tito will tag by bumping the rpm version (i.e. we bump the Z in X.Y.Z). If you'd prefer to bump the package release instead (normally should just be used for changes to the spec file or patches applied within it), you can change the default_tagger class in rel-eng/tito.props to ReleaseTagger. This will affect all packages in this git branch; if you'd prefer to do this on a per-package basis you can do so in a package specific tito.props.

-h, --help

show this help message and exit
--debug
print debug messages
--offline
do not attempt any remote communication (avoid using this please)
-o OUTPUTDIR, --output=OUTPUTDIR
Write temp files, tarballs, and RPMs to OUTPUTDIR. Create sub-directories as needed by rpmbuild(8). (default /tmp/tito)
--tag-release
Deprecated, no longer required.
--keep-version
Use spec file version/release exactly as specified in spec file to tag package.
--no-auto-changelog
Don't automatically create a changelog entry for this tag if none is found
--accept-auto-changelog
Automatically accept the generated changelog.
--auto-changelog-message=MESSAGE
Use MESSAGE as the default changelog message for new packages
-u, --undo
Undo the most recent (un-pushed) tag.

tito build [options]

-h, --help
show this help message and exit
--debug
print debug messages
--offline
do not attempt any remote communication (avoid using this please)
-o OUTPUTDIR, --output=OUTPUTDIR
Write temp files, tarballs and RPMs to OUTPUTDIR. (default /tmp/tito)
--tgz
Build .tar.gz
--srpm
Build srpm
--rpm
Build srpm and rpm
-i, --install
Install any binary RPMs being built.
Warning

uses sudo rpm -Uvh --force

--dist=DISTTAG
Apply DISTTAG to srpm and/or rpm. (e.g., ".el5")
--test
use current branch HEAD instead of latest package tag.
--no-cleanup
do not clean up temporary build directories/files
--list-tags
List tags for which we build this package. If you set --debug together with this option, you will see all tags and whether they are whitelisted or blacklisted.
--only-tags=KOJI_TAG
Build in koji only for specified tags. Can be specified multiple times.
--upload-new-source=CVS_NEW_SOURCES
Upload a new source tarball to CVS lookaside. (i.e. runs make new-sources) Must be used until sources file is committed to CVS.
--rpmbuild-options=OPTIONS
Pass OPTIONS to rpmbuild.
--builder=BUILDER
Override the normal builder by specifying a full class path or one of the pre-configured shortcuts. Only useful if you need to override the default builder for some purpose, such as testing a build via mock.
--builder-arg=BUILDER_ARGS
Custom arguments specific to a particular builder. (key=value)

tito release [options] TARGETS

Runs the release targets defined in rel-eng/releasers.conf.

-h, --help

show this help message and exit
--debug
print debug messages
--offline
do not attempt any remote communication (avoid using this please)
-o OUTPUTDIR, --output=OUTPUTDIR
Write temp files, tarballs and RPMs to OUTPUTDIR. (default /tmp/tito)
--tag=PKGTAG
build a specific tag instead of the latest version (e.g., spacewalk-java-0.4.0-1)
--dry-run
Do not actually commit/push anything during release.
--no-build
Do not perform a brew/koji build, only DistGit commit. (only for Koji/DistGit releasers)
--all
Run all release targets defined in rel-eng/releasers.conf.
--list
List all release targets defined in rel-eng/releasers.conf.
--all-starting-with=ALL_STARTING_WITH
Run all release targets starting with the given string. (i.e. if you have defined release targets yum-f15 and yum-f14 in releasers.conf, --all-starting-with=yum will run only these targets, and ignore any others.)
--scratch
Perform a scratch build in Koji

tito report

Display a report of all packages with differences between HEAD and their most recent tag, as well as a patch for that diff. Used to determine which packages are in need of a rebuild.

Examples

Build and install a test package from the latest code in current git HEAD

tito build --rpm --test -i
Overriding the default builder to build via mock instead
tito build --builder mock --builder-arg mock=fedora-15-x86_64 --rpm

See Also

titorc(5) releasers.conf(5) tito.props(5)

/usr/share/doc/tito-*/README.mkd

Authors

Devan Goodwin <dgoodwin@rm-rf.ca>

James Bowes <jbowes@repl.ca>

Jan Pazdziora

Jesus M Rodriguez <jesusr@redhat.com>

Pall Sigurdsson <palli@opensource.is>

Miroslav Suchý <msuchy@redhat.com>