From ce39202740c24242dadb85c7c73fde4c115ea36e Mon Sep 17 00:00:00 2001 From: Dario <121768127+Dari0o@users.noreply.github.com> Date: Wed, 15 Jul 2026 21:05:50 +0200 Subject: [PATCH 1/3] Clarify PR submission process in CONTRIBUTING.md Updated the contribution guidelines to specify referencing issues in PRs. --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f0aa327..52d07e4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,7 +6,7 @@ Thank you for contributing! 1. Fork the repo 2. Create a new branch 3. Commit changes -4. Submit PR +4. Submit PR (reference issue if present) ## Rules - Follow clean code practices, use existing code as a guide From 355606d5b42eefa1557d307aa1e90c1598c4d29c Mon Sep 17 00:00:00 2001 From: Emani Date: Thu, 16 Jul 2026 01:06:32 +0530 Subject: [PATCH 2/3] added the requirements and readme file --- README.md | 104 +++++++++++++++++++++++++---------------------- requirements.txt | 3 ++ 2 files changed, 58 insertions(+), 49 deletions(-) create mode 100644 requirements.txt diff --git a/README.md b/README.md index 759360a..6086efc 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,5 @@ [![made-with-python](https://img.shields.io/badge/Made%20with-Python-1f425f.svg)](https://www.python.org/) [![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/) [![Python application](https://github.com/Dari0o/Backup-Manager/actions/workflows/python-app.yml/badge.svg)](https://github.com/Dari0o/Backup-Manager/actions/workflows/python-app.yml) ![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/Dari0o/Backup-Manager/total?color=green) ![GitHub contributors](https://img.shields.io/github/contributors/Dari0o/Backup-Manager) - # NAS Backup Manager A fast and multithreaded backup tool. @@ -11,18 +10,18 @@ The program intelligently compares files based on size and modification date, an ## Features -* Multithreaded file scanning -* Fast parallel copying -* Intelligent file comparison (size + modification time) -* Easy CLI usage for automation -* Optional Mirror Mode (synchronization) -* Fast ZIP compression with adjustable compression level using 7-Zip -* Optional AES-256 encrypted 7z archives -* GitHub update system -* Supports large directories -* Symlink-safe (`follow_symlinks=False`) -* Progress bars with `tqdm` -* Optimized for NAS / SMB shares +- Multithreaded file scanning +- Fast parallel copying +- Intelligent file comparison (size + modification time) +- Easy CLI usage for automation +- Optional Mirror Mode (synchronization) +- Fast ZIP compression with adjustable compression level using 7-Zip +- Optional AES-256 encrypted 7z archives +- GitHub update system +- Supports large directories +- Symlink-safe (`follow_symlinks=False`) +- Progress bars with `tqdm` +- Optimized for NAS / SMB shares --- @@ -30,12 +29,20 @@ The program intelligently compares files based on size and modification date, an ### Requirements -* Python 3.10+ -* Windows, Ubuntu, macOS -* Network share / NAS (optional) -* 7-Zip (required for compression and encrypted 7z archives) +- Python 3.10+ +- Windows, Ubuntu, macOS +- Network share / NAS (optional) +- 7-Zip (required for compression and encrypted 7z archives) + +- In requirements.txt you will find dependencies to install to run this project -### Required Packages +in your terminal run: + +```bash +python -m pip install -r requirements.txt +``` + +or just run: ```bash pip install tqdm prompt_toolkit requests @@ -70,16 +77,16 @@ python BackupManager.py --update ### Arguments -| Argument | Description | -|----------|-------------| -| `--source SOURCE` | Source directory path | -| `--target TARGET` | Target directory path | -| `-c, --compression` | Enable ZIP compression (0-9). `0` = no compression (fastest), `9` = maximum compression (slowest) | -| `--mirror` | Enable mirror mode (delete files in target that no longer exist in source) | -| `--sevenzip` | Create an encrypted 7z archive | -| `--password PASSWORD` | Password used for 7z encryption | -| `--update` | Check for and install updates | -| `-i` | Ignore the exclude list and copy all files | +| Argument | Description | +| --------------------- | ------------------------------------------------------------------------------------------------- | +| `--source SOURCE` | Source directory path | +| `--target TARGET` | Target directory path | +| `-c, --compression` | Enable ZIP compression (0-9). `0` = no compression (fastest), `9` = maximum compression (slowest) | +| `--mirror` | Enable mirror mode (delete files in target that no longer exist in source) | +| `--sevenzip` | Create an encrypted 7z archive | +| `--password PASSWORD` | Password used for 7z encryption | +| `--update` | Check for and install updates | +| `-i` | Ignore the exclude list and copy all files | --- @@ -101,10 +108,9 @@ Create compressed ZIP backups with adjustable compression levels using 7-Zip. ### Compression Levels -* `0` → No compression (fastest) -* `3` → Standard (balanced speed & compression) -* `9` → Maximum compression (slowest) - +- `0` → No compression (fastest) +- `3` → Standard (balanced speed & compression) +- `9` → Maximum compression (slowest) ### With explicit paths @@ -114,9 +120,9 @@ python BackupManager.py --source D:\Data --target D:\backup.zip -c 6 The compression process displays: -* File count -* Original size -* Compressed size +- File count +- Original size +- Compressed size --- @@ -130,11 +136,11 @@ python BackupManager.py --sevenzip --password MySecurePassword --source D:\Data Features: -* AES-256 encryption -* Password-protected archive -* Uses 7-Zip for maximum compatibility -* Supports large backups -* Fast multithreaded compression +- AES-256 encryption +- Password-protected archive +- Uses 7-Zip for maximum compatibility +- Supports large backups +- Fast multithreaded compression --- @@ -189,13 +195,13 @@ Documents/ The program scans: -* Source files -* Destination files +- Source files +- Destination files It then compares: -* File size -* Modification time (`mtime`) +- File size +- Modification time (`mtime`) Only changed files are copied. @@ -205,11 +211,11 @@ This makes the backup very fast, especially for large folders. ## Planned Features -* GUI version -* ~~Exclusion filters (`.git`, `node_modules`, etc.)~~ (v1.1.0) -* ~~Optional compression~~ (v1.1.2) -* ~~Optional encryption~~ (v1.1.2) -* Backup profiles +- GUI version +- ~~Exclusion filters (`.git`, `node_modules`, etc.)~~ (v1.1.0) +- ~~Optional compression~~ (v1.1.2) +- ~~Optional encryption~~ (v1.1.2) +- Backup profiles --- diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..824f3eb --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +tqdm +prompt_toolkit +requests \ No newline at end of file From d6ec8b976cde02aabceeb007147b57d3dbd9746b Mon Sep 17 00:00:00 2001 From: Emani Date: Thu, 16 Jul 2026 02:02:01 +0530 Subject: [PATCH 3/3] removed or alternate intallation rec --- README.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/README.md b/README.md index 6086efc..8de662b 100644 --- a/README.md +++ b/README.md @@ -42,12 +42,6 @@ in your terminal run: python -m pip install -r requirements.txt ``` -or just run: - -```bash -pip install tqdm prompt_toolkit requests -``` - --- ## Usage