Infrastructure/VersionControl/Operations

= Package Maintainer Operations =

1. Import a SRPM into a package branch.

1. Check out a package repository (the whole thing or just a specific branch).

1. Check the log of changes.

1. Test changes in a topic branch.

1. Merge branches.

1. Add/Remove a file (patch, supplementary sources)

1. Diff between committed and uncommitted code.

1. Commit changes to a branch.

1. Upload new source files to the look-aside cache.

1. "Tag" the state of a branch. The tag will be later fed to the build system.

1. Obtain a list of tags that have been applied to a branch.

1. Tell the build system to fetch the contents of a branch based upon a tag and to build packages.

1. Branch and build for alternate repositories (ex: testing)

= Repository Administrators =

1. Create a new package repository with a branch for development/rawhide, plus branches for other releases as requested by the package maintainer.

1. Create a branch in an existing package repository for another version of Fedora (or EPEL), and initialize it with the contents of the development/rawhide branch (or another branch if requested by the package maintainer).

1. "Branch" the entire repository for a new release. There probably needs to be a way to keep track of what tags were used to spin a specific release.

= Build System =

1. Fetch the state of a package/branch associated with a tag and build packages.

1. Remove sources from the look-aside cache that are no longer referenced by any package/branch.