Skip to content

Releases: paolostivanin/FastFileCheck

v1.0.0-beta3

03 Oct 07:04
9c12e2d

Choose a tag to compare

v1.0.0-beta3 Pre-release
Pre-release

⚠️ This is an unstable, beta, pre-release version meant only for debugging. Do not use it. ⚠️

Changes since beta2:

  • Add overflow checks and return value validations:
    • the get_free_memory function was modified to prevent division by zero and multiplication overflow
    • the g_setenv call's return value is now checked and logged if failed
  • Introduce GMutex in SummaryData to protect shared state
  • Add summary_increment_processed() and summary_get_processed() with atomic operations for thread-safe progress tracking
  • Replace direct increments of total_files_processed with new API
  • Ensure g_mutex_init and g_mutex_clear are called during lifecycle
  • Fix missing cleanup in load_config() by freeing key_file and config_data on error paths
  • Lower log level for chunked file reading from INFO to DEBUG

sha256: 34f3072f6f141838c9c483de029c65787d1ceb6f0c7dd6146b8cd900349914b0

1.0.0-beta2

03 Oct 06:01
5d1ff08

Choose a tag to compare

1.0.0-beta2 Pre-release
Pre-release

⚠️ This is an unstable, beta, pre-release version meant only for debugging. Do not use it. ⚠️

Changes since beta1:

  • Add LMDB performance/durability toggles to configuration:
    • db_nosync, db_nometasync, db_mapasync, db_writemap (default: false)
  • Parse new flags from [database] in config file (config.c)
  • Apply corresponding flags when opening LMDB env (database.c)
  • Document options and usage:
    • Update example.conf with new flags and guidance
    • Add README section: “HDD performance tuning (LMDB flags and recipes)” with explanations, recipes, and safety notes

Notes:

  • All flags default to false for maximum safety; behavior is unchanged unless explicitly enabled.
  • Using these flags can risk data loss on sudden power loss/crash; see README for details.

sha256: 6e23ac44263a3039f8cd8b0cae092785afbc2d7c05766bedc91cff69e46ca84c

1.0.0-beta1

01 Oct 06:56
fda6847

Choose a tag to compare

1.0.0-beta1 Pre-release
Pre-release

⚠️ This is an unstable, beta, pre-release version meant only for debugging. Do not use it. ⚠️

Changes since alpha4:

  • Added exponential backoff (1–10ms) in flush_queue_buffer() to reduce CPU usage
    when queue is full, with reset after successful push.
  • Fixed LMDB key size calculation in process_file.c to use byte length (strlen)
    instead of UTF-8 character count.
  • Ensured get_max_queue_size() always returns at least 1 to prevent deadlocks
    on very low RAM systems.
  • Refactored scan_dir() to simplify skip logic and improve readability.
  • Introduce --verbose/-V CLI option to enable detailed logs and live progress updates
  • Echo INFO/DEBUG/MESSAGE logs to stdout when verbose is enabled
  • Add periodic progress reporter thread
  • Show start/end timestamps and duration
  • Improve help text formatting

sha256: 48e76f722f5f05be673d73edac0e8befcbcfdcc4065010e63829df6584c80550

1.0.0-alpha4

27 Nov 13:30
3d6e2ff

Choose a tag to compare

1.0.0-alpha4 Pre-release
Pre-release

⚠️ This is an unstable, alpha, pre-release version meant only for debugging. Do not use it. ⚠️

Changes since alpha3:

  • Improve logging and file handling
    • Add proper handling of NULL values in queue operations
    • Fix incorrect LMDB transaction flags in check mode
    • Add missing log levels (CRITICAL, MESSAGE) to log handler
    • Improve error handling and memory management in config loading
    • Add total processed files in all cases
  • Handle missing files
    • report files that are in the database but not in the filesystem
    • report files that are in the filesystem but not in the database

sha256: dc8c9e02ec3699c3eba30b3e3045dce46adbb36fab8679880107bf7141adaacd

1.0.0-alpha3

26 Nov 08:46
1bfbf51

Choose a tag to compare

1.0.0-alpha3 Pre-release
Pre-release

⚠️ This is an unstable, alpha, pre-release version meant only for debugging. Do not use it. ⚠️

Changes since alpha2:

Major Improvements

  • Added comprehensive change tracking and summary reporting
    • New summary system shows detailed statistics of file changes
    • Reports hash mismatches, inode changes, link count changes, and block count changes
    • Provides a breakdown of affected files and specific changes
  • Enhanced logging system
    • Implemented thread-safe logging with mutex protection
    • Added log file caching for better performance
    • Improved log message formatting and consistency
    • Added proper cleanup of logging resources

Stability & Error Handling

  • Improved memory management
    • Replaced malloc calls with g_try_malloc0_n and g_new0 with g_try_new0
    • Added proper memory allocation checks throughout the code
    • Fixed potential memory leaks in database and configuration handling
  • Better directory handling
    • Improved directory path validation
    • More robust directory creation and permission checking
    • Better error messages for directory-related issues
  • Enhanced database operations
    • Added proper transaction handling
    • Improved error reporting for database operations
    • Fixed potential resource leaks in database initialization
    • Implemented proper cleanup procedures for all components

sha256: 18dd0c88c91680e1a699881ae88589af41216f96a5b781ef260828813218c8b6

1.0.0-alpha2

25 Nov 10:47
bd26507

Choose a tag to compare

1.0.0-alpha2 Pre-release
Pre-release

⚠️ This is an unstable, alpha, pre-release version meant only for debugging. Do not use it. ⚠️

Changes since alpha1:

  • implement logging to file
  • implement directory scanning from config instead of CLI
  • implement exclusion of files and directories from scanning
  • Code optimization and fixes

sha256: 0b49882571f8e5b3156a79127a09911a2bdf21eb54586737e62b21215a189a4c

1.0.0-alpha1 - HackWeek24

22 Nov 13:08
5b521a9

Choose a tag to compare

Pre-release

1.0.0-alpha1

This first big release has been possible thanks to the Hack Week 24 😄

⚠️ This is an unstable, alpha, pre-release version meant only for debugging. Do not use it. ⚠️

Features:

  • multi threaded execution via a thread pool and async queue
  • given a directory, add | check | update files info (hash, inode, link count, block count)
  • full config file available (not all options used, see below) and documented

In development for alpha2:

  • implement logging to file
  • implement directory scanning from config instead of CLI
  • implement exclusion of files and directories from scanning

sha256: ab8027151219d7feec0993565768eedc5d19d8b543ebc5ed0b875def65369c56