aboutsummaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
authorStephen Leake2014-12-06 02:11:36 -0600
committerStephen Leake2014-12-06 02:38:34 -0600
commit06264b3d247b21be627d1bcd7d928cd3140d249a (patch)
treed47798b293468d4a60a185f4c62e2cda64601627 /admin
parent7841e9348276c076eb6be26683ee25f0e0db4706 (diff)
downloademacs-06264b3d247b21be627d1bcd7d928cd3140d249a.tar.gz
emacs-06264b3d247b21be627d1bcd7d928cd3140d249a.zip
Improve CONTRIBUTE and related files.
* CONTRIBUTE: improve; add explicit web references, move some info from admin/notes/* here. * INSTALL.REPO: You can't "just run make" after a clean checkout. * admin/notes/commits: deleted; merged into ./CONTRIBUTE * admin/notes/repo: move commit, branch info into ./CONTRIBUTE
Diffstat (limited to 'admin')
-rw-r--r--admin/notes/commits70
-rw-r--r--admin/notes/repo92
2 files changed, 0 insertions, 162 deletions
diff --git a/admin/notes/commits b/admin/notes/commits
deleted file mode 100644
index f33c6905d4c..00000000000
--- a/admin/notes/commits
+++ /dev/null
@@ -1,70 +0,0 @@
1HOW TO COMMIT CHANGES TO EMACS
2
3Most of these points are from:
4
5http://lists.gnu.org/archive/html/emacs-devel/2009-03/msg00555.html
6From: Miles Bader
7Subject: commit style redux
8Date: Tue, 31 Mar 2009 12:21:20 +0900
9
10(0) Each commit should correspond to a single change (whether spread
11 over multiple files or not). Do not mix different changes in the
12 same commit (eg adding a feature in one file, fixing a bug in
13 another should be two commits, not one).
14
15(1) Commit all changed files at once with a single log message (which
16 in CVS will result in an identical log message for all committed
17 files), not one-by-one. This is pretty easy using vc-dir now.
18
19(2) Make the log message describe the entire changeset, perhaps
20 including relevant changelog entries (I often don't bother with
21 the latter if it's a trivial sort of change).
22
23 Many modern source-control systems vaguely distinguish the first
24 line of the log message to use as a short summary for abbreviated
25 history listing (in arch this was explicitly called the summary,
26 but many other systems have a similar concept). So it's nice if
27 you can format the log entry like:
28
29 SHORTISH ONE-LINE SUMMARY
30
31 MULTIPLE-LINE DETAILED DESCRIPTION POSSIBLY INCLUDING (OR
32 CONSISTING OF) CHANGELOG ENTRIES
33
34 [Even with CVS this style is useful, because web CVS browsing
35 interfaces often include the first N words of the log message of
36 the most recent commit as a short "most recent change"
37 description.]
38
39(3) Don't phrase log messages assuming the filename is known, because
40 in non-file-oriented systems (everything modern other than CVS),
41 the log listing tends to be treated as global information, and the
42 connection with specific files is less explicit.
43
44 For instance, currently I often see log messages like "Regenerate";
45 for modern source-control systems with a global log, it's better to
46 have something like "Regenerate configure".
47
48(4) (Added in 2014) In commit comments, and ChangeLog files, it is best
49 to use ways of identifying revisions that are not dependent on a
50 particular version control system. (At time of writing Emacs is
51 about to move to its fourth VCS and another move in the future is
52 not impossible.) An excellent way to identify commits is by
53 quoting their summary line. Another is with an action stamp - an
54 RFC3339 date followed by ! followed by the committer's email - for
55 example, "2014-01-16T05:43:35Z!esr@thyrsus.com". Often, "my
56 previous commit" will suffice.
57
58Followup discussion:
59http://lists.gnu.org/archive/html/emacs-devel/2010-01/msg00897.html
60http://lists.gnu.org/archive/html/emacs-devel/2010-02/msg00401.html
61
62
63PREVIOUS GUIDELINES FOR CVS
64
65For historical interest only, here is the old-style advice for CVS logs:
66http://lists.gnu.org/archive/html/emacs-devel/2007-12/msg01208.html
67
68From: Eli Zaretskii
69Subject: Re: Log messages in CVS
70Date: Sat, 29 Dec 2007 16:06:29 +0200
diff --git a/admin/notes/repo b/admin/notes/repo
index 97b4349ed65..2d4cc2a55cf 100644
--- a/admin/notes/repo
+++ b/admin/notes/repo
@@ -1,70 +1,5 @@
1NOTES ON COMMITTING TO EMACS'S REPOSITORY -*- outline -*- 1NOTES ON COMMITTING TO EMACS'S REPOSITORY -*- outline -*-
2 2
3* Commit metainformation
4
5** Commit in the author's name
6
7If installing changes written by someone else, commit them in their
8name, not yours.
9
10** Commit message format
11
12Commit messages should follow the conventions used in all modern
13distributed version-control systems. That is, they should consist of
14
15- A self-contained topic line, preferably no more than 75 chars long.
16
17- If other content follows the topic line, there should be a blank
18 line separating the two.
19
20- Follow the blank line with ChangeLog-like entries for the specific
21 changes you made, if any. (As long as Emacs maintains ChangeLog
22 files, just copy the entries you made in them to the commit message
23 after the blank line.)
24
25- Preferred form for several entries with the same content:
26
27 * help.el (view-lossage):
28 * kmacro.el (kmacro-edit-lossage):
29 * edmacro.el (edit-kbd-macro): Fix docstring, lossage is now 300 keys.
30
31 (Rather than anything involving "ditto" and suchlike.)
32
33- Emacs generally follows the GNU coding standards when it comes to ChangeLogs:
34 http://www.gnu.org/prep/standards/html_node/Change-Logs.html
35 One exception is that we still sometimes quote `like-this' (as the
36 standards used to recommend) rather than 'like-this' (as they do now),
37 because `...' is so widely used elsewhere in Emacs.
38 http://lists.gnu.org/archive/html/emacs-devel/2014-05/msg00514.html
39
40** Unnecessary metainformation
41
42There is no need to make separate change log entries for files such as
43NEWS, MAINTAINERS, and FOR-RELEASE, or to indicate regeneration of
44files such as 'configure'. "There is no need" means you don't have
45to, but you can if you want to.
46
47* Commit to the right branch
48
49Development normally takes places on the trunk.
50Sometimes specialized features are developed on separate branches
51before possibly being merged to the trunk.
52
53Development is discussed on the emacs-devel mailing list.
54
55Sometime before the release of a new major version of Emacs
56a "feature freeze" is imposed on the trunk. No new features may be
57added after this point. This is usually some months before the release.
58
59Shortly before the release, a release branch is created, and the
60trunk is then free for development.
61
62For example, "emacs-23" for Emacs 23.2 and later, "EMACS_23_1_RC" for
6323.1, "EMACS_22_BASE" for 22.x, and "EMACS_21_1_RC" for 21.x.
64
65Consult emacs-devel for exactly what kinds of changes are allowed
66on what branch at any time.
67
68** elpa 3** elpa
69 4
70This branch does not contain a copy of Emacs, but of the Emacs Lisp 5This branch does not contain a copy of Emacs, but of the Emacs Lisp
@@ -72,25 +7,6 @@ package archive (elpa.gnu.org). See admin/notes/elpa for further
72explanation, and the README file in the branch for usage 7explanation, and the README file in the branch for usage
73instructions. 8instructions.
74 9
75* Install changes only on one branch, let them get merged elsewhere if needed.
76
77In particular, install bug-fixes only on the release branch (if there
78is one) and let them get synced to the trunk; do not install them by
79hand on the trunk as well. E.g. if there is an active "emacs-24" branch
80and you have a bug-fix appropriate for the next emacs-24.x release,
81install it only on the emacs-24 branch, not on the trunk as well.
82
83Installing things manually into more than one branch makes merges more
84difficult.
85
86http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01124.html
87
88The exception is, if you know that the change will be difficult to
89merge to the trunk (eg because the trunk code has changed a lot).
90In that case, it's helpful if you can apply the change to both trunk
91and branch yourself (when committing the branch change, indicate
92in the commit log that it should not be merged to the trunk; see below).
93
94* Installing changes from your personal branches. 10* Installing changes from your personal branches.
95 11
96If your branch has only a single commit, or many different real 12If your branch has only a single commit, or many different real
@@ -129,14 +45,6 @@ variable in admin/merge-gnulib before running it.
129If you remove a gnulib module, or if a gnulib module 45If you remove a gnulib module, or if a gnulib module
130removes a file, then remove the corresponding files by hand. 46removes a file, then remove the corresponding files by hand.
131 47
132* Backporting a bug-fix from the trunk to a branch (e.g. "emacs-24").
133
134Indicate in the commit log that there is no need to merge the commit
135to the trunk, e.g. start the commit message with "Backport:". This is
136helpful for the person merging the release branch to the trunk.
137
138http://lists.gnu.org/archive/html/emacs-devel/2010-05/msg00262.html
139
140* How to merge changes from emacs-24 to trunk 48* How to merge changes from emacs-24 to trunk
141 49
142[The section on git merge procedure has not yet been written] 50[The section on git merge procedure has not yet been written]