Changes between Version 17 and Version 18 of howto/SyncingWithSVN
- Timestamp:
- Jun 18, 2015, 6:04:06 PM (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
howto/SyncingWithSVN
v17 v18 3 3 = How to sync your ports tree using Subversion (over HTTP(s)) = 4 4 5 * Audience: end users who cannot use rsync (873/tcp) due to firewalls, proxies, policy, etc. 6 * Requires: MacPorts 7 * Requires: Subversion 5 - Audience: end users who cannot use rsync (873/tcp) due to firewalls, 6 proxies, policy, etc. 7 - Requires: MacPorts 8 - Requires: Subversion 8 9 9 OS X 10.5 Leopard and later comes with Subversion already installed. If you are using Tiger, or some other system which does not provide a Subversion client, you will need to install Subversion yourself. If you have a copy of the ports tree already, just run: 10 OS X 10.5 Leopard and later comes with Subversion already installed. If 11 you are using Tiger, or some other system which does not provide 12 a Subversion client, you will need to install Subversion yourself. If 13 you have a copy of the ports tree already, just run: 10 14 {{{ 11 15 sudo port install subversion 12 16 }}} 13 If you do not have a copy of the ports tree, you can download the daily tarball by following [wiki:howto/PortTreeTarball the tarball howto]. 17 If you do not have a copy of the ports tree, you can download the daily 18 tarball by following [wiki:howto/PortTreeTarball the tarball howto]. 19 14 20 15 21 == Introduction == 16 22 17 Some people live and work behind a firewall or proxy that blocks or otherwise breaks rsync, which is the primary means of getting updated portfiles in MacPorts. The following steps will switch your tree over to using Subversion (over https) for syncing. 23 Some people live and work behind a firewall or proxy that blocks or 24 otherwise breaks rsync, which is the primary means of getting updated 25 portfiles in MacPorts. The following steps will switch your tree over to 26 using Subversion (over https) for syncing. 18 27 19 Note: replace "$prefix" with the location of your MacPorts install, which defaults to /opt/local. 28 Note: replace "$prefix" with the location of your MacPorts install, 29 which defaults to /opt/local. 30 20 31 21 32 == Installation == … … 28 39 svn co https://svn.macports.org/repository/macports/trunk/dports/ . 29 40 }}} 30 If you prefer, the repository is also available via HTTP, which requires less configuration, but is seen as less secure (subject to a man in the middle attack). 41 If you prefer, the repository is also available via HTTP, which requires 42 less configuration, but is seen as less secure (subject to a man in the 43 middle attack). 31 44 {{{ 32 45 svn co http://svn.macports.org/repository/macports/trunk/dports/ . 33 46 }}} 34 47 48 35 49 == Configuration == 36 50 37 51 === Step 2: '''Configure MacPorts''' === 38 Edit $prefix/etc/macports/sources.conf to comment out the rsync entry and add the "file" entry: 52 Edit $prefix/etc/macports/sources.conf to comment out the rsync entry 53 and add the "file" entry: 39 54 40 Note: don't forget to replace $prefix, so the initial part will start with "file:///..." (three slashes). 55 Note: don't forget to replace $prefix, so the initial part will start 56 with "file:///..." (three slashes). 41 57 42 58 {{{ … … 47 63 === Step 3: '''Configure Subversion''' === 48 64 49 First, tell subversion to use your proxy to connect to the server. This should not be necessary if your initial SVN checkout was from the http or https URL's (and the checkout worked), so most people should not have to do this. If initial checkout failed, you will need this. If you needed to configure your own ~/.subversion/servers file to be able to do the initial checkout, then you *do* need this step. 50 1. If the $prefix/var/macports/home/.subversion/servers file doesn't exist, create it by copying the corresponding ~/.subversion/servers file from another user to that location. (SVN automatically creates this file if it doesn't exist, so you probably already have one.) 51 2. Edit the file and set a proxy for hosts at `*.macports.org`. Different proxy configurations require different sets of options here, but the file is pretty well commented, so it should be easy to figure out what you need. At a minimum you'll need settings for http-proxy-host and http-proxy-port. 65 First, tell subversion to use your proxy to connect to the server. This 66 should not be necessary if your initial SVN checkout was from the http 67 or https URL's (and the checkout worked), so most people should not have 68 to do this. If initial checkout failed, you will need this. If you 69 needed to configure your own ~/.subversion/servers file to be able to do 70 the initial checkout, then you *do* need this step. 52 71 53 Finally, if you want to use SVN over HTTPS to access the repository (i.e. if your initial SVN checkout was the https:// URL), you'll need to tell SVN to trust the MacPorts signature. (SVN doesn't trust the authority that issued it, and `port sync` below invokes `svn up` with the `--non-interactive` flag, so you won't have the opportunity to accept the certificate then.) 72 1. If the $prefix/var/macports/home/.subversion/servers file doesn't 73 exist, create it by copying the corresponding ~/.subversion/servers 74 file from another user to that location. (SVN automatically creates 75 this file if it doesn't exist, so you probably already have one.) 76 1. Edit the file and set a proxy for hosts at `*.macports.org`. 77 Different proxy configurations require different sets of options 78 here, but the file is pretty well commented, so it should be easy to 79 figure out what you need. At a minimum you'll need settings for 80 http-proxy-host and http-proxy-port. 81 82 Finally, if you want to use SVN over HTTPS to access the repository 83 (i.e. if your initial SVN checkout was the https:// URL), you'll need to 84 tell SVN to trust the MacPorts signature. (SVN doesn't trust the 85 authority that issued it, and `port sync` below invokes `svn up` with 86 the `--non-interactive` flag, so you won't have the opportunity to 87 accept the certificate then.) 88 54 89 1. `mkdir -p $prefix/var/macports/home/.subversion/auth/svn.ssl.server` 55 2. As a normal user, run `svn ls https://svn.macports.org/repository/macports/trunk/dports/`. When prompted, accept the certificate permanently. 56 3. SVN will store the certificate in a file in the directory `$HOME/.subversion/auth/svn.ssl.server`. In that directory, find the file that contains the string "`https://svn.macports.org`" and copy it into `$prefix/var/macports/home/.subversion/auth/svn.ssl.server`. 90 1. As a normal user, run `svn ls https://svn.macports.org/repository/macports/trunk/dports/`. 91 When prompted, accept the certificate permanently. 92 1. SVN will store the certificate in a file in the directory 93 `$HOME/.subversion/auth/svn.ssl.server`. In that directory, find the 94 file that contains the string "`https://svn.macports.org`" and copy 95 it into `$prefix/var/macports/home/.subversion/auth/svn.ssl.server`. 57 96 58 Or, you can use SVN over HTTP (i.e. your initial checkout was from the http:// URL), in which case you don't need to worry about the certificate. 97 Or, you can use SVN over HTTP (i.e. your initial checkout was from the 98 http:// URL), in which case you don't need to worry about the 99 certificate. 59 100 60 101 === Step 4: ''Sync''' === 61 102 62 Run sync in debug mode and watch for "svn update" instead of "rsync" being used. Basically, if this command works, you're good to go, and future sync's will work as well. 103 Run sync in debug mode and watch for "svn update" instead of "rsync" 104 being used. Basically, if this command works, you're good to go, and 105 future sync's will work as well. 63 106 64 107 {{{ … … 70 113 Additional topics related to MacPorts and SVN: 71 114 72 * Creating and testing ports not yet submitted to MacPorts: [https://guide.macports.org/#development.local-repositories Local SVN development repository] 73 74 *[wiki:RunningTrunk Running an unstable/development version of MacPorts]115 - Creating and testing ports not yet submitted to MacPorts: 116 [https://guide.macports.org/#development.local-repositories Local SVN development repository] 117 - [wiki:RunningTrunk Running an unstable/development version of MacPorts] 75 118 76 119