Skip to content

JayWang0/ScalarGui

Repository files navigation

ScalarGui

A Windows desktop application for managing large Git repositories using Scalar and sparse-checkout. Built with WPF and .NET 8.

Why ScalarGui?

Working with monorepos or very large Git repositories can be painful β€” cloning takes forever, and you end up downloading files you don't need. Scalar and Git sparse-checkout solve this, but they're command-line tools with many flags to remember.

ScalarGui wraps these tools in a simple, guided UI so you can:

  • Clone huge repos efficiently via Scalar
  • Pick only the folders you need with a visual tree browser
  • Skip the CLI entirely

Features

πŸ”§ Prerequisites Check

On first launch, ScalarGui verifies that Git and Scalar are installed. If either is missing, it shows download links and won't let you proceed until everything is ready.

πŸ“₯ Scalar Clone

Clone repositories using scalar clone with a full set of options:

  • Branch selection β€” clone a specific branch
  • Single branch / No tags β€” minimize what gets downloaded
  • Full clone β€” opt out of partial clone if needed
  • No src/ β€” skip Scalar's default src/ directory wrapper
  • GVFS protocol β€” for Azure DevOps repos that support it
  • Duplicate detection β€” if the target directory already has a .git folder, ScalarGui warns you and offers to open the existing repo instead of cloning again

πŸ“‚ Sparse-Checkout Browser

After cloning, browse the repo's directory tree and select only the folders you want to work with:

  • Visual tree with expand/collapse
  • Add or remove folders from the sparse-checkout set
  • Real-time log output showing what Git is doing

πŸ’Ύ Remembers Your Inputs

ScalarGui persists your last-used:

  • Repository URL
  • Clone target directory
  • Last opened repo path

So you don't have to re-type everything when you reopen the app.

βš™ Settings

Configure custom paths for git and scalar executables if they're not on your system PATH.

Getting Started

Prerequisites

Tool Version Download
.NET 8 Runtime (Desktop) 8.0+ dotnet.microsoft.com
Git 2.25+ git-scm.com
Scalar Latest github.com/microsoft/scalar

Note: Git 2.25+ is required for sparse-checkout support. Scalar is bundled with recent versions of Git for Windows.

Build from Source

git clone [<repository-url>](https://github.com/JayWang0/ScalarGui.git)
cd ScalarGui
dotnet build ScalarGui.slnx or dotnet run -project .\ScalarGui.csproj

Run

dotnet run --project src/ScalarGui

Or open ScalarGui.slnx in Visual Studio 2022+ and press F5.

Project Structure

ScalarGui/
β”œβ”€β”€ ScalarGui.slnx              # Solution file
└── src/ScalarGui/
    β”œβ”€β”€ Models/                  # Data models (GitConfig, AppSettings)
    β”œβ”€β”€ Services/                # Git, Scalar, sparse-checkout, persistence services
    β”œβ”€β”€ ViewModels/              # MVVM ViewModels (CommunityToolkit.Mvvm)
    β”‚   β”œβ”€β”€ SetupViewModel.cs    # Prerequisites detection
    β”‚   β”œβ”€β”€ CloneViewModel.cs    # Clone workflow + input persistence
    β”‚   β”œβ”€β”€ SparseCheckoutViewModel.cs  # Tree browser + folder selection
    β”‚   β”œβ”€β”€ SettingsViewModel.cs # Tool path configuration
    β”‚   └── MainViewModel.cs     # Navigation orchestrator
    β”œβ”€β”€ Views/                   # WPF XAML views
    β”œβ”€β”€ Converters/              # Value converters
    └── app.ico                  # Application icon

Tech Stack

  • WPF (.NET 8) β€” desktop UI framework
  • CommunityToolkit.Mvvm β€” MVVM source generators ([ObservableProperty], [RelayCommand])
  • Scalar CLI β€” efficient large-repo cloning
  • Git CLI β€” sparse-checkout and tree operations

Usage Workflow

  1. Setup β€” App checks that Git and Scalar are installed
  2. Clone β€” Enter a repo URL, pick a target directory, configure options, and clone
  3. Sparse-Checkout β€” Browse the repo tree and select only the folders you need
  4. Work β€” Open the repo in your editor with only the files you selected

Screenshots

Clone repository

Clone repository

Choose sparse-checkout folders

Choose sparse-checkout folders

License

ScalarGui is licensed under the MIT License.

About

A Windows GUI for cloning large Git repositories with Scalar and managing sparse-checkout folders.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages