DEV Community

Mehran Zand
Mehran Zand

Posted on

I Built RepoFleet to Manage One Feature Across Multiple Git Repositories

When one feature touches multiple repositories, the Git workflow can quickly become repetitive.

You may need to:

  • Create the same branch in several repositories
  • Pull the latest changes in each project
  • Check the status of every repository
  • Remember which repositories belong to the same task
  • Move between directories repeatedly

A typical workflow might look like this:

cd api
git switch -c fix/123-auth

cd ../frontend
git switch -c fix/123-auth

cd ../worker
git switch -c fix/123-auth

I built RepoFleet to simplify this workflow.

What Is RepoFleet?

RepoFleet is an issue-centered CLI tool for managing Git workflows across multiple repositories.

Instead of managing each repository separately, you create one issue context:

rf issue create 123 --name auth --type fix

RepoFleet creates and manages the related branches across your repositories.

You can then check everything from one place:

rf issue status

One issue. Multiple repositories. One workflow.

The Problem

Imagine that one feature requires changes in three repositories:

api
frontend
worker

Without RepoFleet, you might need to run:

cd api
git fetch
git switch -c feature/123-auth

cd ../frontend
git fetch
git switch -c feature/123-auth

cd ../worker
git fetch
git switch -c feature/123-auth

Later, you need to repeat a similar process to check status, pull changes, or push branches.

This works, but it becomes inconvenient when you manage many tasks across multiple repositories.

Why I Built It

At work, our codebase was split into multiple repositories.

After the split, one task could require changes in several projects.

I repeatedly had to:

  • Create matching branches
  • Switch between project directories
  • Fetch updates
  • Check Git status in every repository
  • Remember which repositories belonged to each issue

I wanted a workflow centered around the issue, rather than individual repository directories.

That idea became RepoFleet.

_Example Workflow

_Create an issue context
rf issue create 123 --name authentication --type feature
Add repositories
rf issue repo add api
rf issue repo add frontend
rf issue repo add worker

Check all repository statuses
rf issue status
Sync repositories
rf issue sync
Navigate to a repository
rf issue goto

RepoFleet keeps related repositories connected to the same issue and provides one place to view their Git state.

Without RepoFleet
cd api
git status

cd ../frontend
git status

cd ../worker
git status

With RepoFleet
rf issue status

Instead of checking every repository manually, you get one combined view.

Main Features

RepoFleet currently supports:

Issue-centered multi-repository workflows
Consistent branch creation across repositories
A multi-repository status dashboard
Fetching and syncing repositories
Interactive repository navigation
GitHub pull request workflows
GitLab merge request workflows
Homebrew installation
Scoop installation
Snapshots for saving multi-repository issue state

Git worktree support is also part of the development plan.

Who Is RepoFleet For?

RepoFleet may be useful when:

  • A feature touches multiple microservices
  • Frontend and backend code live in separate repositories
  • A bug requires changes across several services
  • Your organization recently moved away from a monorepo
  • You frequently create matching branches in different projects
  • You manage several related libraries or applications

RepoFleet does not replace Git.

It provides a higher-level workflow around Git for tasks that span multiple repositories.

Installation
Homebrew
brew install mehranzand/tap/repofleet
Scoop
scoop bucket add mehranzand https://github.com/mehranzand/scoop-bucket
scoop install repofleet

Feedback Is Welcome

RepoFleet is still evolving, and I would appreciate feedback from developers who regularly work across multiple repositories.

I’m especially interested in hearing about:

  • How you currently manage multi-repository tasks
  • Problems you experience with matching branches
  • Features that would make RepoFleet more useful
  • How you use Git worktrees across multiple projects

You can find the project here:

šŸ‘‰ github.com/mehranzand/repofleet

If this workflow sounds familiar, I’d love to hear how you currently handle it.

Top comments (0)