SEARCH
NEW RPMS
DIRECTORIES
ABOUT
FAQ
VARIOUS
BLOG
DONATE




YUM REPOSITORY

 
 

rfpkg

Section: RPM packager (1)
Updated: 2018-02-07
Index 

NAME

rfpkg - RPM Packaging utility 

SYNOPSIS

rfpkg[global_options]command[command_options][command_arguments]
rfpkghelp
rfpkgcommand--help 

DESCRIPTION

rfpkgis a script to interact with the RPM Packaging system. 

Global Options


  --config CONFIG, -C CONFIG
                        Specify a config file to use
  --release RELEASE     Override the discovered release from current branch,
                        which is used to determine the build target and value
                        of dist macro. Generally, release is the name of a
                        branch created in your package repository. --release
                        is an alias of --dist, hence --release should be used
                        instead.
  --dist DIST           Deprecated. Use --release instead. You can use --dist
                        for a while for backward-compatibility. It will be
                        disabled in future version.
  --module-name MODULE_NAME
                        Override the module name. Otherwise it is discovered
                        from: Git push URL or Git URL (last part of path with
                        .git extension removed) or from name macro in spec
                        file. In that order.
  --user USER           Override the discovered user name
  --password PASSWORD   Password for Koji login
  --runas RUNAS         Run Koji commands as a different user
  --path PATH           Define the directory to work in (defaults to cwd)
  --verbose, -v         Run with verbose debug output
  --debug, -d           Run with debug output
  -q                    Run quietly only displaying errors 

COMMAND OVERVIEW

rfpkg build [-h] [--arches [ARCHES [ARCHES ...]]] [--md5] [--nowait] [--target TARGET] [--background] [--skip-nvr-check] [--skip-tag] [--scratch] [--srpm [SRPM]]
Request build
rfpkg chain-build [-h] [--arches [ARCHES [ARCHES ...]]] [--md5] [--nowait] [--target TARGET] [--background] package [package ...]
Build current package in order with other packages
rfpkg ci [-h] [-m MESSAGE] [--with-changelog] [-c] [--raw] [-t] [-F FILE] [-p] [-s] [files [files ...]]
Alias for commit
rfpkg clean [-h] [--dry-run] [-x]
Remove untracked files
rfpkg clog [-h] [--raw]
Make a clog file containing top changelog entry
rfpkg clone [-h] [--branches] [--branch BRANCH] [--anonymous] module [clone_target]
Clone and checkout a module
rfpkg co [-h] [--branches] [--branch BRANCH] [--anonymous] module [clone_target]
Alias for clone
rfpkg commit [-h] [-m MESSAGE] [--with-changelog] [-c] [--raw] [-t] [-F FILE] [-p] [-s] [files [files ...]]
Commit changes
rfpkg compile [-h] [--builddir BUILDDIR] [--arch ARCH] [--short-circuit] [--nocheck]
Local test rpmbuild compile
rfpkg container-build [-h] [--compose-id [COMPOSE_ID [COMPOSE_ID ...]] | --signing-intent SIGNING_INTENT | --repo-url [URL [URL ...]]] [--target TARGET] [--nowait] [--scratch] [--arches [ARCHES [ARCHES ...]]]
Build a container
rfpkg container-build-setup [-h] (--get-autorebuild | --set-autorebuild {true,false})
set options for container-build
rfpkg copr-build [-h] [--config CONFIG] [--nowait] project
Build package in Copr
rfpkg diff [-h] [--cached] [files [files ...]]
Show changes between commits, commit and working tree, etc
rfpkg gimmespec [-h]
Print the spec file name
rfpkg gitbuildhash [-h] build
Print the git hash used to build the provided n-v-r
rfpkg giturl [-h]
Print the git url for building
rfpkg help [-h]
Show usage
rfpkg import [-h] [--skip-diffs] srpm
Import srpm content into a module
rfpkg install [-h] [--builddir BUILDDIR] [--arch ARCH] [--short-circuit] [--nocheck]
Local test rpmbuild install
rfpkg lint [-h] [--info] [--rpmlintconf RPMLINTCONF]
Run rpmlint against local spec and build output if present.
rfpkg local [-h] [--builddir BUILDDIR] [--arch ARCH] [--md5]
Local test rpmbuild binary
rfpkg mock-config [-h] [--target TARGET] [--arch ARCH]
Generate a mock config
rfpkg mockbuild [-h] [--root CONFIG] [--md5] [--no-clean] [--no-cleanup-after] [--no-clean-all] [--with BCOND_WITH] [--without BCOND_WITHOUT]
Local test build using mock
rfpkg module-build [-h] [--watch] [--optional KEY=VALUE] [scm_url] [branch]
Build a module using MBS
rfpkg module-build-cancel [-h] build_id
Cancel an MBS module build
rfpkg module-build-info [-h] build_id
Show information of an MBS module build
rfpkg module-build-local [-h] [--skip-tests] [--add-local-build BUILD_ID] [scm_url] [branch]
Build a module locally using the mbs-manager command
rfpkg module-build-watch [-h] build_id
Watch an MBS build
rfpkg module-overview [-h] [--unfinished] [--limit LIMIT]
Shows an overview of MBS builds
rfpkg new [-h]
Diff against last tag
rfpkg new-sources [-h] files [files ...]
Upload source files
rfpkg patch [-h] [--rediff] suffix
Create and add a gendiff patch file
rfpkg prep [-h] [--builddir BUILDDIR] [--arch ARCH]
Local test rpmbuild prep
rfpkg pull [-h] [--rebase] [--no-rebase]
Pull changes from the remote repository and update the working copy.
rfpkg push [-h] [--force]
Push changes to remote repository
rfpkg retire [-h] reason
Retire a package
rfpkg scratch-build [-h] [--arches [ARCHES [ARCHES ...]]] [--md5] [--nowait] [--target TARGET] [--background] [--srpm [SRPM]]
Request scratch build
rfpkg sources [-h] [--outdir OUTDIR]
Download source files
rfpkg srpm [-h] [--md5]
Create a source rpm
rfpkg switch-branch [-h] [-l] [--fetch] [branch]
Work with branches
rfpkg tag [-h] [-f] [-m MESSAGE] [-c] [--raw] [-F FILE] [-l] [-d] [tag]
Management of git tags
rfpkg unused-patches [-h]
Print list of patches not referenced by name in the specfile
rfpkg update [-h]
Submit last build as update
rfpkg upload [-h] files [files ...]
Upload source files
rfpkg verify-files [-h] [--builddir BUILDDIR] [--arch ARCH]
Locally verify %%files section
rfpkg verrel [-h]
Print the name-version-release
 

