# engram
A fast and atomic version control system for portable file backups
## Usage
Initialize a repository with data:
`$ engram init ~/repo ~/data`
Update a repository with new data:
`$ engram update ~/repo ~/data 3days`
Pull historical repository data:
`$ engram pull ~/repo ~/out 2024-11-28T12:00:00`
Revert updates to a repository:
`$ engram revert ~/repo 2024-11-28T12:00:00`
> :information: See `engram --help` for more detailed information.
## Current Limitations
- duplicate / copied files have data re-added
- renamed directories can create big index files
- moved files that are modified in same patch are considered new instead of delta
- cannot process files bigger than available system memory
- will not preserve file permissions
- data integrity is not checked