Developing a new feature can be easier once you have commit access to the repo. First, create a new branch to hold your feature:
$ git checkout master Start from master $ git pull Be sure to be up to date $ git checkout -b feature/python Create and switch to a new branch
Now, you can develop as normal, adding new files if necessary (such as new tests), modifying code, updating the ChangeLog and documentation, and so on.
You can share changes with the mailing list as diffs, as usual. However, especially for a large feature, it would be better to push your branch up to Savannah. Then, everyone else can simply pull it down to their local systems and review your changes at their leisure.
To push your branch up initially:
$ git diff Review your changes $ git add … Add any files for committing $ git commit Commit the files with a commit message $ git push -u origin feature/python Push the branch up to the repo
When you use ‘push -u origin’, Git helpfully converts your purely local branch into a tracking branch. It becomes as if the branch had originated from the upstream repo and you checked it out locally.
You only need to do ‘git push -u origin’ once. As you continue to work on your branch, the workflow simplifies into this:
$ git diff Review your changes $ git add … Add any files for committing $ git commit Commit the files $ git push Push your changes to the branch upstream