diff options
| author | Paul Eggert | 2016-02-14 19:24:38 -0800 |
|---|---|---|
| committer | Paul Eggert | 2016-02-14 19:25:32 -0800 |
| commit | f8bf1b35bf55ae1bb7703f86d3b526887f064b19 (patch) | |
| tree | f3aa83dbb5900d9cf65cc24e5eb1aceff3411264 /admin/notes/git-workflow | |
| parent | f3aaca3552ba961d13cd1ee935c1c6b075f2398a (diff) | |
| download | emacs-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/notes/git-workflow')
| -rw-r--r-- | admin/notes/git-workflow | 36 |
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 | ||
| 21 | Then we want to clone the repository. We normally want to have both | 21 | Then we want to clone the repository. We normally want to have both |
| 22 | the current trunk and the emacs-24 branch. | 22 | the current master and the emacs-25 branch. |
| 23 | 23 | ||
| 24 | mkdir ~/emacs | 24 | mkdir ~/emacs |
| 25 | cd ~/emacs | 25 | cd ~/emacs |
| 26 | git clone <membername>@git.sv.gnu.org:/srv/git/emacs.git | 26 | git clone <membername>@git.sv.gnu.org:/srv/git/emacs.git master |
| 27 | mv 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 | 29 | cd emacs-25 |
| 30 | cd emacs-24 | 30 | git checkout emacs-25 |
| 31 | git checkout emacs-24 | ||
| 32 | git config push.default current | ||
| 33 | 31 | ||
| 34 | You now have both branches conveniently accessible, and you can do | 32 | You 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 | |||
| 59 | as described in ../../CONTRIBUTE. | 57 | as described in ../../CONTRIBUTE. |
| 60 | 58 | ||
| 61 | 59 | ||
| 62 | Backporting to emacs-24 | 60 | Backporting to emacs-25 |
| 63 | ======================= | 61 | ======================= |
| 64 | 62 | ||
| 65 | If you have applied a fix to the trunk, but then decide that it should | 63 | If you have applied a fix to the master, but then decide that it should |
| 66 | be applied to the emacs-24 branch, too, then | 64 | be applied to the emacs-25 branch, too, then |
| 67 | 65 | ||
| 68 | cd ~/emacs/trunk | 66 | cd ~/emacs/master |
| 69 | git log | 67 | git log |
| 70 | 68 | ||
| 71 | and find the commit you're looking for. Then find the commit ID, | 69 | and find the commit you're looking for. Then find the commit ID, |
| @@ -73,7 +71,7 @@ which will look like | |||
| 73 | 71 | ||
| 74 | commit 958b768a6534ae6e77a8547a56fc31b46b63710b | 72 | commit 958b768a6534ae6e77a8547a56fc31b46b63710b |
| 75 | 73 | ||
| 76 | cd ~/emacs/emacs-24 | 74 | cd ~/emacs/emacs-25 |
| 77 | git cherry-pick -xe 958b768a6534ae6e77a8547a56fc31b46b63710b | 75 | git cherry-pick -xe 958b768a6534ae6e77a8547a56fc31b46b63710b |
| 78 | 76 | ||
| 79 | and add "Backport:" to the commit string. Then | 77 | and add "Backport:" to the commit string. Then |
| @@ -81,17 +79,17 @@ and add "Backport:" to the commit string. Then | |||
| 81 | git push | 79 | git push |
| 82 | 80 | ||
| 83 | 81 | ||
| 84 | Merging emacs-24 to trunk/master | 82 | Merging emacs-25 to the master |
| 85 | ================================ | 83 | ============================== |
| 86 | 84 | ||
| 87 | It is recommended to use the file gitmerge.el in the admin directory | 85 | It is recommended to use the file gitmerge.el in the admin directory |
| 88 | for merging 'emacs-24' into 'master'. It will take care of many | 86 | for merging 'emacs-25' into 'master'. It will take care of many |
| 89 | things which would otherwise have to be done manually, like ignoring | 87 | things which would otherwise have to be done manually, like ignoring |
| 90 | commits that should not land in master, fixing up ChangeLogs and | 88 | commits that should not land in master, fixing up ChangeLogs and |
| 91 | automatically dealing with certain types of conflicts. If you really | 89 | automatically dealing with certain types of conflicts. If you really |
| 92 | want to, you can do the merge manually, but then you're on your own. | 90 | want to, you can do the merge manually, but then you're on your own. |
| 93 | If you still choose to do that, make absolutely sure that you *always* | 91 | If you still choose to do that, make absolutely sure that you *always* |
| 94 | use the 'merge' command to transport commits from 'emacs-24' to | 92 | use 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 |
| 96 | shouldn't manually do the merge in the first place; just use | 94 | shouldn't manually do the merge in the first place; just use |
| 97 | gitmerge.el instead. | 95 | gitmerge.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 | ||
| 106 | You'll be asked for the branch to merge, which will default to | 104 | You'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 |
| 108 | branch is discouraged, since it might not be up-to-date, or worse, | 106 | branch is discouraged, since it might not be up-to-date, or worse, |
| 109 | contain commits from you which are not yet pushed upstream. | 107 | contain commits from you which are not yet pushed upstream. |
| 110 | 108 | ||
| 111 | You will now see the list of commits from 'emacs-24' which are not yet | 109 | You will now see the list of commits from 'emacs-25' which are not yet |
| 112 | merged to 'master'. You might also see commits that are already | 110 | merged to 'master'. You might also see commits that are already |
| 113 | marked for "skipping", which means that they will be merged with a | 111 | marked for "skipping", which means that they will be merged with a |
| 114 | different merge strategy ('ours'), which will effectively ignore the | 112 | different merge strategy ('ours'), which will effectively ignore the |