Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cowtree

cowtree copies gitignored files between Jujutsu workspaces using copy-on-write reflinks. This is useful for carrying workspace-local files such as build outputs, dependency directories, and environment files into another workspace without making full copies.

Only the Jujutsu backend is implemented. The Git commands are placeholders.

Install

Build and install the binary from this checkout:

cargo install --path .

The jj executable must be available on PATH.

Usage

Run cowtree from the root of the source workspace, the directory containing .jj. NAME and --source are Jujutsu workspace names; paths are used only where explicitly noted.

Create a workspace at NEW_WORKSPACE_PATH from REVISION, then populate it with ignored files from the current workspace:

cowtree jj create <NAME> <NEW_WORKSPACE_PATH> --revision <REVISION> --source <SOURCE>

For example:

cowtree jj create feature ../feature --revision main --source default

Populate an existing workspace with ignored files from the current workspace:

cowtree jj populate <NAME> --source <SOURCE>

For example:

cowtree jj populate feature --source default

Use cowtree --help or cowtree jj <COMMAND> --help for the complete CLI reference.

How it works

cowtree reads .gitignore from the current workspace, resolves the source and destination by their registered Jujutsu workspace names, and reflinks the ignored files into the destination while preserving their relative paths.

About

A wrapper around COW + git/jj workspaces

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages