You are here: Home > Publications > RIPE Labs > Denis Walker > "diff" Functionality in the RIPE Database

"diff" Functionality in the RIPE Database

Denis Walker — 11 Jul 2013
Users often like to see the difference between two versions of an object. Some objects can be long and complex. It is not easy to look at two text versions and see what changed. We are proposing to implement a 'diff' function for the RIPE Database.


The legacy RIPE Database software used to include a diff functionality. This could be selected by adding a keyword diff to an email subject line. It was not available through Syncupdates or via the API. A new diff function will be available in the next RIPE Database release.

Database updates

When an object gets modified in the RIPE Database, there will be two different versions of the object: the old and the new one. The acknowledgement message only confirms that the update was successful (or not). The notification messages on the other hand show the recipients what has changed by displaying the full text of the old and the new object. However, many objects, aut-num in particular, can be be very long and complex, which makes it difficult, if at all possible, for a human to recognise what changed. Many users had to resort to cut/paste the object texts into separate files and running comparison scripts on the two files.

Writing these two long object texts into the notification message was apparently not very helpful. So we propose to change the output of the notification message. The proposed output will first show a diff and then show the full text of the new object. In most cases the old version can be seen by using the recently introduced history query options --list-versions and --show-version #n . This works for all object types except person and role . The notification message for a modified object will look like this:


@@ -8,4 +8,5 @@
mnt-by:         RIPE-NCC-HM-MNT
-mnt-by:        LIR-MNT
+mnt-by:        lir-MNT
changed:        unread@ripe . net 20020101
+remarks:       just added
source:         RIPE


inetnum: -
netname:      RIPE-NET1
descr:        /24 assigned
country:      NL
admin-c:      TP1-TEST
tech-c:       TP1-TEST
status:       ASSIGNED PI
mnt-by:       RIPE-NCC-HM-MNT
mnt-by:       lir-MNT
changed:      unread@ripe . net 20020101
remarks:      just added
source:       RIPE

The old object can be seen in the history using the query options --list-versions and --show-version 1 -

This will be the default output for a notification when an object is modified. For creation and deletion of objects there will be no change to the current notification message.

Database history queries

Users can now also query for the history of objects. We propose to add a diff functionality to compare any two versions of an object with a new history query option --diff-versions #a:#b . The diff output will be in the same format as for update notifications.

 $ whois --diff-versions 2:3 -


% This is the RIPE Database query service.
% The objects are in RPSL format.
% The RIPE Database is subject to Terms and Conditions.
% See

% Difference between version 2 and 3 of object " -"

@@ -10,3 +10,3 @@
mnt-lower:      LIR-MNT
-remarks:        version 2
+remarks:        version 3
source:         TEST # Filtered

% This query was served by the RIPE Database Query Service version 0.1-ENDTOEND (UNDEFINED)

Note that this is the standard Unix diff functionality. If you ask for --diff-versions 2:3 you will get the differences for a change from version 2 to version 3. If you ask for --diff-versions 3:2 you will get the differences for a change from version 3 to version 2. This is the reverse change so '+' and '-' will be reversed:

 @@ -10,3 +10,3 @@
mnt-lower:      LIR-MNT
-remarks:        version 3
+remarks:        version 2
source:         TEST # Filtered



We propose to re-introduce a diff functionality in the RIPE Database which will make it easier to compare two versions of an object. This functionality will be implemented in the next software release.


Job Snijders says:
10 Jul, 2013 08:34 PM
excellent feature! I am looking forward to it.
Matthias Šubik says:
06 Apr, 2017 03:11 PM
Came here for searching exactly that,
I'm in the process of scripting a large cleanup operation, so this would ease the pain of that.
Add comment

You can add a comment by filling out the form below. Comments are moderated so they won't appear immediately. If you have a RIPE NCC Access account, we would like you to log in.