• About Us
  • Blog
  • Basket
  • Account
  • Sign In


Published on Monday, July 3, 2017

51Degrees Github Repository Housekeeping – Important Update

Reducing repository size to improve performance

Historically, the Lite (free) versions of the 51Degrees data files have always been included in our open source Git repositories. As we update the Lite data file each month, this has, over time, led to our Git repositories becoming much larger than necessary, resulting in a poor experience for 51Degrees and third party developers alike.

Starting from 4th July 2017, 51Degrees will be switching to using Git LFS to store our data files. This removes them from the repository and replaces them with a placeholder text file. As long as the cloning system has Git LFS installed the data file will be seamlessly downloaded without any additional work on the developer's part.

In order to realise the performance improvements from the reduced repository size, we also needed to remove all instances of these data files from the history of the repository. After exploring a few alternatives, we settled on using the Git 'filter-branch' command. This allows us to remove all versions of the data files that have ever been committed to the repository.

In the end, this reduced the size of the repositories as follows:

  • C - 548 MB to 1.6 MB
  • C# - 1.08 GB to 92 MB
  • Java - 1.33 GB to 28MB

(The cleaned C# and Java repositories are larger mainly due to some image files that are used for testing the image optimisation feature.)

Please be aware that these changes to the repository history mean that if you have existing clones of the 51Degrees device detection source code, those clones will now be incompatible with the new slimmed down repositories. If you have a clone with no changes, you can simply delete your local repository and re-clone the new one. If you have changes that you wish to keep whilst continuing to merge in the latest 51Degrees updates then you will need to create a new local repository, manually copy the changes to the new repository (using a folder & file comparison tool) and then delete the old repository.

Note: for those using the Trie detection method - We are now distributing the Trie files separately to GitHub and other repositories due to their large file size. Both the source code and Lite Trie data files are available in the forked public repository available to clone from https://git.51degrees.com/Device-Detection.git. The Premium and Enterprise Trie data files can be downloaded with a license key from https://git.51degrees.com/Trie/. If you have any questions please contact us.

Comments (0)
Chris Rudwick

Chris Rudwick

Other posts by Chris Rudwick
Contact author



.NET 2013 2014 4G 51Degrees 5G A.C.Roma A7 ABI Acer Affiliate Marketing Afilias Alcatel Amazon AMP Analysis Analytics Android Android 5.0 Lollipop Android Kitkat Android Lollipop Android Media Stick Apache API Apple Apple TV Archos Asha Asian Market ASP.NET Asus Australia Big Data Black Friday Blackberry Blink Browser C C# Case Study CeBIT CES Chrome Cloud CMS combinations Comparison Competition CoolPad COTW Cron CSS3 Data Data Blog Data File Data Model Daydream Denver Design Desire Eye Desktop Detection Developers Device Device Data Device Detection Device Intelligence Device Popularity Device property Device Types Device Use DeviceAtlas Display dmexco DoCoMo Doogee DotNetNuke Download Drupal Email EReader E-Reader Ericsson Evaluation Event Examples EXPLAY Rio Facebook feature Firefox Firefox OS Fly Foundation Framework France Galaxy S3 Galaxy S5 Galaxy Tab A Galaxy Tab A 8.0 Galaxy Tab A 9.7 Germany git repositories Global Google Google Daydream GSMA HAProxy Hardware Hisense HTC HTC ONE MAX HTC OS HTML5 HTTP HTTP Headers Huawei HUAWEI. UPDATE HUDL Huwaei IBC Icemobile Prime 4.0 IE IFA IIS Image Optimiser Image Optimizer India Infographic Ingeniux Internet usage iOS iOS 7 iOS 8 ipad iPhone iPhone 6 IsEmailBrowser IsWebApp Italy Japan Java Javascript Jolla Kentico Keynote Kindle Kindle Fire Kindle Fire HD Leagoo Lenovo LG Location Log File Analysis LTE Lumia m.dot macOS Map Memory Meta Data Mi 4S Micromax Microsoft Miia Style Mobile Mobile Analysis Mobile Analytics Mobile Devices Mobile Marketing Mixer Module Motorola MVC4 MWC MWC 2017 MWC16 MyPhone Native Native Apps NET New Release News News Letter Nexus Nexus 6 Nexus 9 NFC NGINX Nokia Nokia 3310 Non-Mobile NVIDIA Omate On7 OnePlus 5 Opera Opera Mini Operating System Optimisation OS OSX 10.10 OTA Panasonic Patent PC Pebble Performance phablet phone PHP Poland Presentation Press Release Price Band PRIV programmatic PS4 Publishers Python QMobile QR Codes Redirection Research Reseller Responsive Images Responsive web design RESS Review reviews RIM Ringmark RTB RWD Safari Samsung Scala ScientiaMobile Screen Screen resolution Screen Size SEO Server Server-side optimisation Set Box Set Top Box Sharepoint Shark 1 SHIFT phones Sitecore Sitecore version 9 SLUSH Smart TV Smartphone Smartphones Smartwatches Snapdragon Sony Sony Xperia Spain Swedish Beers Symbian Tablet Tablets Tesco Testing Tips Top 5 TOTW TV UDS UK Umbraco Update updates US User Agent UserAgent User-Agent Vendors Version 3 Video VoLTE VR Wearable Web Web Apps Web content management WebKit WebMatrix White Paper Widgets Widnows WiFi Wiko Wileyfox Windows Windows Phone WURFL Xbox XBox One Xiaomi Xperia Xperia z Yosemite Z10 ZenFon 2 ZOPO ZTE