Rebuild developer-manual and tidy with 'HTML Tidy for FreeBSD version 5.8.0'
[privoxy.git] / doc / webserver / developer-manual / git.html
index 8360a0a..e9c8d75 100644 (file)
       <p>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.</p>
+      <p>Before pushing stuff, please rebase it on a current master so we get an uncomplicated commit history. Avoid
+      merges where possible.</p>
+      <p>Here's an example git sesssion that should result in a merge-free history:</p>
+      <table border="0" bgcolor="#E0E0E0" width="100%">
+        <tr>
+          <td>
+            <pre class="PROGRAMLISTING">  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.</pre>
+          </td>
+        </tr>
+      </table>
       <p>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.</p>
     </div>
         </li>
         <li>
           <p>Note that near a major public release, we get more cautious. There is always the possibility to submit a
-          patch to the <a href="https://sourceforge.net/p/ijbswa/patches/" target="_top">patch tracker</a> instead.</p>
+          patch to the <a href="https://sourceforge.net/p/ijbswa/patches/" target="_top">patch tracker</a> or the
+          <a href="https://lists.privoxy.org/mailman/listinfo/privoxy-devel" target="_top">privoxy-devel mailing
+          list</a> instead.</p>
         </li>
       </ul>
     </div>