Backuper QT
desktop and batch tool for safe backup of the repository (folder/zip). .gitignore support excludes, logs.
What the project solves
desktop and batch tool for safe backup of the repository (folder/zip). .gitignore support excludes, logs.
Typical use
- DEVELOPMENT - LOCATION BEFORE RISK REFACTORING
How the application works and what it is for
Application overview
Backuper QT is a specialized user-friendly tool for creating dated backups of whole folders and Git repositories. Application solves typical problem of system developers and administrators - the need to quickly and safely back up the project before critical change without filling the backup disk thanks to built-in intelligent rotation of old copies.
Primary purposes
- Snaphotting Git Repositors and Projects with Automatic Backup History Cleaning
- Selective advance with advanced filtering (exclusion classes, categorization)
- Asynchronous operation without blocking UI (background task)
- Optional ZIP compression with adjustable level (0-9)
- Automatic rotation - FIFO erasing the oldest backup, saving N last
Main advantages
- Data security: Backups are atomic, with the preservation of file metadata (times, permissions)
- Site effectiveness: ZIP64 compression for files > 4 GB, optional archiving
- User friendliness: Intuitive graphical interface with drag & drop, or batch mode for scripts
- Flexibility: Complex exclusive engine read directly from .gitignore
Application function
Category 1: Backup creation
- Backup of the entire folder to the timestamp directory
- Optional compression to ZIP archive (0-9 level)
- Automatic naming:
- Progress bar with visualization of copying process
- Repo version detection (from APP _ VERSION in code)
- Dry-run mode (simulation without physical copying)
Category 3: Filtering (Exclude Engine)
- Automatic reading .gitignor from the root of the repository
- Section pattern categorisation (Headers as "# Logs," "# Python")
- Per- category switch (Logs, Python cache, Node deps, etc.)
- Custom regex filters and wild patterns
- Interactive preview that will be backed up / discarded
- ExcludeDialog for easy management of the patterns
- Safety default behavior: .git is always ignored
Category 4: Backup rotation
- Automatic lubrication of old backups (FIFO, keep _ count)
- Configurable number of saved backups (default: 10)
- Manual administration of existing backups (delete, restore, info)
- History Dialog for displaying basic backup information
- Listing the size of individual backups in history
Category 5: Statistics & Monitoring
- Number of backup files with split (copied vs skipped)
- Total size of backup with human readable format (KB / MB / GB)
- Duration of operation in HH: MM: SS format
- Logo of all operations (global + perrun)
- Optional HTML log with color highlighting (OK / Info / Warning / Error)
Category 6: Settings & Configuration
- Persistent configuration (backuper _ state.json)
- Choice of compression algorithm (ZIP with 0-9 level)
- Compression level setting (0 = Store, 9 = Ultra)
- Theme selection (dark / bright)
- Language Choice (CZ / EN)
- Window _ geometer positions and size
- SettingsDialogue for intuitive management of all elections
- Auto-backup flag (optional start on start)
Category 7: Localization & AI
- CZ / EN localization (LANG dict with 15 + keys)
- Dark / light theme support (attribute datatheme)
- Transition effect when changing the theme
- Menu (File, Help) with keyboard shortcuts (Ctrl + N, Ctrl + H, etc.)
- System notification (progress, success, error)
- MainWindow with intuitive layout
Category 8: Advanced Features
- Asynchronous Operations (backup runs in the background)
- batch mode parameters (--source, --target, --compress, --audit-docs)
- Generating the trigger .bat scripts in snapshot (conda activation)
- Versioning support (detection and pump APP _ VERSION in file)
- Atomic ZIP (temporary component → compression → temperature deletion)
Workflow backup (8 steps)
Total process from user start to finished snapshot:
Step 1: Preparation
The user calls out "Backup" (button / menu / batch mode). The application validates the source and destination path (existence, accessibility), reads the configuration file and parsages .gitignore.
Step 2: Scanning Files
Recursive browsing through the directory tree (os.walk). The patterns application (gitignore + custom), calculates the total resource size and generates a list of files to backup.
Step 3: Generating the name of the backup
Format: . Example: . Safe name without special characters.
Step 4: Copy Files
Create target folder (snapshot _ path). Loop through all files: creating a directory tree, with metadata preservation, progress bar update. Statistics: copied / skippered.
Step 5: Compression (optional)
If : s compression _ level, atomic ZIP (tempfolder → archive → delete tempp), ZIP64 for files > 4GB. The backup is an alternative as a folder.
Step 6: Rotation of old backups
List of all advance payments in target _ path (sorted by date). If number > keep _ count: delete the oldest up to keep _ count (FIFO). Log the delete information. Generation index.html.
Step 7: Logging & Reporting
Global Logo: (appendix). Per- run log: (per day). Optional HTML log: (colour).
Step 8: Completion
Display statistics (copied, skippered, duration, size). System notification (success / error). Update of UI (progress = 100%, active buttons). Option to open folder, display log, new backup.
graphical interface and user interface
Main window (ASCII diagram)
Menu
| Menu | Item | Key | Description |
|---|---|---|---|
| File | New advance | Ctrl + N | Launch new backup |
| Open History | Ctrl + H | Displays History Dialog | |
| Settings | Ctrl +, | Opens SettingsDialog | |
| End | Ctrl + Q | Ends application | |
| Help | About | Displays version and author | |
| Help | F1 | Opens documentation |
Interactive elements
- QLineEdit: Source folder, Target folder - with Browse button
- QCheckBox: Compress to ZIP, Use exclusion classes, Auto-backup
- QProgressBar: Linear progress indicator (0- 100%)
- QPushButton: Backup, Cancel, History, Settings
- Status bar: Current operations, last advance, duration
Practical scenarios and examples
Scenario 1: Simple deposit before refund
Situation: You're working on a feature branch and you want to create a safety backup before a risk-abort.
- In graphical interface, select the source folder (your Git repo)
- Select the target folder (e.g. )
- Check "Compress to ZIP" (for site saving)
- Click "Backup"
- Wait for completion (progress bar)
- Now you can safely perform the rebase - in case of a problem, you will return from the backup
Scenario 2: Automatic rotation with filtering
Situation: You want to create a daily snapshot project, but you don't want the disk to fill with old backup.
- Open SettingsDialog and set
- Set (default, balances compression. ratio and time)
- In ExcludeDialog keep standard patterns (.git, _ _ pycache _ _, node _ modules)
- Run backup (whether manually or triggered cron / scheduler)
- The application automatically deletes the backup older than the last 5 - the disk will not be filled!
Scenario 3: Customs Automation in Powershell
Situation: You want to create a night backup with Windows Task Scheduler.
Then you create a task in Task Scheduler that will trigger this .bat every night at 3: 00 AM.
Scenario 4: Restoration from older backup
Situation: Something broke you up and you want to go back to the opening story this week.
- Click on "History" in the main window
- In History Dialog, you see a list of all the backup dates
- Find the backup from the requested day and click on it
- Click "Restore" (Restore)
- The application unwraps the ZIP and copies the files back to the original path
Attention: Backup includes snapshot from a certain time - newer files will be overwritten!
Scenario 5: Archiving with own tag
Situation: At the end of the sprint you want to file a project with the "release-v1.5" sign.
The name of the backup with tag is easily identifiable and archivable.
Troubleshooting and diagnostics
| Problem | Cause | Solution |
|---|---|---|
| "source path not found" | Source does not exist or is wrong | Check the graphical interface route, make sure the file exists. Try the Browse button. |
| "no commission" error | You are not the owner / you do not have the right to read | Run Backuper as administrator (Ctrl + Shift + Esc). Check the folder's permissions. |
| ZIP corruption (large files > 4GB) | Disk is full or RAM error, or missing ZIP64 extension | Clean the disk space, make sure you have enough RAM. ZIP64 is automatic for > 4GB. |
| Slow Copy (HDD) | Disc is slow (HDD instead of SSD), omitting cache folders | Upgrade to SSD (long term). Temporarily leave out node _ modules, .git etc. |
| Progress bar "lit" (large files) | Normal behavior - one set is really big (GB) | Wait patiently. Check Task Manager (CPU / Drive activity). Let it go. |
| Config file damaged (JSONDecodeError) | The application was killed during the writing of config or manual error editing | The application automatically creates a new config with default. The old one's baccouded as a .bak. |
FAQ (frequently asked questions)
Q: What compression to settle - ZIP or folder?
A: ZIP is ideal for long-term storage (in% of places). The folder is faster for the current work (without overhead decompression). Compromise: ZIP (default) is balanced.
Q: Can I back up to USB stick or network disk?
A: Yes! Click on "Browse..." and select the target drive. Warning: The network drives can be slow (100 MB / s vs 500 + MB / s SSD).
Q: What happens if backup falls out of the middle?
A: Scanning and copying are atomic. If blackouts: Scanning: a new attempt to get nice from the beginning (no harm). Copy: The deposit is renamed "_ INCOMPLETE." Rotation: let's not go through.
Q: Can I have more backup in parallel (2 applications at once)?
A: Technically, yes, but I DON'T RECOMMEND! Risk: Concurrent backups to backuper _ state.json (corrupt). Conflicts in rotation. Solutions: Run second instance with another config file.
Q: How do I test the exclusion classes without starting the backup?
A: Dry-run batch mode scheme: . He'll list the files without physical copying.
Q: Can I delete "Backup _ global _ log.txt"?
A: Yes, it's just a log. Normal logging continues. But I recommend keeping it for audit.
Q: How to return from the backup (rest)?
A: History Dialog → Click on the backup → "Restore." We'll restore to the original source. Alternative: copy the folder manually.
Q: Can I export backup to the cloud (OneDrive, Dropbox)?
A: Yes! Set to the cloud folder. Warning: Cloud sync + ZIP compression = high CPU load.
Q: What is the recommended backup frequency?
A: For critical projects: daily (night cron). For ordinary projects: 1 x per week. Before any risk change: manually.
Q: Can you back up network paths (UNC paths)?
A: Yes, but with restrictions. The network routes are slow. I recommend a local ZIP → cut to the net, instead of copying directly to the network.
