This section describes the configuration file used by freebsd-update, demonstrates how to apply a security patch and how to upgrade to a minor or major operating system release, and discusses some of the considerations when upgrading the operating system. Ignoring previously applied (or reversed) patch. 1 out of 1 hunks ignored--saving rejects to Makefile.in.rej => Patch patch-Makefile.in failed to apply cleanly. Make a dummy commit (committing works without problem!), use format-patch, delete the dummy commit, apply patch with git-am with or without -3, or apply with git-apply Have the patch file in the local dir instead of one up (grasping at straws, here).
- 2Apply a Patch in Windows using gnuwin32
- 2.1Potential problems and how to deal with them
Failed To Apply Patch Remove Aura Limit
Introduction
Maya Failed To Apply Color Management
This page explains how you can apply a patch file. Patch is a standard format, and there are many options for how to apply one. Pick the one that is easiest for you.
Perhaps most critical is the usage of the -p flag, which tells patch about the relationship between the directory where the patch file is located and the files that will be patched. See the references below for details and DO NOT assume anything.
Apply a Patch in Windows using gnuwin32
- Download and extract patch for windows from sourceforge I placed the patch.exe binary in C:bin (NOTE: Things are a lot easier if you put it in a directory that doesn't have white spaces in it.)
- Download and extract Moodle somewhere. eg: C:moodle
- Download the patch file and place it in the same directory you put Moodle (C:moodlepassword-policy-17.diff)
- Open the patch file with Wordpad, and click 'File' >> 'Save as...', choose a different name for the file eg ('mynewpatch.diff') and 'Save as type' >> 'Text Document - MS-DOS Format'
- Open up a command text window, and type:
- The number after '-p' option can vary depending on the patch file, as it depends on the way the patch file was generated. Have a look at the 'patch' utility manual page to see how the '-p' option works. You could also have a look at this diff and patch tutorial.
- You should get an output similar to this (the names and quantity of patched files vary from patch to patch):
- At this stage the patch has not been applied. We just simulated the application (with the '--dry-run' option), to see if we are going to find any problems with it. Before explaining how to actually apply the patch, we are going to talk about what could be wrong, and how to deal with it.
Potential problems and how to deal with them
Potential problems
If everything goes well, the patch will apply cleanly and life should be good! But sometimes the patch will not apply 100% cleanly due to a version mismatch between the original files used to produce the patch file and your local files. In this case, the 'patch' command will try to apply as many changes as it can, and will emit some diagnostics describing the problems it encounters.
- If you get any 'Hunk #n succeeded...' messages, the patch would have been applied correctly although at different line numbers than the original file. If we had actually applied the patch, the 'patch' command would have created an additional file for each of the files where the hunk was applied at a different offset, that would be named like the original file with the additional extension .orig.
- If you get any 'Hunk #n failed...' messages, the patch would have not applied correctly. In this case the 'patch' command would have created two additional files for each of the files where the hunk was not applied correctly, called:
- original-file-name.orig This would be the original file before the patch was applied, just like above.
- original-file-name.rej This file would contain the hunks that could not be applied correctly, so you could inspect them.
Dealing with potential problems
Dealing with the first problem (the offsetted hunks) is trivial: we just need to delete the .orig files once we actually apply the patch.
In the second case (failed hunks), unless you know how to fix the failed hunks by hand, you should not apply the patch, as that would corrupt your Moodle install. If you want to apply the patch and try to fix the failed hunks by hand, you should use the '-b' option. That option automatically makes a backup of every file the patch applies to, with the .orig extension. That would allow you go back to the original files state by simply overwritting the modified files with their .orig backups.
Sometimes, there will be a large difference in line numbers since a patch was generated and the patch will not apply. You can tell patch allow larger differences in line numbers by using the fuzz option '-F' to increase the number of lines difference there can be. For example patch -F 100 would allow 100 lines difference.
Actually applying the patch
Now that we know what could go wrong and how to deal with it, let's see how to apply the patch. We only need to remove the '--dry-run':
and optionally use the '-b' option if we are going to try to fix the failed hunks by hand:
Apply a Patch in Windows using NetBeans
NetBeans comes with integrated tools for version control and developer collaboration which include powerful graphical Diff tools and easily applying (and creating) patches. You can apply any patch to file from the file's context menu.
Apply a Patch in Linux using 'patch'
Put the patch file in the base directory of Moodle.
run in command line as root, (or su the command.)patch -p1 < patchfile.diff
see here for more details on using Patch in Linux
See Also
Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign upComments
commented Dec 5, 2014
Relevant gist. I can install macvim --HEAD with the current formula. However macvim's HEAD corresponds to Vim 7.4.383. A patch was posted on the macvim mailing list which brings macvim up to vim 7.4.516. This patch applies cleanly when I apply it directly to a fresh clone of macvim's repo: However it fails to apply via Homebrew. I incorporated the patch in the macvim formula like this: And tried to build macvim as before. All bar two of macvim's source files patched successfully; I wasn't able to investigate the two failures further because Homebrew seems to remove the failed build's artifacts and I couldn't figure out how to prevent that (using the I'm puzzled that a patch which applies cleanly directly doesn't apply cleanly via Homebrew. Any help would be much appreciated. Thank you! |
commented Dec 5, 2014
Hmmm, that should exist in ~/library/logs/homebrew. |
Freebsd Patch Patch-cmakelists.txt Failed To Apply Cleanly
commented Dec 5, 2014
It worked here. Here is diff between my macvim.rb ('good') and yours ('bad') after adding the patch: https://gist.github.com/jacknagel/ece82b105293055124f7 I'm guessing your editor probably damaged the patch when you pasted it. I typically use something like |
commented Dec 6, 2014
I think you are right. Everything worked as expected when I used Thank you very much. (I haven't seen vim mangle text like that before; I'll have to figure that out next.) |
Freebsd Patch Failed To Apply Cleanly
commented Dec 6, 2014
For the record, this is how I originally pasted the patch into the formula:
Instead step 2 should have been this: Here's some more detail: |