PYTHON CLI · INSTANT LOCAL SNAPSHOTS

rastro

Salve o estado exato de uma pasta antes de fazer refatorações arriscadas e volte no tempo com um único comando.

Linguagem
Python 3
Hashing
Árvore SHA-256
Overhead
Zero Configuração
Segurança
Rollback Atômico de Emergência

TL;DR Executivo — Resumo da Engenharia

O rastro é uma ferramenta de linha de comando desenvolvida por Alex Santos para preencher um cenário comum: você quer testar uma mudança experimental ou refatoração rápida em um script ou pasta de projeto, mas não quer inicializar um repositório Git, criar branches temporárias ou poluir seu histórico. Com o comando simples `rastro snap "antes de mexer"`, o rastro gera um checkpoint diferencial de alta velocidade e permite restaurar o estado anterior instantaneamente com `rastro rollback`.

DIAGRAMA & WORKFLOW

Arquitetura de Fluxo do Sistema

Visão macro de como o projeto processa requisições, gerencia dados e entrega valor técnico com máxima eficiência.

Fluxo Lógico & Pipeline de Execução
+-----------------------+      +---------------------------+      +-----------------------+
|  Diretório de Trabalho| ===> | rastro snap "checkpoint"  | ===> | .rastro/ Repository   |
|  (Arquivos do Projeto)|      | (Hash SHA-256 Diferencial)|      | (Snapshots Compactados|
+-----------------------+      +---------------------------+      +-----------------------+
            ^                                                                 |
            |                  +---------------------------+                  |
            +================= | rastro rollback [ID]      | <================+
                               | (Restauração Atômica)     |
                               +---------------------------+
ENGENHARIA DETALHADA

Os Pilares Técnicos Fundamentais

Decisões de design, algoritmos e técnicas aplicadas para garantir confiabilidade, segurança e excelência operacional.

01

Snapshot Diferencial Baseado em Hash SHA-256

Armazenamento de deduplicação que poupa espaço em disco

O rastro gera um hash SHA-256 de cada arquivo na pasta. Se um arquivo não foi modificado entre o snapshot anterior e o novo, ele não é duplicado, mantendo o tamanho da pasta oculta `.rastro` mínimo mesmo em projetos com centenas de arquivos.

02

Restauração Atômica com Snapshot de Segurança

Garantia de que você nunca perde trabalho ao voltar versões

Ao executar `rastro rollback`, o utilitário primeiro cria um snapshot automático de emergência do estado atual antes de substituir os arquivos pelo checkpoint de destino. Se você se arrepender da restauração, pode desfazer o rollback imediatamente.

03

Filtro Nativo de Ignorados (.rastroignore)

Prevenção de cópias desnecessárias de pastas pesadas

Respeita automaticamente um arquivo `.rastroignore` na raiz do projeto (com sintaxe idêntica ao `.gitignore`), ignorando pastas massivas como `node_modules`, `__pycache__`, `.venv` e arquivos de log.

04

TUI Visual com Linha do Tempo e Inspeção de Diffs

Histórico de versões no terminal com carimbos de data legíveis

O comando `rastro log` desenha uma árvore cronológica dos pontos salvos, informando o número de arquivos modificados, adicionados e deletados, com suporte a visualização de diff no próprio terminal.

IMPLEMENTAÇÃO EM CÓDIGO

Código em Prática

Exemplo concreto de uso, configuração e integração técnica.

Terminal — Exemplo Prático do Fluxo de Trabalho do rastro BASH
# 1. Salvar o estado inicial do projeto
rastro snap "Ponto inicial antes do refactor da API"
# [rastro] Snapshot #1 criado com sucesso! (18 arquivos rastreados, 1.2MB)

# 2. Fazer alterações radicais no código...
# ... oops, algo quebrou terrivelmente e testes falharam!

# 3. Listar o histórico de pontos salvos
rastro log
# * [ID: 1] 2026-02-11 14:30:10 - Ponto inicial antes do refactor da API

# 4. Voltar no tempo com um comando
rastro rollback 1
# [rastro] Backup de emergência criado: #2
# [rastro] Restaurado com sucesso para o Snapshot #1!
DÚVIDAS & DECISÕES

Perguntas Frequentes & Respostas Técnicas

Esclarecimentos detalhados sobre funcionamento, licenças, compatibilidade e privacidade.

O rastro concorre com o Git?

Não. O rastro foi pensado como um complemento ágil para rascunhos, experimentos rápidos locais e pastas de scripts onde você quer salvar marcos sem criar commits de lixo no Git.

Onde os snapshots são guardados?

Os snapshots são salvos em uma pasta oculta chamada .rastro criada na raiz do diretório onde o comando for executado.

O rastro precisa de conexão com a internet?

Não. O rastro funciona 100% offline, sem nenhuma dependência externa além do interpretador Python.

Posso usar o rastro no Windows?

Sim, o rastro é totalmente multiplataforma e funciona perfeitamente em Windows (PowerShell/CMD), Linux e macOS.