Skip to main content

Repodiff: A savior for comparing repositories

Need to know whether the contents of two software repositories are the same or different, and if different, where? Check this out.
Image
Different shoes

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.

Topics:   Sysadmin appreciation  
Author’s photo

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

Try Red Hat Enterprise Linux

Download it at no charge from the Red Hat Developer program.