[wiki:howto <- Back to the HOWTO section] = How to sync your ports tree using Git over HTTPS = - Audience: end users who cannot use rsync (873/tcp) due to firewalls, proxies, policy, etc. - Requires: MacPorts - Requires: Git == Introduction == 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 Git over HTTPS for syncing. Note: if you are using a custom prefix, you will have to replace the default of `/opt/local` with the location of your MacPorts install in the instructions below. == Installation == === Step 0: Install Git === Git already comes pre-installed with Xcode. Most users will not need to install it manually. If you are unsure whether you already have it installed, check with this command: {{{ git --version }}} Unless you see an error message with `command not found`, you already have git and can skip this step. Continue only if you do not already have `git` installed. If you have a copy of the ports tree already, just run: {{{ sudo port install git }}} 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]. === Step 1: Checkout Initial Copy === {{{ cd /opt/local/var/macports/sources sudo mkdir -p github.com/macports/macports-ports/ sudo chown -R ${USER}:admin github.com/macports/macports-ports/ git clone https://github.com/macports/macports-ports.git github.com/macports/macports-ports/ }}} == Configuration == === Step 2: Configure MacPorts === Edit `/opt/local/etc/macports/sources.conf` to comment out the `rsync://` entry and add a new `file:///` entry: Note: if you need to replace `/opt/local` with your custom prefix, make sure the initial "!file:///..." contains three slashes. {{{ #rsync://rsync.macports.org/macports/release/tarballs/ports.tar [default] file:///opt/local/var/macports/sources/github.com/macports/macports-ports/ [default] }}} === Step 3: Sync === On running your first sync you will have wait for the PortIndex to be generated, which will take some time. Subsequent runs will be faster, as only changed Portfiles need to be indexed again. Use the `-v` flag for verbose mode which will show you the progress of this operation. {{{ sudo port -v sync }}} After this has finished, you are now receiving your Portfiles using Git instead of rsync. == See also == Additional topics related to MacPorts and Git: - Creating and testing ports not yet submitted to MacPorts: [https://guide.macports.org/#development.local-repositories Local development repository] - [wiki:RunningMaster Running an unstable/development version of MacPorts] [wiki:howto <- Back to the HOWTO section]