COMMAND REFERENCE

 

rfpkg build


  usage: rfpkg build [-h] [--arches [ARCHES [ARCHES ...]]] [--md5] [--nowait]
                     [--target TARGET] [--background] [--skip-nvr-check]
                     [--skip-tag] [--scratch] [--srpm [SRPM]]
  
  This command requests a build of the package in the build system. By default
  it discovers the target to build for based on branch data, and uses the latest
  commit as the build source.
  
  optional arguments:
    -h, --help            show this help message and exit
    --arches [ARCHES [ARCHES ...]]
                          Build for specific arches
    --md5                 Use md5 checksums (for older rpm hosts)
    --nowait              Don't wait on build
    --target TARGET       Define build target to build into
    --background          Run the build at a low priority
    --skip-nvr-check      Submit build to buildsystem without check if NVR was
                          already built. NVR is constructed locally and may be
                          different from NVR constructed during build on
                          builder.
    --skip-tag            Do not attempt to tag package
    --scratch             Perform a scratch build
    --srpm [SRPM]         Build from an srpm. If no srpm is provided with this
                          option an srpm will be generated from current module
                          content.
   

rfpkg chain-build


  usage: rfpkg chain-build [-h] [--arches [ARCHES [ARCHES ...]]] [--md5]
                           [--nowait] [--target TARGET] [--background]
                           package [package ...]
  
  Build current package in order with other packages.
  
  example: rfpkg chain-build libwidget libgizmo
  
  The current package is added to the end of the CHAIN list.
  Colons (:) can be used in the CHAIN parameter to define groups of
  packages.  Packages in any single group will be built in parallel
  and all packages in a group must build successfully and populate
  the repository before the next group will begin building.
  
  For example:
  
  rfpkg chain-build libwidget libaselib : libgizmo :
  
  will cause libwidget and libaselib to be built in parallel, followed
  by libgizmo and then the current directory package. If no groups are
  defined, packages will be built sequentially.
  
  positional arguments:
    package               List the packages and order you want to build in
  
  optional arguments:
    -h, --help            show this help message and exit
    --arches [ARCHES [ARCHES ...]]
                          Build for specific arches
    --md5                 Use md5 checksums (for older rpm hosts)
    --nowait              Don't wait on build
    --target TARGET       Define build target to build into
    --background          Run the build at a low priority
   

