pkgctl-diff
Compare package configurations before and after updates
TLDR
Compare package files in tar content list different mode (default)
Compare package files in diffoscope different mode
Compare package files in .PKGINFO different mode
Compare package files in .BUILDINFO different mode
SYNOPSIS
pkgctl diff [options]
Common usage patterns:
pkgctl diff
pkgctl diff --git-diff
pkgctl diff --repo
pkgctl diff --version
pkgctl diff
PARAMETERS
--color[=when]
Enables or disables colored output. The when argument can be 'always', 'never', or 'auto'.
--diff-cmd command
Specifies an external command to use for generating the diff output instead of the default.
--git-diff
Forces pkgctl-diff to use git diff for comparing arbitrary file arguments, bypassing package-specific logic.
--no-color
Disables colored output, overriding any default color settings.
--plain
Outputs a plain diff, without additional context lines or special formatting.
--repo repository
Compares the package against the version found in the specified repository.
--version version
Compares the package against a specific version string, typically used for historical comparisons.
--pkgbuild
Explicitly compares the local PKGBUILD file with its upstream version. This is often the default behavior when only a package name is provided.
--config-file path
Specifies an alternative configuration file to use for pkgctl operations.
DESCRIPTION
pkgctl-diff is a subcommand of the pkgctl utility, a modern command-line interface tool designed for package management tasks in Arch Linux. While pkgctl offers a unified front-end for various operations like building, publishing, and testing packages, pkgctl-diff specifically focuses on showing differences.
It can compare a local PKGBUILD file with its upstream repository version, allowing package maintainers to quickly see changes. It can also be used to compare two specific files, leveraging git's diff capabilities. Furthermore, pkgctl-diff facilitates comparisons between different package versions or between a package as it exists in a repository versus a local build or installed state.
This command is invaluable for developers maintaining packages, as it helps in tracking upstream changes, verifying modifications, and ensuring consistency. For advanced users, it provides a powerful way to inspect proposed package updates or to debug issues by examining differences in package content or build instructions.
CAVEATS
pkgctl-diff is primarily designed for the Arch Linux ecosystem and relies on the pkgctl tool's infrastructure. Its functionality is heavily dependent on the availability of package metadata in configured repositories. While it can perform generic file diffs using --git-diff, its core strength lies in package-related comparisons. Network access is required for comparisons involving remote repositories.
PRIMARY USE CASE
pkgctl-diff is most commonly used by Arch Linux package maintainers and developers to monitor changes in upstream PKGBUILD files, compare source code versions, or verify the integrity of their local package builds against official repositories. It's a critical tool for maintaining the quality and security of packages within the Arch ecosystem.
GIT INTEGRATION
A significant aspect of pkgctl-diff's design is its deep integration with Git. Many of its comparison functionalities internally leverage git diff, providing rich, colored, and contextual diff output, which is familiar to developers accustomed to version control systems.
HISTORY
pkgctl, and by extension pkgctl-diff, emerged as part of the Arch Linux project's efforts to modernize and streamline its package management tooling. Developed by the Arch Linux team, it aims to provide a more consistent and user-friendly interface for various tasks that traditionally involved separate tools like pacman and makepkg. Its development gained momentum in the late 2010s and early 2020s, reflecting a desire for more integrated and efficient workflows, especially for package maintainers and developers.