Files
cell/scripts/man/patch.man

79 lines
2.4 KiB
Groff

CELL-PATCH(1) Cell Manual CELL-PATCH(1)
NAME
cell patch - Create a patch file for local modifications
SYNOPSIS
cell patch <alias>
DESCRIPTION
The patch command creates a patch file capturing local modifications
made to a dependency. This allows you to maintain custom changes to
upstream modules that persist across updates.
Patches are stored in .cell/patches/ and automatically applied when
modules are fetched or updated.
ARGUMENTS
alias
The dependency alias to create a patch for
OPERATION
1. Compares the current module state with the original
2. Generates a unified diff of all changes
3. Saves the patch to .cell/patches/alias.patch
4. Updates cell.toml to reference the patch
PATCH APPLICATION
Patches are automatically applied:
- After 'cell get' fetches a module
- After 'cell update' downloads a new version
- During 'cell vendor' operations
Application order matches the order in cell.toml [patches] section.
EXAMPLES
Create a patch after modifying a dependency:
# Edit files in .cell/modules/chess@v1.0.0/
cell patch chess
This creates:
.cell/patches/chess.patch
And updates cell.toml:
[patches]
chess = "./patches/chess.patch"
PATCH FORMAT
Patches use unified diff format:
--- a/main.js
+++ b/main.js
@@ -10,3 +10,4 @@
function init() {
console.log("Starting chess engine");
+ console.log("With custom modifications");
}
NOTES
- Keep patches small and focused
- Document why each patch is needed
- Test patches with new versions during updates
- Patches may fail to apply if upstream changes conflict
- TODO: Actual implementation pending
FILES
.cell/patches/
Directory containing all patch files
.cell/cell.toml
Updated with patch references
WORKFLOW
1. cell get git.world/jj/chess@v1.0.0
2. Modify files in .cell/modules/chess@v1.0.0/
3. cell patch chess
4. Commit .cell/patches/chess.patch to version control
5. Future 'cell get' commands will apply the patch
SEE ALSO
cell(1), cell-get(1), cell-update(1)