aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/handbook/chapters/developer.texi70
1 files changed, 70 insertions, 0 deletions
diff --git a/doc/handbook/chapters/developer.texi b/doc/handbook/chapters/developer.texi
index 8b0085cce..9bb74c3de 100644
--- a/doc/handbook/chapters/developer.texi
+++ b/doc/handbook/chapters/developer.texi
@@ -689,6 +689,7 @@ Here you can find some rules to help you write code for GNUnet.
689@menu 689@menu
690* Naming conventions:: 690* Naming conventions::
691* Coding style:: 691* Coding style::
692* Commit messages and developer branches::
692@end menu 693@end menu
693 694
694@node Naming conventions 695@node Naming conventions
@@ -1093,6 +1094,75 @@ fun (short i,
1093 1094
1094@end itemize 1095@end itemize
1095 1096
1097@cindex Commit messages and developer branches
1098@node Commit messages and developer branches
1099@subsection Commit messages and developer branches
1100
1101You can find the GNUnet project repositories at @uref{https://git.gnunet.org}.
1102For each release, the ChangeLog file is generated from the commit history.
1103Hence, commit messages are required to convey what changes were made in
1104a self-contained fashion. Commit messages such as "fix" or "cleanup" are
1105not acceptable.
1106You commit message should ideally start with the subsystem name and be followed
1107by a succinct description of the change. Where applicable a reference to
1108a bug number in the bugtracker may also be included.
1109Example:
1110
1111@example
1112# <subsystem>: <description>. (#XXXX)
1113IDENTITY: Fix wrong key construction for anonymous ECDSA identity. (Fixes #12344)
1114@end example
1115
1116If you need to commit a minor fix you may prefix the commit message with a
1117dash. It will then be ignored when generating the ChangeLog entries:
1118
1119@example
1120# -<text>
1121-fix
1122@end example
1123
1124If you need to modify a commit you can do so using:
1125
1126@example
1127$ git commit --amend
1128@end example
1129
1130If you need to modify a number of successive commits you will have to rebase
1131and squash.
1132Note that most branches are protected. This means that you can only fix commits
1133as long as they are not pushed. You can only modify pushed commits in your own
1134developer branches.
1135
1136A developer branch is a branch which matches a developer-specific prefix.
1137As a developer with git access, you should have a git username. If you do not
1138know it, please ask an admin.
1139A developer branch has the format:
1140
1141@example
1142dev/<username>/<branchname>
1143@end example
1144
1145
1146Assuming the developer with username "jdoe" wants to create a new branch for an
1147i18n fix, the branch name could be:
1148
1149@example
1150dev/jdoe/i18n_fx
1151@end example
1152
1153The developer will be able to force push to and delete branches under his prefix.
1154It is highly recommended to work in your own developer branches.
1155Code which conforms to the commit message guidelines and coding style, is tested
1156and builds may be merged to the master branch.
1157Preferably, you would then...
1158
1159@itemize
1160@item ...squash your commits,
1161@item rebase to master and then
1162@item merge your branch.
1163@item (optional) Delete the branch.
1164@end itemize
1165
1096@c *********************************************************************** 1166@c ***********************************************************************
1097@node Build-system 1167@node Build-system
1098@section Build-system 1168@section Build-system