|
2 | 2 | Patching Nextcloud |
3 | 3 | ================== |
4 | 4 |
|
| 5 | +Obtaining a patch |
| 6 | +----------------- |
| 7 | + |
| 8 | +If you found a related pull request on GitHub that solves your issue, or you want to help developers and verify a fix works, you can get a patch for the pull request. |
| 9 | + |
| 10 | +1. Using https://github.com/nextcloud/server/pull/26396 as an example. |
| 11 | +2. Append ``.diff`` to the URL: https://github.com/nextcloud/server/pull/26396.diff |
| 12 | +3. Download the patch to your server e.g. via ``wget https://github.com/nextcloud/server/pull/26396.diff`` (this will place ``26396.diff`` in the local directory) |
| 13 | +4. Follow the `Applying a patch`_ steps. |
| 14 | +5. If you are on an older Nextcloud version, you might first need to go to the correct backported patch for your version. |
| 15 | + |
| 16 | +.. image:: images/getting-a-patch-from-github.png |
| 17 | + :alt: backportbot-nextcloud linking to the pull request for an older version. |
| 18 | + |
| 19 | +6. You can find the appropriate version by looking for a link posted by ``backportbot-nextcloud`` to the backport pull request for your release, or by checking for a developer comment with a manual backport link. Use the ``.diff`` URL of that backport PR. |
| 20 | + |
5 | 21 | Applying a patch |
6 | 22 | ---------------- |
7 | 23 |
|
8 | 24 | Patching server |
9 | 25 | ^^^^^^^^^^^^^^^ |
10 | 26 |
|
11 | | -1. Navigate into your Nextcloud server's root directory (contains the ``status.php`` file) |
12 | | -2. Now apply the patch with the following command:: |
| 27 | +1. Navigate to your Nextcloud server's root directory (the one that contains the ``status.php`` file). |
| 28 | +2. Download the patch to your server e.g. via ``wget https://github.com/nextcloud/server/pull/26396.diff`` (this will place ``26396.diff`` in the local directory) |
| 29 | +3. Apply the patch with the following command:: |
13 | 30 |
|
14 | | - patch -p 1 < /path/to/the/file.patch |
| 31 | + patch -p 1 < ./26396.diff |
15 | 32 |
|
16 | | -3. Alternatively, if the patch command is not available, use:: |
| 33 | +4. Alternatively, if the patch command is not available, use:: |
17 | 34 |
|
18 | | - git apply --check /path/to/the/file.diff |
19 | | - git apply /path/to/the/file.diff |
| 35 | + git apply --check ./26396.diff |
| 36 | + git apply ./26396.diff |
20 | 37 |
|
21 | 38 | Patching apps |
22 | 39 | ^^^^^^^^^^^^^ |
23 | 40 |
|
24 | | -1. Navigate to the root of this app (mostly ``apps/[APPID]/``), if you can not find the app there use the ``sudo -E -u www-data php occ app:getpath APPID`` command to find the path. |
25 | | -2. Now apply the patch with the same command as in `Patching server`_ |
| 41 | +1. Navigate to the root of the app (usually ``apps/[APPID]/``). If you cannot find the app there, use the ``sudo -E -u www-data php occ app:getpath APPID`` command to find the path. |
| 42 | +2. Download the patch to your server e.g. via ``wget https://github.com/nextcloud/<app>/pull/26396.diff`` (this will place ``26396.diff`` in the local directory) |
| 43 | +3. Apply the patch with the same command as in `Patching server`_. |
26 | 44 |
|
27 | 45 | Reverting a patch |
28 | 46 | ----------------- |
29 | 47 |
|
30 | 48 | 1. Navigate to the directory where you applied the patch. |
31 | 49 | 2. Now revert the patch with the ``-R`` option:: |
32 | 50 |
|
33 | | - patch -R -p 1 < /path/to/the/file.patch |
| 51 | + patch -R -p 1 < ./26396.diff |
34 | 52 |
|
35 | 53 | 3. Alternatively, if the patch command is not available, use:: |
36 | 54 |
|
37 | | - git apply --reverse /path/to/the/file.diff |
| 55 | + git apply --reverse ./26396.diff |
38 | 56 |
|
39 | 57 | Notes and troubleshooting |
40 | 58 | ------------------------- |
|
0 commit comments