rfpkg ci


  usage: rfpkg ci [-h] [-m MESSAGE] [--with-changelog] [-c] [--raw] [-t]
                  [-F FILE] [-p] [-s]
                  [files [files ...]]
  
  Alias for commit.
  
  positional arguments:
    files                 Optional list of specific files to commit
  
  optional arguments:
    -h, --help            show this help message and exit
    -m MESSAGE, --message MESSAGE
                          Use the given <msg> as the commit message summary
    --with-changelog      Get the last changelog from SPEC as commit message
                          content. This option must be used with -m together.
    -c, --clog            Generate the commit message from the Changelog section
    --raw                 Make the clog raw
    -t, --tag             Create a tag for this commit
    -F FILE, --file FILE  Take the commit message from the given file
    -p, --push            Commit and push as one action
    -s, --signoff         Include a signed-off-by
   

rfpkg clean


  usage: rfpkg clean [-h] [--dry-run] [-x]
  
  This command can be used to clean up your working directory. By default it
  will follow .gitignore rules.
  
  optional arguments:
    -h, --help     show this help message and exit
    --dry-run, -n  Perform a dry-run
    -x             Do not follow .gitignore rules
   

rfpkg clog


  usage: rfpkg clog [-h] [--raw]
  
  This will create a file named "clog" that contains the latest rpm changelog
  entry. The leading "- " text will be stripped.
  
  optional arguments:
    -h, --help  show this help message and exit
    --raw       Generate a more "raw" clog without twiddling the contents
   

rfpkg clone


  usage: rfpkg clone [-h] [--branches] [--branch BRANCH] [--anonymous]
                     module [clone_target]
  
  This command will clone the named module from the configured repository base
  URL. By default it will also checkout the master branch for your working copy.
  
  positional arguments:
    module                Name of the module to clone
    clone_target          Directory in which to clone the module
  
  optional arguments:
    -h, --help            show this help message and exit
    --branches, -B        Do an old style checkout with subdirs for branches
    --branch BRANCH, -b BRANCH
                          Check out a specific branch
    --anonymous, -a       Check out a module anonymously
   

rfpkg co


  usage: rfpkg co [-h] [--branches] [--branch BRANCH] [--anonymous]
                  module [clone_target]
  
  Alias for clone.
  
  positional arguments:
    module                Name of the module to clone
    clone_target          Directory in which to clone the module
  
  optional arguments:
    -h, --help            show this help message and exit
    --branches, -B        Do an old style checkout with subdirs for branches
    --branch BRANCH, -b BRANCH
                          Check out a specific branch
    --anonymous, -a       Check out a module anonymously
   

rfpkg commit


  usage: rfpkg commit [-h] [-m MESSAGE] [--with-changelog] [-c] [--raw] [-t]
                      [-F FILE] [-p] [-s]
                      [files [files ...]]
  
  This invokes a git commit. All tracked files with changes will be committed
  unless a specific file list is provided. $EDITOR will be used to generate a
  changelog message unless one is given to the command. A push can be done at
  the same time.
  
  positional arguments:
    files                 Optional list of specific files to commit
  
  optional arguments:
    -h, --help            show this help message and exit
    -m MESSAGE, --message MESSAGE
                          Use the given <msg> as the commit message summary
    --with-changelog      Get the last changelog from SPEC as commit message
                          content. This option must be used with -m together.
    -c, --clog            Generate the commit message from the Changelog section
    --raw                 Make the clog raw
    -t, --tag             Create a tag for this commit
    -F FILE, --file FILE  Take the commit message from the given file
    -p, --push            Commit and push as one action
    -s, --signoff         Include a signed-off-by
   

rfpkg compile


  usage: rfpkg compile [-h] [--builddir BUILDDIR] [--arch ARCH]
                       [--short-circuit] [--nocheck]
  
  This command calls rpmbuild to compile the source. By default the prep and
  configure stages will be done as well, unless the short-circuit option is
  used.
  
  optional arguments:
    -h, --help           show this help message and exit
    --builddir BUILDDIR  Define an alternate builddir
    --arch ARCH          Prep for a specific arch
    --short-circuit      short-circuit compile
    --nocheck            nocheck compile
   

