From a8be7423efb287edd5ef80002a75a853fc0c9c1d Mon Sep 17 00:00:00 2001
From: Levente Polyak <anthraxx@archlinux.org>
Date: Mon, 12 Sep 2022 01:34:08 +0200
Subject: pkgctl: add a unified command-line frontend for devtools

This is the first step of a simple and highly structured unified
interface to devtools commands in a single wrapper.

The split is based on groups like `repo`, `build` and `diff`

Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
---
 doc/man/pkgctl-repo.1.asciidoc | 51 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 doc/man/pkgctl-repo.1.asciidoc

(limited to 'doc/man/pkgctl-repo.1.asciidoc')

diff --git a/doc/man/pkgctl-repo.1.asciidoc b/doc/man/pkgctl-repo.1.asciidoc
new file mode 100644
index 0000000..564679a
--- /dev/null
+++ b/doc/man/pkgctl-repo.1.asciidoc
@@ -0,0 +1,51 @@
+pkgctl-repo(1)
+================
+
+Name
+----
+pkgctl-repo - Manage Git packaging repositories and their configuration
+
+Synopsis
+--------
+pkgctl repo [OPTIONS] [SUBCOMMAND]
+
+Description
+-----------
+
+Manage Git packaging repositories and helps with their configuration
+according to distro specs.
+
+Git author information and the used signing key is set up from
+'makepkg.conf' read from any valid location like '/etc' or 'XDG_CONFIG_HOME'.
+The configure command can be used to synchronize the distro specs and
+makepkg.conf settings for previously cloned repositories.
+
+The unprivileged option can be used for cloning packaging repositories
+without SSH access using read-only HTTPS.
+
+Options
+-------
+
+*-h, --help*::
+	Show a help text
+
+Subcommands
+-----------
+
+pkgctl repo clone::
+	Clone a package repository
+
+pkgctl repo configure::
+	Configure a clone according to distro specs
+
+pkgctl repo web::
+	Open the packaging repository's website
+
+See Also
+--------
+
+linkman:pkgctl-repo-clone[1]
+linkman:pkgctl-repo-configure[1]
+linkman:pkgctl-repo-web[1]
+
+include::include/footer.asciidoc[]
-- 
cgit v1.2.3-70-g09d2


From 2a59c32bf4ff117bd02d58a4e3f322b709259f1e Mon Sep 17 00:00:00 2001
From: Levente Polyak <anthraxx@archlinux.org>
Date: Sun, 30 Oct 2022 14:44:06 +0100
Subject: repo: added command to create a new packaging repository

---
 contrib/completion/zsh/_devtools.in   |   7 +++
 doc/man/pkgctl-repo-create.1.asciidoc |  40 ++++++++++++
 doc/man/pkgctl-repo.1.asciidoc        |   4 ++
 src/lib/repo.sh                       |  10 +++
 src/lib/repo/create.sh                | 113 ++++++++++++++++++++++++++++++++++
 5 files changed, 174 insertions(+)
 create mode 100644 doc/man/pkgctl-repo-create.1.asciidoc
 create mode 100644 src/lib/repo/create.sh

(limited to 'doc/man/pkgctl-repo.1.asciidoc')

diff --git a/contrib/completion/zsh/_devtools.in b/contrib/completion/zsh/_devtools.in
index 6ff6cad..3395338 100644
--- a/contrib/completion/zsh/_devtools.in
+++ b/contrib/completion/zsh/_devtools.in
@@ -38,6 +38,7 @@ _pkgctl_repo_cmds=(
 	"pkgctl repo command"
 	"clone[Clone a package repository]"
 	"configure[Configure a clone according to distro specs]"
+	"create[Create a new GitLab package repository]"
 	"web[Open the packaging repository's website]"
 )
 
@@ -55,6 +56,12 @@ _pkgctl_repo_configure_args=(
 	'*:git_dir:_files -/'
 )
 
