This repository was archived by the owner on Sep 1, 2025. It is now read-only.

Description
When running m . <job> to execute a job from the current repository's makes.nix, the framework clones the local repository into a temporary directory but fails to include git submodules and doesn't have git lfs available during the cloning process. This creates significant limitations for our projects that use git submodules and/or git lfs when trying to use makes for CI/CD tasks.
Expected Behavior
- When executing
m . <job>, the command should clone the local repository along with all initialized git submodules
- Git LFS should be available during the cloning/copying process to handle LFS-tracked files properly
Current Behavior
- Only tracked and modified files from the main repository are copied to the temporary directory
- Git submodules are completely ignored and not included
- Git LFS is not available during the cloning process, causing failures with our repositories that have git hooks (e.g. post-checkout) and depend on git lfs
Steps to Reproduce
- Create a git repository with initialized submodules and/or git lfs tracked files
- Add a
makes.nix file with a job definition
- Run
m . <job>
- Observe that submodules are missing from the temporary directory
- If using git lfs with hooks, observe cloning failures due to missing git lfs
Suggested Fix
- Modify the repository cloning logic to include initialized submodule files when copying local repositories
- Ensure git lfs is available in the environment during the cloning/copying process
- Optional: Consider adding configuration options to control submodule cloning behavior if needed for performance reasons