Version 6 (modified by raimue (Rainer Müller), 16 years ago) (diff) |
---|
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 { local url=$1 local dir=$2 if [[ -z $dir ]]; then dir=. fi curl "$url?format=raw" --create-dirs -o $dir/$(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:
- Copy the URL to the patch from the Trac ticket page
- Switch to the ports directory
$ cd $(port dir foo)
- Apply the patch
$ trac-patch http://trac.macports.org/attachment/ticket/.../Portfile.diff
You can also add options to trac-patch
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.
trac-get
can also download to another directory. If the directory does not yet exist, it will be created. Just add a second parameter with the name of the directory. If you omit the second parameter, the current directory is used.
$ trac-get http://trac.macports.org/attachment/ticket/.../Portfile new-port