git-loom 0.18.0

A Git CLI tool that weaves together multiple feature branches into integration branches
# Auto-absorbing Changes

You've been tweaking code across several files — fixing a typo in `src/auth.rs`, adjusting a layout in `templates/dashboard.html`. Each change was last touched by a different commit. Instead of manually folding each one, let *git-loom* figure it out:

```bash
git loom absorb
```

For each changed file, absorb splits the diff into hunks, blames each hunk's original lines to find the originating commit, and folds each hunk into the right place — even when a single file has changes belonging to different commits.

Run a **dry run** first to see what would happen:

```bash
$ git loom absorb -n  # or --dry-run
#   src/auth.rs -> d0 "add login form"
#   templates/dashboard.html -> e1 "add dashboard layout"
#   src/shared.rs [hunk 1/2] -> d0 "add login form"
#   src/shared.rs [hunk 2/2] -- skipped (pure addition)
# Dry run: would absorb 3 hunk(s) from 3 file(s) into 2 commit(s)
```

When a file has hunks going to different commits, each hunk is absorbed independently. Hunks that can't be attributed are left in the working tree.

> [!NOTE]
> Absorb works by blaming existing lines to find their originating commit. It handles modified and deleted lines well, but **newly added lines** (insertions that don't replace existing code) cannot be traced to a commit and will be skipped. Use `fold` for those.

You can also restrict absorption to specific files:

```bash
git loom absorb src/auth.rs
```

See also: [absorb reference](../commands/absorb.md)