Repodiff: A savior for comparing repositories

Just the other day, I was working on something that required me to look at two different builds and compare the packages that differ between them. One way to do so was to look at the build log or version table, but that would require writing extensive logic to parse and compare the packages and their versions.
After some further searching, I found this Repodiff man page. The command looks like this:
$ repodiff --old=old_repo_baseurl --new=new_repo_baseurl
So, I could run this command with two different repo URLs, as you see below, and it showed me the difference. (Note that these are made-up URLs in order to illustrate what happens.)
repodiff --old=http://cdn.redhat.com/builds/4.3/rhv-4.3.4-5/el7 --new=http://cdn.redhat.com/builds/4.3/rhv-4.3.4-7/el7 --archlist=x86_64
Loaded plugins: versionlock
setting up repos
setting up old repo http://cdn.redhat.com/builds/4.3/rhv-4.3.4-5/el7
Excluding 8 updates due to versionlock (use "yum versionlock status" to show them)
setting up new repo http://cdn.redhat.com/builds/4.3/rhv-4.3.4-7/el7
performing the diff
New package: ovirt-engine-4.3.4.3-0.1.el7
Management server for Open Virtualization
New package: ovirt-engine-backend-4.3.4.3-0.1.el7
Engine core of oVirt Engine
New package: ovirt-engine-dbscripts-4.3.4.3-0.1.el7
Database scripts for oVirt Engine
New package: ovirt-engine-restapi-4.3.4.3-0.1.el7
RESTful API for oVirt Engine
New package: ovirt-engine-tools-4.3.4.3-0.1.el7
oVirt Engine Tools
New package: ovirt-engine-tools-backup-4.3.4.3-0.1.el7
oVirt Engine Tools (engine-backup)
New package: ovirt-engine-webadmin-portal-4.3.4.3-0.1.el7
Web Admin Portal of oVirt Engine
New package: rhvm-4.3.4.3-0.1.el7
Red Hat Virtualization Manager
Updated Packages:
ovirt-engine-extensions-api-impl-4.3.4.3-0.1.el7
------------------------------------------------
* Wed Jun 05 2019 Anton Marchukov <amarchuk@redhat.com> - 4.3.4
- To view full list of bug fixes and enhancements, please see:
- https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.3/html-single/technical_notes/
ovirt-engine-extensions-api-impl-javadoc-4.3.4.3-0.1.el7
--------------------------------------------------------
* Wed Jun 05 2019 Anton Marchukov <amarchuk@redhat.com> - 4.3.4
- To view full list of bug fixes and enhancements, please see:
- https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.3/html-single/technical_notes/
ovirt-engine-health-check-bundler-4.3.4.3-0.1.el7
-------------------------------------------------
* Wed Jun 05 2019 Anton Marchukov <amarchuk@redhat.com> - 4.3.4
- To view full list of bug fixes and enhancements, please see:
- https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.3/html-single/technical_notes/
ovirt-engine-setup-4.3.4.3-0.1.el7
----------------------------------
* Wed Jun 05 2019 Anton Marchukov <amarchuk@redhat.com> - 4.3.4
- To view full list of bug fixes and enhancements, please see:
- https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.3/html-single/technical_notes/
ovirt-engine-setup-base-4.3.4.3-0.1.el7
---------------------------------------
* Wed Jun 05 2019 Anton Marchukov <amarchuk@redhat.com> - 4.3.4
- To view full list of bug fixes and enhancements, please see:
- https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.3/html-single/technical_notes/
ovirt-engine-setup-plugin-cinderlib-4.3.4.3-0.1.el7
---------------------------------------------------
* Wed Jun 05 2019 Anton Marchukov <amarchuk@redhat.com> - 4.3.4
- To view full list of bug fixes and enhancements, please see:
- https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.3/html-single/technical_notes/
ovirt-engine-setup-plugin-ovirt-engine-4.3.4.3-0.1.el7
------------------------------------------------------
* Wed Jun 05 2019 Anton Marchukov <amarchuk@redhat.com> - 4.3.4
- To view full list of bug fixes and enhancements, please see:
- https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.3/html-single/technical_notes/
ovirt-engine-setup-plugin-ovirt-engine-common-4.3.4.3-0.1.el7
-------------------------------------------------------------
* Wed Jun 05 2019 Anton Marchukov <amarchuk@redhat.com> - 4.3.4
- To view full list of bug fixes and enhancements, please see:
- https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.3/html-single/technical_notes/
ovirt-engine-setup-plugin-vmconsole-proxy-helper-4.3.4.3-0.1.el7
----------------------------------------------------------------
* Wed Jun 05 2019 Anton Marchukov <amarchuk@redhat.com> - 4.3.4
- To view full list of bug fixes and enhancements, please see:
- https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.3/html-single/technical_notes/
ovirt-engine-setup-plugin-websocket-proxy-4.3.4.3-0.1.el7
---------------------------------------------------------
* Wed Jun 05 2019 Anton Marchukov <amarchuk@redhat.com> - 4.3.4
- To view full list of bug fixes and enhancements, please see:
- https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.3/html-single/technical_notes/
ovirt-engine-vmconsole-proxy-helper-4.3.4.3-0.1.el7
---------------------------------------------------
* Wed Jun 05 2019 Anton Marchukov <amarchuk@redhat.com> - 4.3.4
- To view full list of bug fixes and enhancements, please see:
- https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.3/html-single/technical_notes/
ovirt-engine-websocket-proxy-4.3.4.3-0.1.el7
--------------------------------------------
* Wed Jun 05 2019 Anton Marchukov <amarchuk@redhat.com> - 4.3.4
- To view full list of bug fixes and enhancements, please see:
- https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.3/html-single/technical_notes/
python2-ovirt-engine-lib-4.3.4.3-0.1.el7
----------------------------------------
* Wed Jun 05 2019 Anton Marchukov <amarchuk@redhat.com> - 4.3.4
- To view full list of bug fixes and enhancements, please see:
- https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.3/html-single/technical_notes/
redhat-virtualization-host-image-update-4.3-20190610.0.el7_6
------------------------------------------------------------
rhvm-appliance-4.3-20190605.0.el7
---------------------------------
Summary:
Added Packages: 8
Removed Packages: 0
Modified Packages: 15
When I ran the command again with --old
and --new
both being the same, I got the following output:
Summary:
Added Packages: 0
Removed Packages: 0
Modified Packages: 0
This result told me that when I pass --new
URL and --old
URL to be the same, the output summary returns 0 for added/removed/modified, meaning I am already on the same version, and can skip the (re-)installation.
As you can see I quickly got the list as well as summaries of the packages that were added, removed, or modified. This tool definitely saved my day, as I didn’t want to manually parse the installed packages on the system.

Kedar Vijay Kulkarni
Kedar is a Senior Software Engineer at Red Hat working with Red Hat OpenShift Networking focusing on functionality, performance, and scaling of Software Defined Networking, primarily with Open Virtual Network Kubernetes (OVN-K8s) plugin. More about me