Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Access to CVS



Bart wrote:
> I would greatly appreciate it if someone would generate a summary of the
> conclusions of this discussion with all the various "recommended" steps
> that one would perform, so that it could be added as a sort of how-to in
> Etc/zsh-development-guide.

Ok, how does this look?

The zsh patch archive doesn't exist any more does it?

Having prepared this with git, I realise that "git format-patch" doesn't
really fit with the way we're used to working. It produces full e-mail
headers with the expectation that the commit message forms the actual
body of the e-mail. It also uses [PATCH] instead of PATCH: though that's
minor. As with this message, we often include a patch in a reply. Should
we recommend something else?

> And then for everyone to agree with at least the general outline of that
> that summary, before we make the switch -- which I further think should
> wait until 5.0.1 has gone out.

Yes, waiting for 5.0.1 makes sense.

Oliver

diff --git a/Etc/zsh-development-guide b/Etc/zsh-development-guide
index db78f94..cf7ff1c 100644
--- a/Etc/zsh-development-guide
+++ b/Etc/zsh-development-guide
@@ -32,6 +32,7 @@ Patches
 -------
 
 * Send all patches to the mailing list rather than directly to me.
+  Use a Subject: line starting with "PATCH:".
 
 * Send only context diffs "diff -c oldfile newfile" or unified diffs
   "diff -u oldfile newfile".  They are much easier to read and
@@ -39,7 +40,7 @@ Patches
   intelligently.  Please make sure the filenames in the diff header
   are relative to the top-level directory of the zsh distribution; for
   example, it should say "Src/init.c" rather than "init.c" or
-  "zsh/Src/init.c".
+  "zsh/Src/init.c". Alternatively, use "git format-patch".
 
 * Please put only one bug fix or feature enhancement in a single patch and
   only one patch per mail message.  This helps me to multiplex the many
@@ -52,9 +53,37 @@ Patches
 * Please test your patch and make sure it applies cleanly. It takes
   considerably more time to manually merge a patch into the baseline code.
 
-* There is now a zsh patch archive.  To have your patches appear in the
-  archive, send them to the mailing list with a Subject: line starting
-  with "PATCH:".
+Git Workflow
+------------
+
+* To allow changesets to be cross-referenced between the mailing list
+  archives and version control history, commit messages should start with
+  the mailing list sequence number. This number is generated by the list
+  server and inserted as an X-Seq: header field in the e-mail. To add
+  the number, you can use "git commit --amend" to change the commit.
+
+* Do not merge your private feature branches onto the master branch: a
+  linear history without merge commits is simpler to follow (and to
+  bisect). Both "git cherry-pick" and "git merge --ff-only" can be used
+  bring changes over to another branch without a merge commit.
+
+* It is often useful to regularly check in changes while prototyping a
+  solution on a private branch. When finished, it is better to deliver a
+  clean history. For small changes, use "git merge --squash" to get a
+  single changeset for the feature. Where a change can be logically
+  divided into separate changesets use "git rebase -i master" from the
+  feature branch and squash your many intermediate steps into
+  appropriate changesets that each do something meaningful. Post each
+  changeset separately to the mailing list.
+
+* Before pushing your changes to the main zsh repository, you can use
+  "git pull --rebase" to fetch any new updates from the server and
+  rebase your changes on top of them. You can also use "git rebase
+  master" from your feature branches.
+
+* Patches can be prepared for the mailing list with "git format-patch
+  origin/master". To apply patches from a mailing list message, you can
+  use "git am".
 
 Testing
 -------



Messages sorted by: Reverse Date, Date, Thread, Author