Contributing¶
Merkaartor development is done on Gitorious.
If you've not used Git before, you may wish to read its [http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html Tutorial] and/or [http://www.kernel.org/pub/software/scm/git/docs/user-manual.html User Manual].
You'll first need an account on [http://Gitorious.org Gitorious] (registration is simple and quick, but you'll have to set your browser to permit both cookies and Javascript on gitorious.org).
Go to the [http://gitorious.org/merkaartor/main Merkaartor main branch] and use the button marked "Clone this repository on Gitorious" to create your own working repository.
Your new repository will show you its "Clone and push URLs" - copy the SSH one for the next step.
In your local development directory, do
git clone ''repo-url''
where ''repo-url'' is the SSH URL you copied from Gitorious.
Now cd into the newly-created directory (named from your repository), and
git remote add upstream git://gitorious.org/merkaartor/main.git
Now you're ready to start coding.
It's best to develop on a feature branch:
git checkout -b my_feature_branch
Write your code
When it's ready
git push origin my_feature_branch
Now, go to Gitorious, and create a merge request (TODO: expand this a bit).
Dump of stuff from Łukasz Jernaś to wikify:
when it's merged into the main repo I do
git checkout master
git fetch -v upstream
git merge upstream/master (or rebase if master messed things up, if
you haven't locally modified master you should get a fast forward
merge)
git push (syncs my master to my gitorious repository)
How to report program crashes¶
There are ways to get post-crash dumps but the straightforward way is:
qmake -r <options> Merkaartor.pro && make && make install
: This will build a stock merkaartor, without dependencies. <tt>GDAL=1 GEOIMAGE=1</tt> are common options (requiring gdal and exiv2 respectively - see [[Merkaartor/Compiling]]).
gdb merkaartor
run
If a crash occurs, gdb will stop where the signal occured. From there:
thread apply all bt full
and [http://merkaartor.be/projects/merkaartor/issues create a ticket] with the ouput.
'''or'''
Put these commands in a <tt>gdbcommand.txt</tt> file:
handle SIGPIPE nostop noprint
handle SIG33 nostop noprint
set logging on
set pagination off
run
thread apply all bt full
set logging off
run with:
gdb merkaartor -batch -q -x ./gdbcommands.txt
and attach the resulting <tt>./gdb.txt</tt>