Alternatives

The problem Dfetch tries to solve isn’t new. There are other tools doing the same. In making a proper choice, see the below alternatives.

There are many alternatives, each with slightly different approaches or focuses: some are designed to manage multiple repositories together, some are specialized in Vendoring code into your project, and others provide build-system or version-control-specific helpers.

Below is a list of notable tools along with their supported version control systems, platforms, and compatibility.

Name

Git

SVN

Windows

Linux

Language Agnostic

Build System Agnostic

Dfetch

✔

✔

✔

✔

✔

✔

Braid

✔

✘

✔

✔

✔

✔

CGet

✔

✘

✔

✔

✘ (C/C++)

✘ (CMake)

CMake ExternalProject

✔

✘

✔

✔

✘ (C/C++)

✘ (CMake)

Combo-layer

✔

✘

✔

✔

✘ (C/C++)

✘ (CMake)

CPM.cmake

✔

✘

✔

✔

✘ (C/C++)

✘ (CMake)

CPPAN

✔

✘

✔

✔

✘ (C/C++)

✔

degasolv

✔

✘

✔

✔

✔

✔

depman

✔

✘

✔

✔

✔

✔

depman bitrise

✔

✘

✘

✔

✔

✔

Garden

✔

✘

✘

✔

✔

✔

gil

✔

✘

✔

✔

✔

✔

Git submodules

✔

✘

✔

✔

✔

✔

Git subtree

✔

✘

✔

✔

✔

✔

Git X-modules

✔

✘

✔

✔

✔

✔

git-aggregator

✔

✘

✔

✔

✔

✔

Git-externals

✔

✘

✔

✔

✔

✔

git-toprepo

✔

✘

✔

✔

✔

✔

git-vendor

✔

✘

✔

✔

✔

✔

Giternal

✔

✘

✔

✔

✔

✔

Gitman

✔

✘

✔

✔

✔

✔

Gitslave

✔

✘

✘

✔

✔

✔

Google Repo

✔

✘

✔

✔

✔

✔

Grit

✔

✘

✔

✔

✔

✔

Hemlock

✔

✘

✔

✔

✔

✔

josh

✔

✘

✔

✔

✔

✔

Kitenet mr

✔

✔

?

✔

✔

✔

LsiGitCheckout

✔

✘

✔

✘

✔

✔

mdlr

✔

✘

Beta

✔

✔

✔

myrepos

✔

✘

✘

✔

✔

✔

multi_repo

✔

✘

✔

✔

✔

✔

OpenTitan-vendor.py

✔

✘

✘

✔

✔

✔

pasta

✔

✘

✔

✔

✔

✔

peru

✔

✘

✔

✔

✔

✔

Quack

✔

✘

✘

✔

✔

✔

Quark

✔

✔

✔

✔

✔

✔

SoftwareNetwork

✔

✘

✔

✔

✘ (C/C++)

✔

subpatch

✔

✘

✔

✔

✔

✔

SVN Externals

✘

✔

✔

✔

✔

✔

svn_xternals

✘

✔

✔

✔

✔

✔

tsrc

✔

✘

✔

✔

✔

✔

Vcpkg

✔

✘

✔

✔

✘ (C/C++)

✘

Vcsh

✔

✘

✘

✔

✔

✔

vdm

✔

✘

✔

✔

✔

✔

vendor-go

✔

✘

✔

✔

✔

✔

vendorpull

✔

✘

✘

✔

✔

✔

verde

✔

✘

✔

✔

✔

✔

vndr

✔

✘

✔

✔

✔

✔

West

✔

✘

✔

✔

✘ (C/C++)

✘

Note

the list is probably never complete or up-to-date. Anyone is welcome to create an issue.