┌────────────────────┐ ┌───▶│ gix-pack │◀┐ │ └────────────────────┘ │ │ │ write output bundle │ │ │ │ │ │ │ │ │ │ │ │ │ ╔════════════════════╗ ╔════════════════════╗ ║ write-pack ║ ║ generate-pack ║ ╚════════════════════╝ ╚════════════════════╝ ▲ ▲ │ │ ╔════════════════════╗ │ │ ┌─────────────────────────────────────────────────────────▶║ Submodules ║ │ │ │ ╚════════════════════╝ │ │ │ ▲ ╔════════════════════╗ ╔════════════════════╗ │ │ ║ Fetch Changes ║◀──┬─▶║ Push Changes ║ │ │ ╚════════════════════╝ │ ╚════════════════════╝ │ │ ▲ │ ▲ │ ╔═══════════════════╗ ╔══════════════╗ │ │ │ │ │ ║gix-worktree-state ║ ║ gix-status ║ │ │ │ │ │ ╚═══════════════════╝ ╚══════════════╝ │ │ │ │ │ ▲ ▲ │ ┌────────────────────┐ ╔════════════════════╗ │ │ │ │ │ │ │ │ imara-diff │────────▶║ Blob-Diff ║ │ │ │ │ │ │ │ └────────────────────┘ ╚════════════════════╝ │ └─────────────┼────────────────────────┐ │ │ │ │ ▲ │ │ │ │ │ │ │ │ └──────────────┬────────────┘ │ │ └─────────────────────┬──────────────────┘ └───────────────────────────────────────────────────────────────┐ │ │ │ │ │ │ │ │ │ │ │ ╔════════════════════╗ ╔══════════════════╗ │ │ ╔═══════════════╗ │ │ │ │ ║ Describe ║ ║ Traverse Commits ║ │ │ ║ Tree-Diff ║ │ │ │ │ ╚════════════════════╝ ╚══════════════════╝ │ │ ╚═══════════════╝ │ │ │ │ ▲ ▲ │ │ ▲ │ │ ╔════════════════════╗ ╔════════════════╗ ╔═══════════════════╗ │ │ │ │ │ │ │ ║ gix-archive ║ ║ gix-submodule ║ ┌───────▶║ gix-worktree ║◀──────────┐ │ │ │ │ │ │ │ ╚════════════════════╝ ╚════════════════╝ │ ╚═══════════════════╝ │ │ │ │ │ │ │ │ ▲ ▲ │ ▲ │ ├──────────────────────┼──────────────┼────┴────────────┤ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╔════════════════════╗ │ ╔═══════════════════╗ │ │ │ │ │ │ │ ┌────────────────────┼──▶║ Repository ║───────┼────────▶║ Remote ║ │ │ │ │ │ │ │ │ │ ╚════════════════════╝ │ ╚═══════════════════╝ │ ╔═══════════════════════════╗ ╔════════════════╗ │ │ ╔═══════════════════╗ ╔═══════════════════╗ │ │ │ ▲ │ ▲ │ ║ gix-worktree-stream ║ ║ gix-pathspec ║◀─┐ │ ┌────────┴──────┐ ║ gix-index ║ ║ gix-revision ║──┘ │ │ │ ╔═══════════════════╗ │ │ ╚═══════════════════════════╝ ╚════════════════╝ │ │ │ │ ╚═══════════════════╝ ╚═══════════════════╝ │ └──────────────┼───────║ gix-traverse ║ │ │ ▲ ▲ │ │ │ │ │ │ ╚═══════════════════╝ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌───────────────────────┼───────────────────────┐ │ │ │ │ │ │ │ │ │ │ │ │ ├────────────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╔════════════════╗ │ │ ╔════════════╗ ╔════════════╗ │ │ │ │ │ │ │ └────────────────────────║ gix-attributes ║──┼─────┴─▶║ gix-filter ║ ║ gix-ignore ║ │ ╔═══════════════════╗ ╔════════════╗ ╔═════════════════════╗ │ │ ╔════════════════════╗ ╚════════════════╝ │ ╚════════════╝ ╚════════════╝ │ ║ Object Storage ║ ║ References ║ ║ Configuration ║ │ ╔═══════════════════╗ ║ gix-protocol ║ ▲ │ ▲ │ ║ (gix-odb) ║ ║ (gix-ref) ║ ║ (gix-config) ║ │ ║ gix-credentials ║ ╚════════════════════╝ │ │ │ │ ╚═══════════════════╝ ╚════════════╝ ╚═════════════════════╝ │ ╚═══════════════════╝ ▲ │ │ │ │ ▲ ▲ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╔═══════════════════╗ ╔════════════════════╗ │ │ │ │ └───────────────────────┤ ║ gix-refspec ║ ║ gix-transport ║ │ │ │ │ │ ╚═══════════════════╝ ╚════════════════════╝ ╔═════════════╗ │ │ ╔═══════════════════╗ │ │ ▲ ║ gix-glob ║───┴───────────────────────────────┘ ║ gix-mailmap ║ │ │ │ ╚═════════════╝ ╚═══════════════════╝ │ │ ┌──────────────────────┼────────────────────────┐ │ │ │ │ │ ╔═════════════════════════╗ ╔══════════════════════════════╗ │ │ │ ║ Repository Discovery ║ ║ Temp and Lockfiles ║ ╔═════════════════╗ ╔═══════════════════════╗ ╔════════════════════╗ ║ (gix-discover) ║ ║ (gix-tempfile & gix-lock) ║ ║ Ssh Transport ║ ║ Git Local Transport ║ ║ Https-Transport ║ ╚═════════════════════════╝ ╚══════════════════════════════╝ ╚═════════════════╝ ╚═══════════════════════╝ ╚════════════════════╝ ┌───────────────────────────────────────────────────────────┐ ┌──────────────────────────────────────────────────────────┐ ┌──────────────────────────────────────────────────────────┐ ┌─────────────────────────────────────────────────────────────────────────┐ │ │ │ │ │ │ │ │ │ _ _ _ │ │ _ _ _ _ │ │ _ _ _ │ │ _ __ _ │ │ (_) | | | | │ │ (_) | | (_) | | │ │ (_) | | | | │ │ (_) / _| | | │ │ __ _ ___ ________ _ __ __ _| |_| |__ │ │ __ _ ___ ________ ___ | |__ _ ___ ___| |_ │ │ __ _ ___ ________| |__ __ _ ___| |__ │ │ __ _ ___ ________| |_ ___ __ _| |_ _ _ _ __ ___ ___ │ │ / _` | \ \/ /______| '_ \ / _` | __| '_ \ │ │ / _` | \ \/ /______/ _ \| '_ \| |/ _ \/ __| __| │ │ / _` | \ \/ /______| '_ \ / _` / __| '_ \ │ │ / _` | \ \/ /______| _/ _ \/ _` | __| | | | '__/ _ \/ __| │ │ | (_| | |> < | |_) | (_| | |_| | | | │ │ | (_| | |> < | (_) | |_) | | __/ (__| |_ │ │ | (_| | |> < | | | | (_| \__ \ | | | │ │ | (_| | |> < | || __/ (_| | |_| |_| | | | __/\__ \ │ │ \__, |_/_/\_\ | .__/ \__,_|\__|_| |_| │ │ \__, |_/_/\_\ \___/|_.__/| |\___|\___|\__| │ │ \__, |_/_/\_\ |_| |_|\__,_|___/_| |_| │ │ \__, |_/_/\_\ |_| \___|\__,_|\__|\__,_|_| \___||___/ │ │ __/ | | | │ │ __/ | _/ | │ │ __/ | │ │ __/ | │ │ |___/ |_| │ │ |___/ |__/ │ │ |___/ │ │ |___/ │ │ │ │ │ │ │ │ │ └───────────────────────────────────────────────────────────┘ └──────────────────────────────────────────────────────────┘ └──────────────────────────────────────────────────────────┘ └─────────────────────────────────────────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────────────────────┐ │ │ │ _ _ _ _ _ │ │ (_) | | | | | (_) │ │ __ _ ___ ________ _ __ __ _ ___| | _____| |_| |_ _ __ ___ │ │ / _` | \ \/ /______| '_ \ / _` |/ __| |/ / _ \ __| | | '_ \ / _ \ │ │ | (_| | |> < | |_) | (_| | (__| < __/ |_| | | | | | __/ │ │ \__, |_/_/\_\ | .__/ \__,_|\___|_|\_\___|\__|_|_|_| |_|\___| │ │ __/ | | | │ │ |___/ |_| │ │ │ └─────────────────────────────────────────────────────────────────────────────┘