X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=doc%2Fwebserver%2Fdeveloper-manual%2Fgit.html;h=e9c8d75578101b6137d0cbfa9cb090afa50eeeda;hp=8360a0a291b20f02ac589713f604ca9949e1705b;hb=61a5d3fc15169d9f6b0c21e3a56d893f4d672eb4;hpb=b4344e15e73113aedc2c1cf3ffa9e204f66d84a6;ds=sidebyside diff --git a/doc/webserver/developer-manual/git.html b/doc/webserver/developer-manual/git.html index 8360a0a2..e9c8d755 100644 --- a/doc/webserver/developer-manual/git.html +++ b/doc/webserver/developer-manual/git.html @@ -48,6 +48,60 @@

Whilst the central repository contains only the master branch, developers are of course free to create branches in their local repositories as they develop features, fixes, or update the target-dependent tools. Only once such changes are fully tested ought they be pushed back to the central repository master branch.

+

Before pushing stuff, please rebase it on a current master so we get an uncomplicated commit history. Avoid + merges where possible.

+

Here's an example git sesssion that should result in a merge-free history:

+ + + + +
+
  fk@t520 ~/git/privoxy $git checkout master
+  Switched to branch 'master'
+  Your branch is up to date with 'origin/master'.
+  # Make sure you have the latest changes
+  fk@t520 ~/git/privoxy $git pull
+  Already up to date.
+  # Create a local banch for changes
+  fk@t520 ~/git/privoxy $git checkout -b local-branch
+  Switched to a new branch 'local-branch'
+  # Create some change
+  fk@t520 ~/git/privoxy $gmake dok dok-tidy
+  [...]
+  # Review your change
+  fk@t520 ~/git/privoxy $git diff
+  [...]
+  # Commit your changes if they look goood
+  fk@t520 ~/git/privoxy $git commit -m "developer-manual: Regenerate" doc/webserver/
+  [local-branch 1abb7316] developer-manual: Regenerate
+   1 file changed, 2 insertions(+), 2 deletions(-)
+  # Review your commit
+  fk@t520 ~/git/privoxy $git show
+  [...]
+  # Go to the master branch
+  fk@t520 ~/git/privoxy $git checkout master
+  Switched to branch 'master'
+  Your branch is up to date with 'origin/master'.
+  # Make sure you are still in sync
+  fk@t520 ~/git/privoxy $git pull
+  [...]
+  Already up to date.
+  # Apply the commit you made to the local-branch
+  fk@t520 ~/git/privoxy $git cherry-pick local-branch
+  [master 046e85e2] developer-manual: Regenerate
+   Date: Tue Dec 15 05:10:07 2020 +0100
+   1 file changed, 2 insertions(+), 2 deletions(-)
+  # Make sure the history looks as expected
+  fk@t520 ~/git/privoxy $git log -p
+  # Finally push your change to the Privoxy repository
+  fk@t520 ~/git/privoxy $git push
+  [...]
+  # Go back to the local branch
+  fk@t520 ~/git/privoxy $git checkout local-branch
+  # Rebase on top of master and continue hacking
+  fk@t520 ~/git/privoxy $git rebase master
+  Successfully rebased and updated refs/heads/local-branch.
+

At one time there were two distinct branches: stable and unstable. The more drastic changes were to be in the unstable branch. These branches have now been merged to minimize time and effort of maintaining two branches.

@@ -81,7 +135,9 @@
  • Note that near a major public release, we get more cautious. There is always the possibility to submit a - patch to the patch tracker instead.

    + patch to the patch tracker or the + privoxy-devel mailing + list instead.