Commit f8bf1b35 authored by Paul Eggert's avatar Paul Eggert

CONTRIBUTE cleanups and updates

* CONTRIBUTE: Mention URLs and info nodes more consistently,
avoiding possibly-confusing punctuation adjacent to a URL, and
giving full shell commands for 'info'.  Start with a brief but
complete how-to, for people who want to get started right away.
Then briefly discuss how to join the development process in the
typical order.  Omit needless words.  Update some of the
now-obsolete file names, info node names, and quoting styles.
Better document emacs-NN branches and how they are merged.
* admin/notes/git-workflow: Change emacs-24 to emacs-25,
and trunk to master.  This file still needs work.
parent f3aaca35
This diff is collapsed.
...@@ -19,17 +19,15 @@ Initial setup ...@@ -19,17 +19,15 @@ Initial setup
============= =============
Then we want to clone the repository. We normally want to have both Then we want to clone the repository. We normally want to have both
the current trunk and the emacs-24 branch. the current master and the emacs-25 branch.
mkdir ~/emacs mkdir ~/emacs
cd ~/emacs cd ~/emacs
git clone <membername>@git.sv.gnu.org:/srv/git/emacs.git git clone <membername>@git.sv.gnu.org:/srv/git/emacs.git master
mv emacs trunk (cd master; git config push.default current)
(cd trunk; git config push.default current) ./master/admin/git-new-workdir master emacs-25
./trunk/admin/git-new-workdir trunk emacs-24 cd emacs-25
cd emacs-24 git checkout emacs-25
git checkout emacs-24
git config push.default current
You now have both branches conveniently accessible, and you can do You now have both branches conveniently accessible, and you can do
"git pull" in them once in a while to keep updated. "git pull" in them once in a while to keep updated.
...@@ -59,13 +57,13 @@ you commit your change locally and then send a patch file as a bug report ...@@ -59,13 +57,13 @@ you commit your change locally and then send a patch file as a bug report
as described in ../../CONTRIBUTE. as described in ../../CONTRIBUTE.
Backporting to emacs-24 Backporting to emacs-25
======================= =======================
If you have applied a fix to the trunk, but then decide that it should If you have applied a fix to the master, but then decide that it should
be applied to the emacs-24 branch, too, then be applied to the emacs-25 branch, too, then
cd ~/emacs/trunk cd ~/emacs/master
git log git log
and find the commit you're looking for. Then find the commit ID, and find the commit you're looking for. Then find the commit ID,
...@@ -73,7 +71,7 @@ which will look like ...@@ -73,7 +71,7 @@ which will look like
commit 958b768a6534ae6e77a8547a56fc31b46b63710b commit 958b768a6534ae6e77a8547a56fc31b46b63710b
cd ~/emacs/emacs-24 cd ~/emacs/emacs-25
git cherry-pick -xe 958b768a6534ae6e77a8547a56fc31b46b63710b git cherry-pick -xe 958b768a6534ae6e77a8547a56fc31b46b63710b
and add "Backport:" to the commit string. Then and add "Backport:" to the commit string. Then
...@@ -81,17 +79,17 @@ and add "Backport:" to the commit string. Then ...@@ -81,17 +79,17 @@ and add "Backport:" to the commit string. Then
git push git push
Merging emacs-24 to trunk/master Merging emacs-25 to the master
================================ ==============================
It is recommended to use the file gitmerge.el in the admin directory It is recommended to use the file gitmerge.el in the admin directory
for merging 'emacs-24' into 'master'. It will take care of many for merging 'emacs-25' into 'master'. It will take care of many
things which would otherwise have to be done manually, like ignoring things which would otherwise have to be done manually, like ignoring
commits that should not land in master, fixing up ChangeLogs and commits that should not land in master, fixing up ChangeLogs and
automatically dealing with certain types of conflicts. If you really automatically dealing with certain types of conflicts. If you really
want to, you can do the merge manually, but then you're on your own. want to, you can do the merge manually, but then you're on your own.
If you still choose to do that, make absolutely sure that you *always* If you still choose to do that, make absolutely sure that you *always*
use the 'merge' command to transport commits from 'emacs-24' to use the 'merge' command to transport commits from 'emacs-25' to
'master'. *Never* use 'cherry-pick'! If you don't know why, then you 'master'. *Never* use 'cherry-pick'! If you don't know why, then you
shouldn't manually do the merge in the first place; just use shouldn't manually do the merge in the first place; just use
gitmerge.el instead. gitmerge.el instead.
...@@ -104,11 +102,11 @@ up-to-date by doing a pull. Then start Emacs with ...@@ -104,11 +102,11 @@ up-to-date by doing a pull. Then start Emacs with
emacs -l admin/gitmerge.el -f gitmerge emacs -l admin/gitmerge.el -f gitmerge
You'll be asked for the branch to merge, which will default to You'll be asked for the branch to merge, which will default to
'origin/emacs-24', which you should accept. Merging a local tracking 'origin/emacs-25', which you should accept. Merging a local tracking
branch is discouraged, since it might not be up-to-date, or worse, branch is discouraged, since it might not be up-to-date, or worse,
contain commits from you which are not yet pushed upstream. contain commits from you which are not yet pushed upstream.
You will now see the list of commits from 'emacs-24' which are not yet You will now see the list of commits from 'emacs-25' which are not yet
merged to 'master'. You might also see commits that are already merged to 'master'. You might also see commits that are already
marked for "skipping", which means that they will be merged with a marked for "skipping", which means that they will be merged with a
different merge strategy ('ours'), which will effectively ignore the different merge strategy ('ours'), which will effectively ignore the
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment