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>