Committer guide: restore some information about svnsync

Even though we don't have currently have active seeds some people still
use the old ones. In addition we may restore creating new ones.

Update the text a bit to reflect that you can use the mirror. Move the
text together into one section, and keep the note about alternatives.

Requested by:	kib
This commit is contained in:
Eitan Adler 2018-06-17 03:20:41 +00:00
parent 202f853924
commit d65564771e
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=51854

View file

@ -580,35 +580,6 @@ You need a Passphrase to protect your secret key.</screen>
</note>
</sect3>
<sect3 xml:id="svn-getting-started-checkout-from-a-mirror">
<title>Checkout from a Mirror</title>
<para>Check out a working copy from a mirror by
substituting the mirror's <acronym>URL</acronym> for
<literal>svn+ssh://repo.freebsd.org/base</literal>. This
can be an official mirror or a mirror maintained by using
<command>svnsync</command>.</para>
<para>There is a serious disadvantage to this method: every
time something is to be committed, a
<command>svn relocate</command> to the master repository has
to be done, remembering to <command>svn relocate</command>
back to the mirror after the commit. Also, since
<command>svn relocate</command> only works between
repositories that have the same UUID, some hacking of the
local repository's UUID has to occur before it is possible
to start using it.</para>
<para>The hassle of a local <command>svnsync</command> mirror
probably is not worth it unless the network connectivity
situation or other factors demand it. Starting
a fresh mirror from empty takes a long time.
Expect a minimum of 10 hours with high speed connectivity.
If international links are involved, expect this to take
four to ten times longer. Another option is to use the
git mirror.</para>
</sect3>
<sect3 xml:id="svn-getting-started-base-layout">
<title><literal>RELENG_*</literal> Branches and General
Layout</title>
@ -1863,6 +1834,69 @@ U stable/9/share/man/man4/netmap.4
This is a waste.</para>
</sect3>
<sect3 xml:id="svn-getting-started-checkout-from-a-mirror">
<title>Using a Subversion mirror</title>
<para>There is a serious disadvantage to this method: every
time something is to be committed, a
<command>svn relocate</command> to the master repository has
to be done, remembering to <command>svn relocate</command>
back to the mirror after the commit. Also, since
<command>svn relocate</command> only works between
repositories that have the same UUID, some hacking of the
local repository's UUID has to occur before it is possible
to start using it.</para>
<sect4 xml:id="svn-advanced-checkout-from-mirror">
<title>Checkout From a Mirror</title>
<para>Check out a working copy from a mirror by
substituting the mirror's <acronym>URL</acronym> for
<literal>svn+ssh://repo.freebsd.org/base</literal>. This
can be an official mirror or a mirror maintained by using
<command>svnsync</command>.</para>
</sect4>
<sect4 xml:id="svn-advanced-use-setting-up-svnsync">
<title>Setting up a <application>svnsync</application>
Mirror</title>
<para>Avoid setting up a <application>svnsync</application>
mirror unless there is a very good reason for it. Most
of the time a <command>git</command> mirror is a better
alternative. Starting a fresh mirror from scratch takes
a long time.
Expect a minimum of 10 hours for high speed connectivity.
If international links are involved, expect this to take
four to ten times longer.</para>
<para>One way to limit the time required is to grab a <link
xlink:href="https://download.freebsd.org/ftp/development/subversion/">seed file</link>.
It is large
(~1GB) but will consume less network traffic and take less
time to fetch than svnsync will.</para>
<para>Extract the file and update it:</para>
<screen>&prompt.user; <userinput>tar xf svnmirror-base-r261170.tar.xz</userinput>
&prompt.user; <userinput>svnsync sync file:///home/svnmirror/base</userinput></screen>
<para>Now, set that up to run from &man.cron.8;, do
checkouts locally, set up a svnserve server for local
machines to talk to, etc.</para>
<para>The seed mirror is set to fetch from
<literal>svn://svn.freebsd.org/base</literal>. The
configuration for the mirror is stored in
<literal>revprop 0</literal> on the local mirror. To see
the configuration, try:</para>
<screen>&prompt.user; <userinput>svn proplist -v --revprop -r 0 file:///home/svnmirror/base</userinput></screen>
<para>Use <literal>svn propset</literal> to change things.</para>
</sect4>
</sect3>
<sect3 xml:id="svn-advanced-use-committing-high-ascii-data">
<title>Committing High-<acronym>ASCII</acronym> Data</title>