+_pkgctl_repo_create_args=(
+	'(-c --clone)'{-c,--clone}'[Clone the Git repository after creation]'
+	'(-h --help)'{-h,--help}'[Display usage]'
+	'1:pkgbase'
+)
+
 _pkgctl_repo_web_args=(
 	'(-h --help)'{-h,--help}'[Display usage]'
 	'*:git_dir:_files -/'
diff --git a/doc/man/pkgctl-repo-create.1.asciidoc b/doc/man/pkgctl-repo-create.1.asciidoc
new file mode 100644
index 0000000..b9d980b
--- /dev/null
+++ b/doc/man/pkgctl-repo-create.1.asciidoc
@@ -0,0 +1,40 @@
+pkgctl-repo-create(1)
+======================
+
+Name
+----
+pkgctl-repo-create - Create a new GitLab package repository
+
+Synopsis
+--------
+pkgctl repo create [OPTIONS] [PKGBASE...]
+
+Description
+-----------
+
+Create a new Git packaging repository in the canonical GitLab namespace.
+
+This command requires a valid GitLab API authentication. To setup a new
+GitLab token or check the currently configured one please consult the
+'auth' subcommand for further instructions.
+
+If invoked without a parameter, try to create a packaging repository
+based on the 'PKGBUILD' from the current working directory.
+
+Options
+-------
+
+*-c, --clone*::
+	Clone the Git repository after creation
+
+*-h, --help*::
+	Show a help text
+
+See Also
+--------
+
+linkman:pkgctl-auth[1]
+linkman:pkgctl-repo-clone[1]
+linkman:pkgctl-repo-configure[1]
+
+include::include/footer.asciidoc[]
diff --git a/doc/man/pkgctl-repo.1.asciidoc b/doc/man/pkgctl-repo.1.asciidoc
index 564679a..630afd8 100644
--- a/doc/man/pkgctl-repo.1.asciidoc
+++ b/doc/man/pkgctl-repo.1.asciidoc
@@ -38,6 +38,9 @@ pkgctl repo clone::
 pkgctl repo configure::
 	Configure a clone according to distro specs
 
+pkgctl repo create::
+	Create a new GitLab package repository
+
 pkgctl repo web::
 	Open the packaging repository's website
 
@@ -46,6 +49,7 @@ See Also
 
 linkman:pkgctl-repo-clone[1]
 linkman:pkgctl-repo-configure[1]
+linkman:pkgctl-repo-create[1]
 linkman:pkgctl-repo-web[1]
 
 include::include/footer.asciidoc[]
diff --git a/src/lib/repo.sh b/src/lib/repo.sh
index 8b8df11..6b3817a 100644
--- a/src/lib/repo.sh
+++ b/src/lib/repo.sh
@@ -29,6 +29,7 @@ pkgctl_repo_usage() {
 		COMMANDS
 		    clone          Clone a package repository
 		    configure      Configure a clone according to distro specs
+		    create         Create a new GitLab package repository
 		    web            Open the packaging repository's website
 
 		OPTIONS
@@ -38,6 +39,7 @@ pkgctl_repo_usage() {
 		    $ ${COMMAND} clone libfoo linux libbar
 		    $ ${COMMAND} clone --maintainer mynickname
 		    $ ${COMMAND} configure *
+		    $ ${COMMAND} create libfoo
 		    $ ${COMMAND} web linux
 _EOF_
 }
@@ -71,6 +73,14 @@ pkgctl_repo() {
 				pkgctl_repo_configure "$@"
 				exit 0
 				;;
+			create)
+				_DEVTOOLS_COMMAND+=" $1"
+				shift
+				# shellcheck source=src/lib/repo/create.sh
+				source "${_DEVTOOLS_LIBRARY_DIR}"/lib/repo/create.sh
+				pkgctl_repo_create "$@"
+				exit 0
+				;;
 			web)
 				_DEVTOOLS_COMMAND+=" $1"
 				shift
diff --git a/src/lib/repo/create.sh b/src/lib/repo/create.sh
new file mode 100644
index 0000000..31b46e1
--- /dev/null
+++ b/src/lib/repo/create.sh
@@ -0,0 +1,113 @@
+#!/bin/bash
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+[[ -z ${DEVTOOLS_INCLUDE_REPO_CREATE_SH:-} ]] || return 0
+DEVTOOLS_INCLUDE_REPO_CREATE_SH=1
+
+_DEVTOOLS_LIBRARY_DIR=${_DEVTOOLS_LIBRARY_DIR:-@pkgdatadir@}
+# shellcheck source=src/lib/common.sh
+source "${_DEVTOOLS_LIBRARY_DIR}"/lib/common.sh
+# shellcheck source=src/lib/api/gitlab.sh
+source "${_DEVTOOLS_LIBRARY_DIR}"/lib/api/gitlab.sh
+# shellcheck source=src/lib/repo/clone.sh
+source "${_DEVTOOLS_LIBRARY_DIR}"/lib/repo/clone.sh
+# shellcheck source=src/lib/repo/configure.sh
+source "${_DEVTOOLS_LIBRARY_DIR}"/lib/repo/configure.sh
+
+set -e
+
+
+pkgctl_repo_create_usage() {
+	local -r COMMAND=${_DEVTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
+	cat <<- _EOF_
+		Usage: ${COMMAND} [OPTIONS] [PKGBASE]...
+
+		Create a new Git packaging repository in the canonical GitLab namespace.
+
+		This command requires a valid GitLab API authentication. To setup a new
+		GitLab token or check the currently configured one please consult the
+		'auth' subcommand for further instructions.
+
+		If invoked without a parameter, try to create a packaging repository
+		based on the PKGBUILD from the current working directory and configure
+		the local repository afterwards.
+
+		OPTIONS
+		    -c, --clone   Clone the Git repository after creation
+		    -h, --help    Show this help text
+
+		EXAMPLES
+		    $ ${COMMAND} libfoo
+_EOF_
+}
+
+pkgctl_repo_create() {
+	# options
+	local pkgbases=()
+	local pkgbase
+	local clone=0
+	local configure=0
+
+	# variables
+	local path
+
+	while (( $# )); do
+		case $1 in
+			-h|--help)
+				pkgctl_repo_create_usage
+				exit 0
+				;;
+			-c|--clone)
+				clone=1
+				shift
+				;;
+			-*)
+				die "invalid argument: %s" "$1"
+				;;
+			*)
+				pkgbases=("$@")
+				break
+				;;
+		esac
+	done
+
+	# check if invoked without any path from within a packaging repo
+	if (( ${#pkgbases[@]} == 0 )); then
+		if [[ -f PKGBUILD ]]; then
+			if ! path=$(realpath -e .); then
+				die "failed to read path from current directory"
+			fi
+			pkgbases=("$(basename "${path}")")
+			clone=0
+			configure=1
+		else
+			pkgctl_repo_create_usage
+			exit 1
+		fi
+	fi
+
+	# create projects
+	for pkgbase in "${pkgbases[@]}"; do
+		if ! gitlab_api_create_project "${pkgbase}" >/dev/null; then
+			die "failed to create project: ${pkgbase}"
+		fi
+		msg_success "Successfully created ${pkgbase}"
+		if (( clone )); then
+			pkgctl_repo_clone "${pkgbase}"
+		elif (( configure )); then
+			pkgctl_repo_configure
+		fi
+	done
+
+	# some convenience hints if not in auto clone/configure mode
+	if (( ! clone )) && (( ! configure )); then
+		cat <<- _EOF_
+
+		For new clones:
+			$(msg2 "pkgctl repo clone ${pkgbases[*]}")
+		For existing clones:
+			$(msg2 "pkgctl repo configure ${pkgbases[*]}")
+		_EOF_
+	fi
+}
-- 
cgit v1.2.3-70-g09d2


From ed966351410b39bfcec749df59dbc434a5dade1e Mon Sep 17 00:00:00 2001
From: Christian Heusel <christian@heusel.eu>
Date: Sat, 15 Apr 2023 19:44:22 +0200
Subject: pkgctl repo: introduce the switch subcommand

Signed-off-by: Christian Heusel <christian@heusel.eu>
Co-Authored-By: Levente Polyak <anthraxx@archlinux.org>
---
 contrib/completion/bash/devtools.in   |  19 ++++++
 contrib/completion/zsh/_devtools.in   |   8 +++
 doc/man/pkgctl-repo-switch.1.asciidoc |  36 ++++++++++
 doc/man/pkgctl-repo.1.asciidoc        |   4 ++
 src/lib/repo.sh                       |  10 +++
 src/lib/repo/switch.sh                | 119 ++++++++++++++++++++++++++++++++++
 6 files changed, 196 insertions(+)
 create mode 100644 doc/man/pkgctl-repo-switch.1.asciidoc
 create mode 100644 src/lib/repo/switch.sh

(limited to 'doc/man/pkgctl-repo.1.asciidoc')

diff --git a/contrib/completion/bash/devtools.in b/contrib/completion/bash/devtools.in
index e3ae023..e79b862 100644
--- a/contrib/completion/bash/devtools.in
+++ b/contrib/completion/bash/devtools.in
@@ -255,6 +255,7 @@ _pkgctl_repo_cmds=(
 	clone
 	configure
 	create
+	switch
 	web
 )
 
@@ -282,6 +283,24 @@ _pkgctl_repo_create_args=(
 )
 
 
+_pkgctl_repo_switch_args=(
+	--discard-changes
+	-f --force
+	-h --help
+)
+_pkgctl_repo_switch_opts() {
+	local subcommand args
+	subcommand=(repo switch)
+	args=$(__pkgctl_word_count_after_subcommand "${subcommand[@]}")
+
+	if (( args == 0 )); then
+		:
+	elif (( args >= 1 )); then
+		_filedir -d;
+	fi
+}
+
+
 _pkgctl_repo_web_args=(
 	-h --help
 )
diff --git a/contrib/completion/zsh/_devtools.in b/contrib/completion/zsh/_devtools.in
index 20c37ce..5760458 100644
--- a/contrib/completion/zsh/_devtools.in
+++ b/contrib/completion/zsh/_devtools.in
@@ -94,9 +94,17 @@ _pkgctl_repo_cmds=(
 	"clone[Clone a package repository]"
 	"configure[Configure a clone according to distro specs]"
 	"create[Create a new GitLab package repository]"
+	"switch[Switch a package repository to a specified version]"
 	"web[Open the packaging repository's website]"
 )
 
+_pkgctl_repo_switch_args=(
+	'(-f --force --discard-changes)'{-f,--force,--discard-changes}'[Discard changes if index or working tree is dirty]'
+	'(-h --help)'{-h,--help}'[Display usage]'
+	'1:version'
+	'*:git_dir:_files -/'
+)
+
 _pkgctl_repo_clone_args=(
 	'(-m --maintainer=)'{-m,--maintainer=}'[Clone all packages of the named maintainer]:maintainer:'
 	'--universe[Clone all existing packages, useful for cache warming]'
diff --git a/doc/man/pkgctl-repo-switch.1.asciidoc b/doc/man/pkgctl-repo-switch.1.asciidoc
new file mode 100644
index 0000000..ac12019
--- /dev/null
+++ b/doc/man/pkgctl-repo-switch.1.asciidoc
@@ -0,0 +1,36 @@
+pkgctl-repo-switch(1)
+=====================
+
+Name
+----
+pkgctl-repo-switch - Switch a package repository to a specified version
+
+Synopsis
+--------
+pkgctl repo switch [OPTIONS] [VERSION] [PKGBASE]...
+
+Description
+-----------
+
+Switch a package source repository to a specified version, tag or branch.
+The working tree and the index are updated to match the specified ref.
+
+If a version identifier is specified in the pacman version format, that
+identifier is automatically translated to the Git tag name accordingly.
+
+The current working directory is used if no PKGBASE is specified.
+
+Options
+-------
+
+*--discard-changes*::
+	Proceed even if the index or the working tree differs from HEAD. Both the
+	index and working tree are restored to match the switching target.
+
+*-f, --force*::
+	An alias for '--discard-changes'.
+
+*-h, --help*::
+	Show a help text
+
+include::include/footer.asciidoc[]
diff --git a/doc/man/pkgctl-repo.1.asciidoc b/doc/man/pkgctl-repo.1.asciidoc
index 630afd8..713b474 100644
--- a/doc/man/pkgctl-repo.1.asciidoc
+++ b/doc/man/pkgctl-repo.1.asciidoc
@@ -41,6 +41,9 @@ pkgctl repo configure::
 pkgctl repo create::
 	Create a new GitLab package repository
 
+pkgctl repo switch::
+	Switch a package repository to a specified version
+
 pkgctl repo web::
 	Open the packaging repository's website
 
@@ -50,6 +53,7 @@ See Also
 linkman:pkgctl-repo-clone[1]
 linkman:pkgctl-repo-configure[1]
 linkman:pkgctl-repo-create[1]
+linkman:pkgctl-repo-switch[1]
 linkman:pkgctl-repo-web[1]
 
 include::include/footer.asciidoc[]
diff --git a/src/lib/repo.sh b/src/lib/repo.sh
index 6b3817a..9f545e9 100644
--- a/src/lib/repo.sh
+++ b/src/lib/repo.sh
@@ -30,6 +30,7 @@ pkgctl_repo_usage() {
 		    clone          Clone a package repository
 		    configure      Configure a clone according to distro specs
 		    create         Create a new GitLab package repository
+		    switch         Switch a package repository to a specified version
 		    web            Open the packaging repository's website
 
 		OPTIONS
@@ -40,6 +41,7 @@ pkgctl_repo_usage() {
 		    $ ${COMMAND} clone --maintainer mynickname
 		    $ ${COMMAND} configure *
 		    $ ${COMMAND} create libfoo
+		    $ ${COMMAND} switch 2:1.19.5-1 libfoo
 		    $ ${COMMAND} web linux
 _EOF_
 }
@@ -81,6 +83,14 @@ pkgctl_repo() {
 				pkgctl_repo_create "$@"
 				exit 0
 				;;
+			switch)
+				_DEVTOOLS_COMMAND+=" $1"
+				shift
+				# shellcheck source=src/lib/repo/switch.sh
+				source "${_DEVTOOLS_LIBRARY_DIR}"/lib/repo/switch.sh
+				pkgctl_repo_switch "$@"
+				exit 0
+				;;
 			web)
 				_DEVTOOLS_COMMAND+=" $1"
 				shift
diff --git a/src/lib/repo/switch.sh b/src/lib/repo/switch.sh
new file mode 100644
index 0000000..f411ac2
--- /dev/null
+++ b/src/lib/repo/switch.sh
@@ -0,0 +1,119 @@
+#!/bin/bash
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+[[ -z ${DEVTOOLS_INCLUDE_REPO_SWITCH_SH:-} ]] || return 0
+DEVTOOLS_INCLUDE_REPO_SWITCH_SH=1
+
+_DEVTOOLS_LIBRARY_DIR=${_DEVTOOLS_LIBRARY_DIR:-@pkgdatadir@}
+# shellcheck source=src/lib/common.sh
+source "${_DEVTOOLS_LIBRARY_DIR}"/lib/common.sh
+
+source /usr/share/makepkg/util/message.sh
+
+set -e
+
+
+pkgctl_repo_switch_usage() {
+	local -r COMMAND=${_DEVTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
+	cat <<- _EOF_
+		Usage: ${COMMAND} [OPTIONS] [VERSION] [PKGBASE]...
+
+		Switch a package source repository to a specified version, tag or
+		branch. The working tree and the index are updated to match the
+		specified ref.
+
+		If a version identifier is specified in the pacman version format, that
+		identifier is automatically translated to the Git tag name accordingly.
+
+		The current working directory is used if no PKGBASE is specified.
+
+		OPTIONS
+		    --discard-changes   Discard changes if index or working tree is dirty
+		    -f, --force         An alias for --discard-changes
+		    -h, --help          Show this help text
+
+		EXAMPLES
+		    $ ${COMMAND} 1.14.6-1 gopass gopass-jsonapi
+		    $ ${COMMAND} --force 2:1.19.5-1
+		    $ ${COMMAND} main
+_EOF_
+}
+
+pkgctl_repo_switch() {
+	if (( $# < 1 )); then
+		pkgctl_repo_switch_usage
+		exit 0
+	fi
+
+	# options
+	local VERSION
+	local GIT_REF
+	local GIT_CHECKOUT_OPTIONS=()
+	local paths path realpath pkgbase
+
+	while (( $# )); do
+		case $1 in
+			-h|--help)
+				pkgctl_repo_switch_usage
+				exit 0
+				;;
+			-f|--force|--discard-changes)
+				GIT_CHECKOUT_OPTIONS+=("--force")
+				shift
+				;;
+			--)
+				shift
+				break
+				;;
+			-*)
+				# - is special to switch back to previous version
+				if [[ $1 != - ]]; then
+					die "invalid argument: %s" "$1"
+				fi
+				;;&
+			*)
+				if [[ -n ${VERSION} ]]; then
+					break
+				fi
+				VERSION=$1
+				shift
+				;;
+		esac
+	done
+
+	if [[ -z ${VERSION} ]]; then
+		error "missing positional argument 'VERSION'"
+		pkgctl_repo_switch_usage
+		exit 1
+	fi
+
+	GIT_REF="$(get_tag_from_pkgver "${VERSION}")"
+	paths=("$@")
+
+	# check if invoked without any path from within a packaging repo
+	if (( ${#paths[@]} == 0 )); then
+		if [[ -f PKGBUILD ]]; then
+			paths=(".")
+		else
+			die "Not a package repository: $(realpath -- .)"
+		fi
+	fi
+
+	for path in "${paths[@]}"; do
+		if ! realpath=$(realpath -e -- "${path}"); then
+			die "No such directory: ${path}"
+		fi
+		pkgbase=$(basename "${realpath}")
+
+		if [[ ! -d "${path}/.git" ]]; then
+			error "Not a Git repository: ${path}"
+			continue
+		fi
+
+		if ! git -C "${path}" checkout "${GIT_CHECKOUT_OPTIONS[@]}" "${GIT_REF}"; then
+			die "Failed to switch ${pkgbase} to version ${VERSION}"
+		fi
+		msg "Successfully switched ${pkgbase} to version ${VERSION}"
+	done
+}
-- 
cgit v1.2.3-70-g09d2


From 1da97a8b362addc1cf8b936d918bddfa92192aa6 Mon Sep 17 00:00:00 2001
From: Caleb Maclennan <caleb@alerque.com>
Date: Thu, 18 May 2023 09:57:50 +0300
Subject: doc: Fixup formatting issues in asciidoc man pages

---
 doc/man/diffpkg.1.asciidoc            | 2 +-
 doc/man/makerepropkg.1.asciidoc       | 2 +-
 doc/man/mkarchroot.1.asciidoc         | 2 +-
 doc/man/pkgctl-repo-clone.1.asciidoc  | 2 +-
 doc/man/pkgctl-repo-create.1.asciidoc | 2 +-
 doc/man/pkgctl-repo.1.asciidoc        | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

(limited to 'doc/man/pkgctl-repo.1.asciidoc')

diff --git a/doc/man/diffpkg.1.asciidoc b/doc/man/diffpkg.1.asciidoc
index 2f7c115..35b2ded 100644
--- a/doc/man/diffpkg.1.asciidoc
+++ b/doc/man/diffpkg.1.asciidoc
@@ -1,5 +1,5 @@
 diffpkg(1)
-===========
+==========
 
 Name
 ----
diff --git a/doc/man/makerepropkg.1.asciidoc b/doc/man/makerepropkg.1.asciidoc
index 4e694b3..6044d7c 100644
--- a/doc/man/makerepropkg.1.asciidoc
+++ b/doc/man/makerepropkg.1.asciidoc
@@ -1,5 +1,5 @@
 makerepropkg(1)
-================
+===============
 
 Name
 ----
diff --git a/doc/man/mkarchroot.1.asciidoc b/doc/man/mkarchroot.1.asciidoc
index 7930c4c..a435852 100644
--- a/doc/man/mkarchroot.1.asciidoc
+++ b/doc/man/mkarchroot.1.asciidoc
@@ -1,5 +1,5 @@
 mkarchroot(1)
-==============
+=============
 
 Name
 ----
diff --git a/doc/man/pkgctl-repo-clone.1.asciidoc b/doc/man/pkgctl-repo-clone.1.asciidoc
index 8f3aef7..487ec35 100644
--- a/doc/man/pkgctl-repo-clone.1.asciidoc
+++ b/doc/man/pkgctl-repo-clone.1.asciidoc
@@ -1,5 +1,5 @@
 pkgctl-repo-clone(1)
-======================
+====================
 
 Name
 ----
diff --git a/doc/man/pkgctl-repo-create.1.asciidoc b/doc/man/pkgctl-repo-create.1.asciidoc
index b9d980b..7c58776 100644
--- a/doc/man/pkgctl-repo-create.1.asciidoc
+++ b/doc/man/pkgctl-repo-create.1.asciidoc
@@ -1,5 +1,5 @@
 pkgctl-repo-create(1)
-======================
+=====================
 
 Name
 ----
diff --git a/doc/man/pkgctl-repo.1.asciidoc b/doc/man/pkgctl-repo.1.asciidoc
index 713b474..57be170 100644
--- a/doc/man/pkgctl-repo.1.asciidoc
+++ b/doc/man/pkgctl-repo.1.asciidoc
@@ -1,5 +1,5 @@
 pkgctl-repo(1)
-================
+==============
 
 Name
 ----
-- 
cgit v1.2.3-70-g09d2

