= Tips and Tricks for committers = This page provides some useful hints how to work with our infrastructure. And they can also make your work a lot easier. == Set svn properties automatically on new Portfiles == In the configuration for your Subversion client, enable automatic property setting and, for all files named Portfile, setting "svn:eol-style" to "native" and "svn:keywords" to "Id". If you are not using Subversion's own svn command-line client, see its documentation. For svn, you can make the appropriate changes by editing `~/.subversion/config` as follows: {{{ ... [miscellany] enable-auto-props = yes ... [auto-props] Portfile = svn:eol-style=native;svn:keywords=Id }}} == Apply patches directly from Trac URL == === Installation === Add the following functions to your `.bashrc` in order to apply patches directly from Trac. {{{ function trac-get { curl "$1?format=raw" -o $(basename $1) } function trac-patch { local cmd="" while [[ $1 == -* ]]; do if [[ "$1" == "--" ]]; then break fi cmd="$cmd $1" shift done if [[ -z $cmd ]]; then cmd="-p0" fi trac-get $1 patch $cmd < $(basename $1) } }}} === Usage === Use like this: 1. Copy the URL to the patch from the Trac ticket page 1. Switch to the ports directory {{{ $ cd $(port dir foo) }}} 1. Apply the patch {{{ $ trac-patch http://trac.macports.org/attachment/ticket/.../Portfile.diff }}} You can also add options which will get passed through to the patch tool. This is especially useful when the patch needs another prefix level. {{{ $ trac-patch -p1 http://trac.macports.org/attachment/ticket/.../Portfile.diff }}} If you don't add any option, `-p0` is used as a default. This should be the most common case.