diff options
| author | Bill Wohler | 2013-02-18 10:11:43 -0800 |
|---|---|---|
| committer | Bill Wohler | 2013-02-18 10:11:43 -0800 |
| commit | 21733e4f154f8830fa568a347a0d6dbd59793c2b (patch) | |
| tree | 3170dbbcdfafeb42f6c381d6b80b251e9f31b788 /admin/notes | |
| parent | 6d14beddb06b5ae86f9dd770a1661ebd24846f28 (diff) | |
| parent | 587feed443522f738b65b57b22a31cc8a25525c5 (diff) | |
| download | emacs-21733e4f154f8830fa568a347a0d6dbd59793c2b.tar.gz emacs-21733e4f154f8830fa568a347a0d6dbd59793c2b.zip | |
Merge from trunk; up to 2013-02-18T01:30:27Z!monnier@iro.umontreal.ca.
Diffstat (limited to 'admin/notes')
| -rw-r--r-- | admin/notes/bzr | 114 | ||||
| -rw-r--r-- | admin/notes/copyright | 2 | ||||
| -rw-r--r-- | admin/notes/font-backend | 2 | ||||
| -rw-r--r-- | admin/notes/lel-TODO | 2 | ||||
| -rw-r--r-- | admin/notes/multi-tty | 2 | ||||
| -rw-r--r-- | admin/notes/unicode | 2 |
6 files changed, 119 insertions, 5 deletions
diff --git a/admin/notes/bzr b/admin/notes/bzr index 50eaf3710ee..f35ff95f9d6 100644 --- a/admin/notes/bzr +++ b/admin/notes/bzr | |||
| @@ -182,6 +182,71 @@ where revision N+1 is the one where file was removed. | |||
| 182 | You could also try `bzr add --file-ids-from', if you have a copy of | 182 | You could also try `bzr add --file-ids-from', if you have a copy of |
| 183 | another branch where file still exists. | 183 | another branch where file still exists. |
| 184 | 184 | ||
| 185 | * Undoing a commit (uncommitting) | ||
| 186 | |||
| 187 | It is possible to undo/remove a bzr commit (ie, to uncommit). | ||
| 188 | Only do this if you really, really, need to. For example, if you | ||
| 189 | somehow made a commit that triggers a bug in bzr itself. | ||
| 190 | Don't do it because you made a typo in a commit or the log. | ||
| 191 | |||
| 192 | If you do need to do this, do it as soon as possible, because the | ||
| 193 | longer you leave it, the more work is involved. | ||
| 194 | |||
| 195 | 0. First, tell emacs-devel that you are going to do this, and suggest | ||
| 196 | people not commit anything to the affected branch for the duration. | ||
| 197 | |||
| 198 | In the following, replace USER with your Savannah username, and | ||
| 199 | BRANCH with the name of the branch. | ||
| 200 | Let's assume that revno 100 is the bad commit, and that there have | ||
| 201 | been two more commits after that (because nothing is ever easy). | ||
| 202 | |||
| 203 | 1. Ensure your copy of the branch is up-to-date (for a bound | ||
| 204 | branch, bzr up; for an unbound branch, bzr pull) and has no local | ||
| 205 | changes (bzr st). | ||
| 206 | |||
| 207 | 2. Make a record of the commits you are going to undo: | ||
| 208 | bzr diff -c 102 > /tmp/102.diff | ||
| 209 | etc | ||
| 210 | |||
| 211 | Also record the commit message, author, and any --fixes information. | ||
| 212 | |||
| 213 | 3. Most Emacs branches are set up to prevent just this kind of thing. | ||
| 214 | So we need to disable that protection: | ||
| 215 | |||
| 216 | bzr config append_revisions_only=False \ | ||
| 217 | -d bzr+ssh://USER@bzr.savannah.gnu.org/emacs/BRANCH/ | ||
| 218 | |||
| 219 | 4. Undo the commits: | ||
| 220 | bzr uncommit -r -4 | ||
| 221 | |||
| 222 | This will show the commits it is going to undo, and prompt you to confirm. | ||
| 223 | |||
| 224 | 5. If using an unbound branch: | ||
| 225 | bzr push --overwrite | ||
| 226 | |||
| 227 | 6. Now, replay the commits you just undid (obviously, fix whatever it | ||
| 228 | was in the bad commit that caused the problem): | ||
| 229 | |||
| 230 | patch -p0 < /tmp/100.diff | ||
| 231 | bzr commit --author ... --fixes ... -F /tmp/100.log | ||
| 232 | etc | ||
| 233 | |||
| 234 | 7. If using an unbound branch: | ||
| 235 | bzr push | ||
| 236 | |||
| 237 | 8. Finally, re-enable the branch protection: | ||
| 238 | bzr config append_revisions_only=True \ | ||
| 239 | -d bzr+ssh://USER@bzr.savannah.gnu.org/emacs/BRANCH/ | ||
| 240 | |||
| 241 | 9. Tell emacs-devel that it is ok to use the branch again. | ||
| 242 | Anyone with local changes should back them up before doing anything. | ||
| 243 | |||
| 244 | For a bound branch, bzr up will convert any of the undone commits to a | ||
| 245 | pending merge. Just bzr revert these away. | ||
| 246 | |||
| 247 | For an unbound branch, bzr pull will complain about diverged branches | ||
| 248 | and refuse to do anything. Use bzr pull --overwrite. | ||
| 249 | |||
| 185 | * Loggerhead | 250 | * Loggerhead |
| 186 | 251 | ||
| 187 | Loggerhead is the bzr tool for viewing a repository over http (similar | 252 | Loggerhead is the bzr tool for viewing a repository over http (similar |
| @@ -202,3 +267,52 @@ For example, on RHEL6 I needed: | |||
| 202 | yum --enablerepo=epel install python-simpletal | 267 | yum --enablerepo=epel install python-simpletal |
| 203 | 268 | ||
| 204 | Then point your web-browser to http://127.0.0.1:8080/ . | 269 | Then point your web-browser to http://127.0.0.1:8080/ . |
| 270 | |||
| 271 | * Bisecting | ||
| 272 | |||
| 273 | This is a semi-automated way to find the revision that introduced a bug. | ||
| 274 | |||
| 275 | First, get the bzr bisect plugin if you do not have it already: | ||
| 276 | |||
| 277 | cd ~/.bazaar/plugins | ||
| 278 | bzr branch lp:bzr-bisect bisect | ||
| 279 | |||
| 280 | `bzr help bisect' should work now. | ||
| 281 | |||
| 282 | It's probably simplest to make a new copy of the branch to work in | ||
| 283 | from this point onwards. | ||
| 284 | |||
| 285 | Identify the last known "good" revision where the relevant issue is | ||
| 286 | NOT present (e.g. maybe Emacs 24.1). Let's say this is revision 1000. | ||
| 287 | |||
| 288 | bzr bisect start | ||
| 289 | bzr bisect no -r 1000 | ||
| 290 | |||
| 291 | At this point, bzr will switch to the mid-point of revision 1000 and | ||
| 292 | the current revision. If you know that the issue was definitely | ||
| 293 | present in some specific revision (say 2000), you can use: | ||
| 294 | |||
| 295 | bzr bisect yes -r 2000 | ||
| 296 | |||
| 297 | Now bzr switches to revision 1500. | ||
| 298 | |||
| 299 | Now test whether the issue is present. You might need to rebuild | ||
| 300 | Emacs to do this, or if you know the problem is in a specific Lisp | ||
| 301 | file, you might be able to get away with just loading that one file in | ||
| 302 | current Emacs. | ||
| 303 | |||
| 304 | If the issue is present, use | ||
| 305 | |||
| 306 | bzr bisect yes | ||
| 307 | |||
| 308 | If it is not, use | ||
| 309 | |||
| 310 | bzr bisect no | ||
| 311 | |||
| 312 | Repeat until you zero-in on the specific revision. | ||
| 313 | |||
| 314 | When finished, use | ||
| 315 | |||
| 316 | bzr bisect reset | ||
| 317 | |||
| 318 | or simply delete the entire branch if you created it just for this. | ||
diff --git a/admin/notes/copyright b/admin/notes/copyright index 173ff83343a..3a404b69678 100644 --- a/admin/notes/copyright +++ b/admin/notes/copyright | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | Copyright (C) 2007-2012 Free Software Foundation, Inc. | 1 | Copyright (C) 2007-2013 Free Software Foundation, Inc. |
| 2 | See the end of the file for license conditions. | 2 | See the end of the file for license conditions. |
| 3 | 3 | ||
| 4 | 4 | ||
diff --git a/admin/notes/font-backend b/admin/notes/font-backend index ec2dc11345b..cdf2001580d 100644 --- a/admin/notes/font-backend +++ b/admin/notes/font-backend | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | Copyright (C) 2002-2012 Free Software Foundation, Inc. | 1 | Copyright (C) 2002-2013 Free Software Foundation, Inc. |
| 2 | See the end of the file for license conditions. | 2 | See the end of the file for license conditions. |
| 3 | 3 | ||
| 4 | 4 | ||
diff --git a/admin/notes/lel-TODO b/admin/notes/lel-TODO index 139aa09e919..2c6d86a4ffd 100644 --- a/admin/notes/lel-TODO +++ b/admin/notes/lel-TODO | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | Some lisp/emacs-lisp/ Features and Where They Are Documented | 1 | Some lisp/emacs-lisp/ Features and Where They Are Documented |
| 2 | 2 | ||
| 3 | Copyright (C) 2007-2012 Free Software Foundation, Inc. | 3 | Copyright (C) 2007-2013 Free Software Foundation, Inc. |
| 4 | See the end of the file for license conditions. | 4 | See the end of the file for license conditions. |
| 5 | 5 | ||
| 6 | 6 | ||
diff --git a/admin/notes/multi-tty b/admin/notes/multi-tty index 5408b9a3d00..c4edd3abc93 100644 --- a/admin/notes/multi-tty +++ b/admin/notes/multi-tty | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | -*- coding: utf-8; mode: text; -*- | 1 | -*- coding: utf-8; mode: text; -*- |
| 2 | 2 | ||
| 3 | Copyright (C) 2007-2012 Free Software Foundation, Inc. | 3 | Copyright (C) 2007-2013 Free Software Foundation, Inc. |
| 4 | See the end of the file for license conditions. | 4 | See the end of the file for license conditions. |
| 5 | 5 | ||
| 6 | From README.multi-tty in the multi-tty branch. | 6 | From README.multi-tty in the multi-tty branch. |
diff --git a/admin/notes/unicode b/admin/notes/unicode index dda6ec4cc93..21704c78a00 100644 --- a/admin/notes/unicode +++ b/admin/notes/unicode | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | -*-mode: text; coding: latin-1;-*- | 1 | -*-mode: text; coding: latin-1;-*- |
| 2 | 2 | ||
| 3 | Copyright (C) 2002-2012 Free Software Foundation, Inc. | 3 | Copyright (C) 2002-2013 Free Software Foundation, Inc. |
| 4 | See the end of the file for license conditions. | 4 | See the end of the file for license conditions. |
| 5 | 5 | ||
| 6 | Problems, fixmes and other unicode-related issues | 6 | Problems, fixmes and other unicode-related issues |