Difference between revisions of "Commit guidelines"

From Navit's Wiki
Jump to: navigation, search
m
(Commit per feature)
Line 7: Line 7:
 
Core components include data structures, configuration handling. If you are unsure, just ask.
 
Core components include data structures, configuration handling. If you are unsure, just ask.
  
===Commit per file===
+
===Commit per feature===
Avoid committing a whole folder, especially navit's sourcecode root. It would almost always update timestamps in the translations files, and generate a lot of useless commit log entries. So, as a general guideline, commit each needed file namely.
+
When committing, try to have one commit per feature (or per meaningful part of a larger feature). The goal is to always have working code; at least make sure each commit leaves the repository in a compilable state.
 +
 
 +
Also avoid putting multiple, independent changes into one commit.
 +
Thus if you have multiple, independent changes in your local working copy, avoid committing a whole folder at once, especially Navit's sourcecode root. Instead, explicitly select the files for each commit.
  
 
===Format of the commit log===
 
===Format of the commit log===

Revision as of 19:55, 25 December 2011

Here are the current guidelines if you want to commit something. Please also read Programming guidelines

'Core' components changes

Do not modify a 'core' component without discussing it first with the project leads.

Core components include data structures, configuration handling. If you are unsure, just ask.

Commit per feature

When committing, try to have one commit per feature (or per meaningful part of a larger feature). The goal is to always have working code; at least make sure each commit leaves the repository in a compilable state.

Also avoid putting multiple, independent changes into one commit. Thus if you have multiple, independent changes in your local working copy, avoid committing a whole folder at once, especially Navit's sourcecode root. Instead, explicitly select the files for each commit.

Format of the commit log

Since we are too lazy to maintain a changelog, we have a script which parses the commit logs and generate a changelog for us.

We have agreed about using the following syntax :

<Action>:<component>:<log message>[|Optionnal comments]

Examples :

Fix:Core:Fixed nasty bug in ticket #134
Fix:GTK:Fixed nasty bug about destination button|Thanks someguy for the patch!

Action can be something like:

  • Fix
  • Add
  • Patch

It allows the changes to be sorted by categories

Component is the component field in the bug tracker. The most common are :

  • core
  • gui/gtk
  • gui/internal
  • graphics/gtk
  • graphics/qt_qpainter
  • graphics/opengl
  • mapdriver
  • tools

...

The comment part is optionnal. Useful for when applying a patch for example, and giving credits. The part after | will not appear in the wiki.


About the log message, it's up to you :)