aboutsummaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
authorPaul Eggert2016-02-14 19:24:38 -0800
committerPaul Eggert2016-02-14 19:25:32 -0800
commitf8bf1b35bf55ae1bb7703f86d3b526887f064b19 (patch)
treef3aa83dbb5900d9cf65cc24e5eb1aceff3411264 /admin
parentf3aaca3552ba961d13cd1ee935c1c6b075f2398a (diff)
downloademacs-f8bf1b35bf55ae1bb7703f86d3b526887f064b19.tar.gz
emacs-f8bf1b35bf55ae1bb7703f86d3b526887f064b19.zip
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.
Diffstat (limited to 'admin')
-rw-r--r--admin/notes/git-workflow36
1 files changed, 17 insertions, 19 deletions
diff --git a/admin/notes/git-workflow b/admin/notes/git-workflow
index b6168c31bd5..2e4bbac70fe 100644
--- a/admin/notes/git-workflow
+++ b/admin/notes/git-workflow
@@ -19,17 +19,15 @@ Initial setup
19============= 19=============
20 20
21Then we want to clone the repository. We normally want to have both 21Then we want to clone the repository. We normally want to have both
22the current trunk and the emacs-24 branch. 22the current master and the emacs-25 branch.
23 23
24mkdir ~/emacs 24mkdir ~/emacs
25cd ~/emacs 25cd ~/emacs
26git clone <membername>@git.sv.gnu.org:/srv/git/emacs.git 26git clone <membername>@git.sv.gnu.org:/srv/git/emacs.git master
27mv emacs trunk 27(cd master; git config push.default current)
28(cd trunk; git config push.default current) 28./master/admin/git-new-workdir master emacs-25
29./trunk/admin/git-new-workdir trunk emacs-24 29cd emacs-25
30cd emacs-24 30git checkout emacs-25
31git checkout emacs-24
32git config push.default current
33 31
34You now have both branches conveniently accessible, and you can do 32You now have both branches conveniently accessible, and you can do
35"git pull" in them once in a while to keep updated. 33"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
59as described in ../../CONTRIBUTE. 57as described in ../../CONTRIBUTE.
60 58
61 59
62Backporting to emacs-24 60Backporting to emacs-25
63======================= 61=======================
64 62
65If you have applied a fix to the trunk, but then decide that it should 63If you have applied a fix to the master, but then decide that it should
66be applied to the emacs-24 branch, too, then 64be applied to the emacs-25 branch, too, then
67 65
68cd ~/emacs/trunk 66cd ~/emacs/master
69git log 67git log
70 68
71and find the commit you're looking for. Then find the commit ID, 69and find the commit you're looking for. Then find the commit ID,
@@ -73,7 +71,7 @@ which will look like
73 71
74commit 958b768a6534ae6e77a8547a56fc31b46b63710b 72commit 958b768a6534ae6e77a8547a56fc31b46b63710b
75 73
76cd ~/emacs/emacs-24 74cd ~/emacs/emacs-25
77git cherry-pick -xe 958b768a6534ae6e77a8547a56fc31b46b63710b 75git cherry-pick -xe 958b768a6534ae6e77a8547a56fc31b46b63710b
78 76
79and add "Backport:" to the commit string. Then 77and add "Backport:" to the commit string. Then
@@ -81,17 +79,17 @@ and add "Backport:" to the commit string. Then
81git push 79git push
82 80
83 81
84Merging emacs-24 to trunk/master 82Merging emacs-25 to the master
85================================ 83==============================
86 84
87It is recommended to use the file gitmerge.el in the admin directory 85It is recommended to use the file gitmerge.el in the admin directory
88for merging 'emacs-24' into 'master'. It will take care of many 86for merging 'emacs-25' into 'master'. It will take care of many
89things which would otherwise have to be done manually, like ignoring 87things which would otherwise have to be done manually, like ignoring
90commits that should not land in master, fixing up ChangeLogs and 88commits that should not land in master, fixing up ChangeLogs and
91automatically dealing with certain types of conflicts. If you really 89automatically dealing with certain types of conflicts. If you really
92want to, you can do the merge manually, but then you're on your own. 90want to, you can do the merge manually, but then you're on your own.
93If you still choose to do that, make absolutely sure that you *always* 91If you still choose to do that, make absolutely sure that you *always*
94use the 'merge' command to transport commits from 'emacs-24' to 92use the 'merge' command to transport commits from 'emacs-25' to
95'master'. *Never* use 'cherry-pick'! If you don't know why, then you 93'master'. *Never* use 'cherry-pick'! If you don't know why, then you
96shouldn't manually do the merge in the first place; just use 94shouldn't manually do the merge in the first place; just use
97gitmerge.el instead. 95gitmerge.el instead.
@@ -104,11 +102,11 @@ up-to-date by doing a pull. Then start Emacs with
104 emacs -l admin/gitmerge.el -f gitmerge 102 emacs -l admin/gitmerge.el -f gitmerge
105 103
106You'll be asked for the branch to merge, which will default to 104You'll be asked for the branch to merge, which will default to
107'origin/emacs-24', which you should accept. Merging a local tracking 105'origin/emacs-25', which you should accept. Merging a local tracking
108branch is discouraged, since it might not be up-to-date, or worse, 106branch is discouraged, since it might not be up-to-date, or worse,
109contain commits from you which are not yet pushed upstream. 107contain commits from you which are not yet pushed upstream.
110 108
111You will now see the list of commits from 'emacs-24' which are not yet 109You will now see the list of commits from 'emacs-25' which are not yet
112merged to 'master'. You might also see commits that are already 110merged to 'master'. You might also see commits that are already
113marked for "skipping", which means that they will be merged with a 111marked for "skipping", which means that they will be merged with a
114different merge strategy ('ours'), which will effectively ignore the 112different merge strategy ('ours'), which will effectively ignore the