I'm trying to apply a module patch using SSH.

When I enter the following command:

patch < htdocs / module / smtp / smtp.module.patch

I keep getting the following message:

patch: /: extra operand
patch: Try `patch --help' for more information.

I'm brand new to ssh. Can anyone help?


You may read : http://drupal.org/patch/apply

Don't leave space betwen /, it's a path, no space allowed.


Ok. Thank you. I've read loads of stuff and managed to get thus far.

I've just taken your first piece of advice and had the following results:

missing header for unified diff at line 8 of patch
(Stripping trailing CRs from patch.)
can't find file to patch at input line 8
Perhaps you should have used the -p or --strip option?
The text leading up to this was:

|--- smtp.module 2008-01-15 18:11:30.000000000 -0500
|+++ /home/greg/workspace/smtp/smtp.module 2008-01-28 01:35:22.000000000 -0500

Are you able to help further?

Provided that the patch was made relative to the Drupal root directory, navigate to the Drupal directory (using cd) and issue the command:
patch -p0 < path/file.patch

If the patch was not made relative to the Drupal root directory you can place the patch in the same directory as the file being patched and run the patch command without the -p option. To do so, cd to the directory and type:

patch < file.patch

Assuming you got a smtp.module file at the current directory, try

patch -p0 < htdocs/module/smtp/smtp.module.patch

It seems that any reference to anything within @@ @@ comes back as an unknown file path.

Should I be replacing (for example @@ -2,9 +2,5 @@) with the file name or is it referencing another piece of Drupal coding elsewhere?