rfpkg container-build


  usage: rfpkg container-build [-h] [--compose-id [COMPOSE_ID [COMPOSE_ID ...]]
                               | --signing-intent SIGNING_INTENT | --repo-url
                               [URL [URL ...]]] [--target TARGET] [--nowait]
                               [--scratch] [--arches [ARCHES [ARCHES ...]]]
  
  Build a container
  
  optional arguments:
    -h, --help            show this help message and exit
    --compose-id [COMPOSE_ID [COMPOSE_ID ...]]
                          ODCS composes used. Cannot be used with --signing-
                          intent or --repo-url
    --signing-intent SIGNING_INTENT
                          Signing intent of the ODCS composes. Cannot be used
                          with --compose-id or --repo-url
    --repo-url [URL [URL ...]]
                          URL of yum repo fileCannot be used with --signing-
                          intent or --compose-id
    --target TARGET       Override the default target
    --nowait              Don't wait on build
    --scratch             Scratch build
    --arches [ARCHES [ARCHES ...]]
                          Limit a scratch build to an arch. May have multiple
                          arches.
   

rfpkg container-build-setup


  usage: rfpkg container-build-setup [-h]
                                     (--get-autorebuild | --set-autorebuild {true,false})
  
  set options for container-build.
  
  optional arguments:
    -h, --help            show this help message and exit
    --get-autorebuild     Get autorebuild value
    --set-autorebuild {true,false}
                          Turn autorebuilds on/off
   

rfpkg copr-build


  usage: rfpkg copr-build [-h] [--config CONFIG] [--nowait] project
  
  Build package in Copr.
  
  Note: you need to have set up correct api key. For more information
  see API KEY section of copr-cli(1) man page.
  
  positional arguments:
    project          Name of the project in format USER/PROJECT
  
  optional arguments:
    -h, --help       show this help message and exit
    --config CONFIG  Path to an alternative Copr configuration file
    --nowait         Don't wait on build
   

rfpkg diff


  usage: rfpkg diff [-h] [--cached] [files [files ...]]
  
  Use git diff to show changes that have been made to tracked files. By default
  cached changes (changes that have been git added) will not be shown.
  
  positional arguments:
    files       Optionally diff specific files
  
  optional arguments:
    -h, --help  show this help message and exit
    --cached    View staged changes
   

rfpkg gimmespec


  usage: rfpkg gimmespec [-h]
  
  Print the spec file name.
  
  optional arguments:
    -h, --help  show this help message and exit
   

rfpkg gitbuildhash


  usage: rfpkg gitbuildhash [-h] build
  
  This will show you the commit hash string used to build the provided build
  n-v-r
  
  positional arguments:
    build       name-version-release of the build to query.
  
  optional arguments:
    -h, --help  show this help message and exit
   

rfpkg giturl


  usage: rfpkg giturl [-h]
  
  This will show you which git URL would be used in a build command. It uses the
  git hashsum of the HEAD of the current branch (which may not be pushed).
  
  optional arguments:
    -h, --help  show this help message and exit
   

rfpkg help


  usage: rfpkg help [-h]
  
  Show usage.
  
  optional arguments:
    -h, --help  show this help message and exit
   

rfpkg import


  usage: rfpkg import [-h] [--skip-diffs] srpm
  
  This will extract sources, patches, and the spec file from an srpm and update
  the current module accordingly. It will import to the current branch by
  default.
  
  positional arguments:
    srpm          Source rpm to import
  
  optional arguments:
    -h, --help    show this help message and exit
    --skip-diffs  Don't show diffs when import srpms
   

rfpkg install


  usage: rfpkg install [-h] [--builddir BUILDDIR] [--arch ARCH]
                       [--short-circuit] [--nocheck]
  
  This will call rpmbuild to run the install section. All leading sections will
  be processed as well, unless the short-circuit option is used.
  
  optional arguments:
    -h, --help           show this help message and exit
    --builddir BUILDDIR  Define an alternate builddir
    --arch ARCH          Prep for a specific arch
    --short-circuit      short-circuit install
    --nocheck            nocheck install
   

