Home - psjw12/gitextensions GitHub Wiki
User documentation is available in the online manual. This wiki is primarily about maintaining the application.
If you wish to contribute to the project, please familiarise yourself with the following guidelines.
Coding guide
- Follow the Coding Style
- Follow the Coding Patterns
- Minimal supported Git version is 2.9, you should have this in mind when adding new features
- Reuse UserControls before implementing things twice
- Make sure your change doesn't introduce compiler warnings
- When creating new Forms/Controls, take care of scalability and resisability (use layout managers).
Committing
Your pull-request should contain a single functional self-contained change, that can be easily reasoned about and that can be reverted, if necessary. On occasion a pull-request may contain additional non-functional commits which are necessary for or complimentary to the change. E.g.
commit1: update packages (non functional)
commit2: make the real change (functional)
commit3: code maintenance/refactor (non functional)
It is perfectly acceptable to make a lot of small commits until the work is done and approved, but be ready to squash and rebase, if necessary.
Put yourself in shoes of reviewers and your fellow developers - no one really cares that it took another developer 57 commits to deliver his/her change, that they fixed typos or responded to reviews 29 times, reworked the implementation 22 times and fixed unit tests 6 times? All you care the change is done and delivered.
Updating the Documentation
If you wish to help maintain the documentation, then please see the following links for further information.
- Overview: an overview of how the repository is organised and documentation is created.
- Current Release: how to update the documentation for the currently released version of Git Extensions.
- Future Release: how to update the documentation for future versions of Git Extensions. This is for the developers of Git Extensions who are adding new features or bug fixes that will be released at some future date
How to create the installer
- Run
Setup\BuildInstallers.cmd
to build the installers