Skip to content

feat: Git history preservation (full clone) #48

@Snider

Description

@Snider

Summary

Preserve complete Git history, not just latest state.

Use Case

When archiving repos, need full history for forensics and blame analysis.

Current Behaviour

borg collect github repo clones but may not preserve complete history.

Proposed Enhancement

# Full history (default)
borg collect github repo https://github.com/org/repo --full-history

# Shallow (faster, less storage)
borg collect github repo https://github.com/org/repo --depth 1

# Include all branches
borg collect github repo https://github.com/org/repo --all-branches

# Include all tags
borg collect github repo https://github.org/repo --all-tags

Data Preserved

  • All commits on all branches
  • All tags (annotated and lightweight)
  • Reflogs (optional)
  • Git LFS objects
  • Submodules (recursive)

Options

Flag Description
--full-history Complete git history (default)
--depth N Shallow clone
--all-branches All remote branches
--all-tags All tags
--lfs Include LFS objects
--submodules Recursive submodule clone

Acceptance Criteria

  • Full history by default
  • All branches option
  • All tags option
  • LFS support
  • Submodule handling

Metadata

Metadata

Assignees

No one assigned

    Labels

    julesFor Jules AI to work on

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions