Fossil SCM
Added info about private branches to the new backup.md doc.
Commit
78c0c55a41a161db310ae4747dbe3d8e3dfc55cec4406ee39b2e77bc0c376601
Parent
5c2ef2a2e3b37f5…
1 file changed
+22
-5
+22
-5
| --- www/backup.md | ||
| +++ www/backup.md | ||
| @@ -28,10 +28,19 @@ | ||
| 28 | 28 | of these configuration areas on initial clone, but after that, some |
| 29 | 29 | remote configuration changes don’t sync down automatically, such as the |
| 30 | 30 | remote’s skin. You have to ask for updates to these configuration areas |
| 31 | 31 | explicitly. |
| 32 | 32 | |
| 33 | + | |
| 34 | +## Private Branches | |
| 35 | + | |
| 36 | +The very nature of Fossil’s [private branch feature][pbr] ensures that | |
| 37 | +remote clones don’t get a copy of those branches. Normally this is | |
| 38 | +exactly what you want, but in the case of making backups, you probably | |
| 39 | +want these branches as well. One of the two backup methods below | |
| 40 | +provides this. | |
| 41 | + | |
| 33 | 42 | |
| 34 | 43 | ## Shunned Artifacts |
| 35 | 44 | |
| 36 | 45 | Fossil purposefully doesn’t sync [shunned artifacts][shun]. If you want |
| 37 | 46 | your local clone to be a precise match to the remote, it needs to track |
| @@ -49,11 +58,11 @@ | ||
| 49 | 58 | |
| 50 | 59 | |
| 51 | 60 | # Solutions |
| 52 | 61 | |
| 53 | 62 | The following script solves all of the above problems for the use case |
| 54 | -where you want a *complete* clone of the remote repository using nothing | |
| 63 | +where you want a *nearly-complete* clone of the remote repository using nothing | |
| 55 | 64 | but the normal Fossil sync protocol. It requires that you be logged into |
| 56 | 65 | the remote as a user with Setup capability. |
| 57 | 66 | |
| 58 | 67 | ---- |
| 59 | 68 | |
| @@ -70,14 +79,20 @@ | ||
| 70 | 79 | are removed from the local clone. The second step includes |
| 71 | 80 | `fossil conf pull shun`, so your repo won’t offer the shunned artifacts |
| 72 | 81 | to others cloning from it, but the backup can’t be said to be “complete” |
| 73 | 82 | if it contains information that the remote now lacks. |
| 74 | 83 | |
| 75 | -Alternately, if you have access to the remote server, you could get a | |
| 76 | -SQL-level backup if you’re using Fossil 2.12 or newer by using its new | |
| 77 | -[`backup` command][bu]. You could get an off-machine backup of a remote | |
| 78 | -server over SSH like so: | |
| 84 | +This method doesn’t get you a copy of the remote’s | |
| 85 | +[private branches][pbr], on purpose. It may also miss other info on the | |
| 86 | +remote, such as SQL-level customizations that the sync protocol can’t | |
| 87 | +see. (Some [ticket system customization][tkt] schemes do this.) You can | |
| 88 | +solve such problems if you have access to the remote server, which | |
| 89 | +allows you to get a SQL-level backup. This requires Fossil 2.12 or | |
| 90 | +newer, which added [the `backup` command][bu]. | |
| 91 | + | |
| 92 | +You can get an off-machine SQL-level backup of a Fossil repository on | |
| 93 | +a remote server over SSH like so: | |
| 79 | 94 | |
| 80 | 95 | ---- |
| 81 | 96 | |
| 82 | 97 | ``` shell |
| 83 | 98 | #!/bin/bash |
| @@ -135,9 +150,11 @@ | ||
| 135 | 150 | |
| 136 | 151 | [bu]: /help?cmd=backup |
| 137 | 152 | [grcp]: https://www.grc.com/passwords.htm |
| 138 | 153 | [hb]: https://brew.sh |
| 139 | 154 | [hbul]: https://docs.brew.sh/FAQ#what-does-keg-only-mean |
| 155 | +[pbr]: ./private.wiki | |
| 140 | 156 | [rint]: https://www.random.org/integers/?num=1&min=10000&max=100000&col=5&base=10&format=html&rnd=new |
| 141 | 157 | [setup]: ./caps/admin-v-setup.md#apsu |
| 142 | 158 | [shun]: ./shunning.wiki |
| 159 | +[tkt]: ./tickets.wiki | |
| 143 | 160 | [uv]: ./unvers.wiki |
| 144 | 161 |
| --- www/backup.md | |
| +++ www/backup.md | |
| @@ -28,10 +28,19 @@ | |
| 28 | of these configuration areas on initial clone, but after that, some |
| 29 | remote configuration changes don’t sync down automatically, such as the |
| 30 | remote’s skin. You have to ask for updates to these configuration areas |
| 31 | explicitly. |
| 32 | |
| 33 | |
| 34 | ## Shunned Artifacts |
| 35 | |
| 36 | Fossil purposefully doesn’t sync [shunned artifacts][shun]. If you want |
| 37 | your local clone to be a precise match to the remote, it needs to track |
| @@ -49,11 +58,11 @@ | |
| 49 | |
| 50 | |
| 51 | # Solutions |
| 52 | |
| 53 | The following script solves all of the above problems for the use case |
| 54 | where you want a *complete* clone of the remote repository using nothing |
| 55 | but the normal Fossil sync protocol. It requires that you be logged into |
| 56 | the remote as a user with Setup capability. |
| 57 | |
| 58 | ---- |
| 59 | |
| @@ -70,14 +79,20 @@ | |
| 70 | are removed from the local clone. The second step includes |
| 71 | `fossil conf pull shun`, so your repo won’t offer the shunned artifacts |
| 72 | to others cloning from it, but the backup can’t be said to be “complete” |
| 73 | if it contains information that the remote now lacks. |
| 74 | |
| 75 | Alternately, if you have access to the remote server, you could get a |
| 76 | SQL-level backup if you’re using Fossil 2.12 or newer by using its new |
| 77 | [`backup` command][bu]. You could get an off-machine backup of a remote |
| 78 | server over SSH like so: |
| 79 | |
| 80 | ---- |
| 81 | |
| 82 | ``` shell |
| 83 | #!/bin/bash |
| @@ -135,9 +150,11 @@ | |
| 135 | |
| 136 | [bu]: /help?cmd=backup |
| 137 | [grcp]: https://www.grc.com/passwords.htm |
| 138 | [hb]: https://brew.sh |
| 139 | [hbul]: https://docs.brew.sh/FAQ#what-does-keg-only-mean |
| 140 | [rint]: https://www.random.org/integers/?num=1&min=10000&max=100000&col=5&base=10&format=html&rnd=new |
| 141 | [setup]: ./caps/admin-v-setup.md#apsu |
| 142 | [shun]: ./shunning.wiki |
| 143 | [uv]: ./unvers.wiki |
| 144 |
| --- www/backup.md | |
| +++ www/backup.md | |
| @@ -28,10 +28,19 @@ | |
| 28 | of these configuration areas on initial clone, but after that, some |
| 29 | remote configuration changes don’t sync down automatically, such as the |
| 30 | remote’s skin. You have to ask for updates to these configuration areas |
| 31 | explicitly. |
| 32 | |
| 33 | |
| 34 | ## Private Branches |
| 35 | |
| 36 | The very nature of Fossil’s [private branch feature][pbr] ensures that |
| 37 | remote clones don’t get a copy of those branches. Normally this is |
| 38 | exactly what you want, but in the case of making backups, you probably |
| 39 | want these branches as well. One of the two backup methods below |
| 40 | provides this. |
| 41 | |
| 42 | |
| 43 | ## Shunned Artifacts |
| 44 | |
| 45 | Fossil purposefully doesn’t sync [shunned artifacts][shun]. If you want |
| 46 | your local clone to be a precise match to the remote, it needs to track |
| @@ -49,11 +58,11 @@ | |
| 58 | |
| 59 | |
| 60 | # Solutions |
| 61 | |
| 62 | The following script solves all of the above problems for the use case |
| 63 | where you want a *nearly-complete* clone of the remote repository using nothing |
| 64 | but the normal Fossil sync protocol. It requires that you be logged into |
| 65 | the remote as a user with Setup capability. |
| 66 | |
| 67 | ---- |
| 68 | |
| @@ -70,14 +79,20 @@ | |
| 79 | are removed from the local clone. The second step includes |
| 80 | `fossil conf pull shun`, so your repo won’t offer the shunned artifacts |
| 81 | to others cloning from it, but the backup can’t be said to be “complete” |
| 82 | if it contains information that the remote now lacks. |
| 83 | |
| 84 | This method doesn’t get you a copy of the remote’s |
| 85 | [private branches][pbr], on purpose. It may also miss other info on the |
| 86 | remote, such as SQL-level customizations that the sync protocol can’t |
| 87 | see. (Some [ticket system customization][tkt] schemes do this.) You can |
| 88 | solve such problems if you have access to the remote server, which |
| 89 | allows you to get a SQL-level backup. This requires Fossil 2.12 or |
| 90 | newer, which added [the `backup` command][bu]. |
| 91 | |
| 92 | You can get an off-machine SQL-level backup of a Fossil repository on |
| 93 | a remote server over SSH like so: |
| 94 | |
| 95 | ---- |
| 96 | |
| 97 | ``` shell |
| 98 | #!/bin/bash |
| @@ -135,9 +150,11 @@ | |
| 150 | |
| 151 | [bu]: /help?cmd=backup |
| 152 | [grcp]: https://www.grc.com/passwords.htm |
| 153 | [hb]: https://brew.sh |
| 154 | [hbul]: https://docs.brew.sh/FAQ#what-does-keg-only-mean |
| 155 | [pbr]: ./private.wiki |
| 156 | [rint]: https://www.random.org/integers/?num=1&min=10000&max=100000&col=5&base=10&format=html&rnd=new |
| 157 | [setup]: ./caps/admin-v-setup.md#apsu |
| 158 | [shun]: ./shunning.wiki |
| 159 | [tkt]: ./tickets.wiki |
| 160 | [uv]: ./unvers.wiki |
| 161 |