{"id":6607,"date":"2026-04-08T13:48:13","date_gmt":"2026-04-08T11:48:13","guid":{"rendered":"https:\/\/www.rawk.at\/?p=6607"},"modified":"2026-04-08T13:48:13","modified_gmt":"2026-04-08T11:48:13","slug":"diffdirs-recursive-directory-comparison","status":"publish","type":"post","link":"https:\/\/new.rawk.at\/?p=6607","title":{"rendered":"DiffDirs &#8211; Recursive Directory Comparison"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"6607\" class=\"elementor elementor-6607\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-section elementor-top-section elementor-element elementor-element-f360449 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f360449\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5992017\" data-id=\"5992017\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-acb6246 elementor-widget elementor-widget-text-editor\" data-id=\"acb6246\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Type:<\/strong> Software\u00a0 <br \/><strong>Status:<\/strong> V.1.0<\/p><p><strong>Tech Stack: <\/strong>Python, PyYAML, difflib, hashlib<\/p><p><strong>Problem Statement<\/strong><\/p><p>Many legacy projects, especially in government agencies and enterprises, do not use version control systems (Git). When code needs to be synchronized between development and production environments, a simple tool for comparing two directory structures is missing. Existing diff tools usually work at file level, not recursively, and offer no clear reports with statistics and filter options.<\/p><p><strong>Description<\/strong><\/p><p>A Python tool for recursive comparison of two project directories \u2014 designed for projects without Git. Detects new, deleted, and modified files with line-level diff, grouped by file types with statistics. Optionally generates colored terminal output and\/or an interactive HTML report in GitHub style with search function, collapsible diffs, and syntax highlighting. Configuration via YAML, supports multiple comparison profiles.<\/p><p><strong>Use Case<\/strong><\/p><p><em>Compare two versions of a project directory and see exactly what changed \u2014 when you don&#8217;t have Git.<\/em><\/p><p><strong>Link: <\/strong><a href=\"https:\/\/github.com\/rawk7000\/diff_dirs\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/rawk7000\/diff_dirs<\/a> (public repo)<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-056d4ad elementor-widget elementor-widget-gallery\" data-id=\"056d4ad\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;columns&quot;:2,&quot;lazyload&quot;:&quot;yes&quot;,&quot;gallery_layout&quot;:&quot;grid&quot;,&quot;columns_tablet&quot;:2,&quot;columns_mobile&quot;:1,&quot;gap&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]},&quot;gap_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]},&quot;gap_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]},&quot;link_to&quot;:&quot;file&quot;,&quot;aspect_ratio&quot;:&quot;3:2&quot;,&quot;overlay_background&quot;:&quot;yes&quot;,&quot;content_hover_animation&quot;:&quot;fade-in&quot;}\" data-widget_type=\"gallery.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-gallery__container\">\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Type: Software\u00a0 Status: V.1.0 Tech Stack: Python, PyYAML, difflib, hashlib Problem Statement Many legacy projects, especially in government agencies and enterprises, do not use version control systems (Git). When code needs to be synchronized between development and production environments, a simple tool for comparing two directory structures is missing. Existing diff tools usually work at [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-6607","post","type-post","status-publish","format-standard","hentry","category-projects"],"_links":{"self":[{"href":"https:\/\/new.rawk.at\/index.php?rest_route=\/wp\/v2\/posts\/6607","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/new.rawk.at\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/new.rawk.at\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/new.rawk.at\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/new.rawk.at\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6607"}],"version-history":[{"count":0,"href":"https:\/\/new.rawk.at\/index.php?rest_route=\/wp\/v2\/posts\/6607\/revisions"}],"wp:attachment":[{"href":"https:\/\/new.rawk.at\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6607"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/new.rawk.at\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6607"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/new.rawk.at\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6607"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}