rfpkg lint


  usage: rfpkg lint [-h] [--info] [--rpmlintconf RPMLINTCONF]
  
  Rpmlint can be configured using the --rpmlintconf/-r option or by setting a
  .rpmlint file in the working directory
  
  optional arguments:
    -h, --help            show this help message and exit
    --info, -i            Display explanations for reported messages
    --rpmlintconf RPMLINTCONF, -r RPMLINTCONF
                          Use a specific configuration file for rpmlint
   

rfpkg local


  usage: rfpkg local [-h] [--builddir BUILDDIR] [--arch ARCH] [--md5]
  
  Locally test run of rpmbuild producing binary RPMs. The rpmbuild output will
  be logged into a file named .build-%{version}-%{release}.log
  
  optional arguments:
    -h, --help           show this help message and exit
    --builddir BUILDDIR  Define an alternate builddir
    --arch ARCH          Prep for a specific arch
    --md5                Use md5 checksums (for older rpm hosts)
   

rfpkg mock-config


  usage: rfpkg mock-config [-h] [--target TARGET] [--arch ARCH]
  
  This will generate a mock config based on the buildsystem target
  
  optional arguments:
    -h, --help       show this help message and exit
    --target TARGET  Override target used for config
    --arch ARCH      Override local arch
   

rfpkg mockbuild


  usage: rfpkg mockbuild [-h] [--root CONFIG] [--md5] [--no-clean]
                         [--no-cleanup-after] [--no-clean-all]
                         [--with BCOND_WITH] [--without BCOND_WITHOUT]
  
  This will use the mock utility to build the package for the distribution
  detected from branch information. This can be overridden using the global
  --release option. Your user must be in the local "mock" group.
  
  optional arguments:
    -h, --help            show this help message and exit
    --root CONFIG, --mock-config CONFIG
                          Override mock configuration (like mock -r)
    --md5                 Use md5 checksums (for older rpm hosts)
    --no-clean, -n        Do not clean chroot before building package
    --no-cleanup-after    Do not clean chroot after building (if automatic
                          cleanup is enabled
    --no-clean-all, -N    Alias for both --no-clean and --no-cleanup-after
    --with BCOND_WITH     Enable configure option (bcond) for the build
    --without BCOND_WITHOUT
                          Disable configure option (bcond) for the build
  
  If config file for mock isn't found in the /etc/mock directory, a temporary
  config directory for mock is created and populated with a config file created
  with mock-config.
   

rfpkg module-build


  usage: rfpkg module-build [-h] [--watch] [--optional KEY=VALUE]
                            [scm_url] [branch]
  
  Build a module using MBS
  
  positional arguments:
    scm_url               The module's SCM URL. This defaults to the current
                          repo.
    branch                The module's SCM branch. This defaults to the current
                          checked-out branch.
  
  optional arguments:
    -h, --help            show this help message and exit
    --watch, -w           Watch the module build
    --optional KEY=VALUE  MBS optional arguments in the form of "key=value"
   

rfpkg module-build-cancel


  usage: rfpkg module-build-cancel [-h] build_id
  
  Cancel an MBS module build
  
  positional arguments:
    build_id    The ID of the module build to cancel
  
  optional arguments:
    -h, --help  show this help message and exit
   

rfpkg module-build-info


  usage: rfpkg module-build-info [-h] build_id
  
  Show information of an MBS module build
  
  positional arguments:
    build_id    The ID of the module build
  
  optional arguments:
    -h, --help  show this help message and exit
   

rfpkg module-build-local


  usage: rfpkg module-build-local [-h] [--skip-tests]
                                  [--add-local-build BUILD_ID]
                                  [scm_url] [branch]
  
  Build a module locally using the mbs-manager command
  
  positional arguments:
    scm_url               The module's SCM URL. This defaults to the current
                          repo.
    branch                The module's SCM branch. This defaults to the current
                          checked-out branch.
  
  optional arguments:
    -h, --help            show this help message and exit
    --skip-tests          Adds a macro for skipping the check section
    --add-local-build BUILD_ID
                          Import previously finished local module builds into
                          MBS
   

rfpkg module-build-watch


  usage: rfpkg module-build-watch [-h] build_id
  
  Watch an MBS build
  
  positional arguments:
    build_id    The ID of the module build to watch
  
  optional arguments:
    -h, --help  show this help message and exit
   

rfpkg module-overview


  usage: rfpkg module-overview [-h] [--unfinished] [--limit LIMIT]
  
  Shows an overview of MBS builds
  
  optional arguments:
    -h, --help     show this help message and exit
    --unfinished   Show unfinished module builds
    --limit LIMIT  The number of most recent module builds to display
   

rfpkg new


  usage: rfpkg new [-h]
  
  This will use git to show a diff of all the changes (even uncommitted changes)
  since the last git tag was applied.
  
  optional arguments:
    -h, --help  show this help message and exit
   

rfpkg new-sources


  usage: rfpkg new-sources [-h] files [files ...]
  
  This will upload new source file(s) to lookaside cache, and all file names
  listed in sources file will be replaced. .gitignore will be also updated with
  new uploaded file(s). Please remember to commit them.
  
  positional arguments:
    files
  
  optional arguments:
    -h, --help  show this help message and exit
   

rfpkg patch


  usage: rfpkg patch [-h] [--rediff] suffix
  
  Create and add a gendiff patch file.
  
  positional arguments:
    suffix      Look for files with this suffix to diff
  
  optional arguments:
    -h, --help  show this help message and exit
    --rediff    Recreate gendiff file retaining comments Saves old patch file
                with a suffix of ~
  
  Patch file will be named: package-version-suffix.patch and the file will be
  added to the repo index
   

rfpkg prep


  usage: rfpkg prep [-h] [--builddir BUILDDIR] [--arch ARCH]
  
  Use rpmbuild to "prep" the sources (unpack the source archive(s) and apply any
  patches.)
  
  optional arguments:
    -h, --help           show this help message and exit
    --builddir BUILDDIR  Define an alternate builddir
    --arch ARCH          Prep for a specific arch
   

rfpkg pull


  usage: rfpkg pull [-h] [--rebase] [--no-rebase]
  
  This command uses git to fetch remote changes and apply them to the current
  working copy. A rebase option is available which can be used to avoid merges.
  
  optional arguments:
    -h, --help   show this help message and exit
    --rebase     Rebase the locally committed changes on top of the remote
                 changes after fetching. This can avoid a merge commit, but does
                 rewrite local history.
    --no-rebase  Do not rebase, overriding .git settings to the contrary
  
  See git pull --help for more details
   

rfpkg push


  usage: rfpkg push [-h] [--force]
  
  Push changes to remote repository.
  
  optional arguments:
    -h, --help   show this help message and exit
    --force, -f  Force push
   

rfpkg retire


  usage: rfpkg retire [-h] reason
  
  This command will remove all files from the repo, leave a dead.package file,
  push the changes and retire the package in pkgdb.
  
  positional arguments:
    reason      Reason for retiring the package
  
  optional arguments:
    -h, --help  show this help message and exit
   

rfpkg scratch-build


  usage: rfpkg scratch-build [-h] [--arches [ARCHES [ARCHES ...]]] [--md5]
                             [--nowait] [--target TARGET] [--background]
                             [--srpm [SRPM]]
  
  This command will request a scratch build of the package. Without providing an
  srpm, it will attempt to build the latest commit, which must have been pushed.
  By default all appropriate arches will be built.
  
  optional arguments:
    -h, --help            show this help message and exit
    --arches [ARCHES [ARCHES ...]]
                          Build for specific arches
    --md5                 Use md5 checksums (for older rpm hosts)
    --nowait              Don't wait on build
    --target TARGET       Define build target to build into
    --background          Run the build at a low priority
    --srpm [SRPM]         Build from an srpm. If no srpm is provided with this
                          option an srpm will be generated from the current
                          module content.
   

rfpkg sources


  usage: rfpkg sources [-h] [--outdir OUTDIR]
  
  Download source files
  
  optional arguments:
    -h, --help       show this help message and exit
    --outdir OUTDIR  Directory to download files into (defaults to pwd)
   

rfpkg srpm


  usage: rfpkg srpm [-h] [--md5]
  
  Create a source rpm
  
  optional arguments:
    -h, --help  show this help message and exit
    --md5       Use md5 checksums (for older rpm hosts)
   

rfpkg switch-branch


  usage: rfpkg switch-branch [-h] [-l] [--fetch] [branch]
  
  This command can switch to a local git branch. If provided with a remote
  branch name that does not have a local match it will create one. It can also
  be used to list the existing local and remote branches.
  
  positional arguments:
    branch      Branch name to switch to
  
  optional arguments:
    -h, --help  show this help message and exit<