The original post: /r/php by /u/MagePsycho on 2024-12-26 19:15:12.
Just wondering, how do you create a composer patch file for project under ./vendor
packages?
Is it something like:
# Manually stage specific files
git add -f ./vendor/{vendor}/{package}/file1.php ./vendor/{vendor}/{package}/file2.php ...
# Perform required changes on files
# ... (manual editing)
# Create patch manually
git diff ./vendor/{vendor}/{package}/file1.php ./vendor/{vendor}/{package}/file2.php ... > patches/{patch-name}.patch
# Cleanup steps
git restore ./vendor/{vendor}/{package}/file1.php ./vendor/{vendor}/{package}/file2.php ...
git reset HEAD ./vendor/{vendor}/{package}/file1.php ./vendor/{vendor}/{package}/file2.php ...
# OR
# If you are using diff command
# cp ./vendor/{vendor}/{package}/file.php ./vendor/{vendor}/{package}/file.php.old
# {perform required changes on file.php}
# diff -u ./vendor/{vendor}/{package}/file.php.old ./vendor/{vendor}/{package}/file.php > patches/{patch-name}.patch
# rm ./vendor/{vendor}/{package}/file.php
# mv ./vendor/{vendor}/{package}/file.php.old ./vendor/{vendor}/{package}/file.php
# Manually update composer.json
# "extra": {
# "patches": {
# "{vendor}/{package}": {
# "{patch-message}": "patches/{patch-name}.patch",
# },
# }
# }
# Finally, apply patches
composer install
What if we automate this lengthy manual process with a simple bash script?
You must log in or register to comment.