# Making a patch¶

You’ve discovered a bug or something else you want to change in ndlib .. - excellent!

You’ve worked out a way to fix it - even better!

You want to tell us about it - best of all!

The easiest way is to make a patch or set of patches. Here we explain how.

## Making patches¶

### Overview¶

# tell git who you are
git config --global user.email you@yourdomain.example.com
git config --global user.name "Your Name Comes Here"
# get the repository if you don't have it
git clone git://github.com/GiulioRossetti/ndlib.git
# make a branch for your patching
cd networkx
git branch the-fix-im-thinking-of
git checkout the-fix-im-thinking-of
# hack, hack, hack
# commit work in progress as you go
git commit -am 'BF - added tests for Funny bug'
# hack hack, hack
git commit -am 'BF - added fix for Funny bug'
# make the patch files
git format-patch -M -C master


Then, open an issue on the projetc GitHub and attach the generated patch files.

### In detail¶

1. Tell git who you are so it can label the commits you’ve made:

git config --global user.email you@yourdomain.example.com
git config --global user.name "Your Name Comes Here"

2. If you don’t already have one, clone a copy of the ndlib repository:

git clone git://github.com/GiulioRossetti/ndlib.git
cd networkx

3. Make a ‘feature branch’. This will be where you work on your bug fix. It’s nice and safe and leaves you with access to an unmodified copy of the code in the main branch:

git branch the-fix-im-thinking-of
git checkout the-fix-im-thinking-of

4. Do some edits, and commit them as you go:

# hack, hack, hack
# commit work in progress as you go
git commit -am 'BF - added tests for Funny bug'
# hack hack, hack
git commit -am 'BF - added fix for Funny bug'


Note the -am options to commit. The m flag just signals that you’re going to type a message on the command line.

5. When you have finished, check you have committed all your changes:

git status

6. Finally, make your commits into patches. You want all the commits since you branched from the master branch:

git format-patch -M -C master


You will now have several files named for the commits:

0001-BF-added-tests-for-Funny-bug.patch

When you are done, to switch back to the main copy of the code, just return to the master branch:
git checkout master