The "svn switch" tip isn't needed anymore, but the ControlMaster

tip can help with TCP latency.

While here: modernize the makefile options and clarify the text

Approved by:	bcr (mentor)
This commit is contained in:
Eitan Adler 2012-12-07 13:00:46 +00:00
parent b5d2b293a7
commit 317efb77f2
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=40292

View file

@ -1883,37 +1883,20 @@ U stable/9/share/man/man4/netmap.4
<para>Don't remove and re-add the same file in a single commit
as this will break the CVS exporter.</para>
<para>Speeding up checkouts and minimising network traffic is
possible with the following recipe:</para>
<para>Speeding up svn is
possible by adding the following to <filename>~/.ssh/config</filename>:</para>
<screen>&prompt.user; <userinput>svn co --depth=empty svn+ssh://svn.freebsd.org/base fbsvn</userinput>
&prompt.user; <userinput>cd fbsvn</userinput>
&prompt.user; <userinput>svn up --depth=empty stable</userinput>
&prompt.user; <userinput>svn up head</userinput>
&prompt.user; <userinput>cd stable</userinput>
&prompt.user; <userinput>cp -r ../head/ 7</userinput>
&prompt.user; <userinput>cd 7</userinput>
&prompt.user; <userinput>svn switch svn+ssh://svn.freebsd.org/base/stable/7</userinput>
&prompt.user; <userinput>cd ..</userinput>
&prompt.user; <userinput>cp -r 7/ 6</userinput>
&prompt.user; <userinput>cd 6</userinput>
&prompt.user; <userinput>svn switch svn+ssh://svn.freebsd.org/base/stable/6</userinput></screen>
<screen>Host *
ControlPath ~/.ssh/sockets/master-%l-%r@%h:%p
ControlMaster auto
ControlPersist yes</screen>
<para>What this bit of evil does is check out head, stable/7 and
stable/6. We create the empty checkout directories under
<acronym>SVN</acronym>'s control. In <acronym>SVN</acronym>,
subtrees are self identifying, like in <acronym>CVS</acronym>.
We check out head and clone it as stable/7. Except we don't
want the head version so we <quote>switch</quote> it to the
7.x tree location. <acronym>SVN</acronym> downloads diffs to
convert the <quote>head</quote> files to
<quote>stable/7</quote> instead of doing a fresh checkout.
The same goes for stable/6. This does, however, definitely
count as abuse of the working copy client code!</para>
<para>and then typing</para>
<screen><userinput>mkdir ~/.ssh/sockets</userinput></screen>
<para>Checking out a working copy with a stock Subversion client
without &os;-specific patches
(<makevar>WITH_FREEBSD_TEMPLATE</makevar>) will mean that
(<makevar>OPTIONS_SET=FREEBSD_TEMPLATE</makevar>) will mean that
<literal>&dollar;FreeBSD&dollar;</literal> tags will not be
expanded. Once the correct version has been installed, trick
Subversion into expanding them like so:</para>
@ -1921,8 +1904,7 @@ U stable/9/share/man/man4/netmap.4
<screen>&prompt.user; <userinput>svn propdel -R svn:keywords .</userinput>
&prompt.user; <userinput>svn revert -R .</userinput></screen>
<para>This is not a good idea if uncommitted patches exist,
however.</para>
<para>This will wipe out uncommitted patches.</para>
</sect2>
</sect1>