Commit | Line | Data |
---|---|---|
51603dab GM |
1 | NOTES ON COMMITTING TO EMACS'S BAZAAR REPO -*- outline -*- |
2 | ||
3 | * Install changes only on one branch, let them get merged elsewhere if needed. | |
4 | In particular, install bug-fixes only on the release branch (if there | |
5 | is one) and let them get synced to the trunk; do not install them by | |
6 | hand on the trunk as well. E.g. if there is an active "emacs-23" branch | |
7 | and you have a bug-fix appropriate for the next Emacs-23.x release, | |
8 | install it only on the emacs-23 branch, not on the trunk as well. | |
9 | ||
10 | Installing things manually into more than one branch makes merges more | |
11 | difficult. | |
12 | ||
13 | http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01124.html | |
14 | ||
15 | * Backporting a bug-fix from the trunk to a branch (e.g. "emacs-23"). | |
16 | Label the commit as a backport, e.g. by starting the commit message with | |
17 | "Backport:". This is helpful for the person merging the release branch | |
18 | to the trunk. | |
19 | ||
20 | http://lists.gnu.org/archive/html/emacs-devel/2010-05/msg00262.html | |
21 | ||
22 | * Installing changes from your personal branches. | |
23 | If your branch has only a single commit, or many different real | |
24 | commits, it is fine to do a merge. If your branch has only a very | |
25 | small number of "real" commits, but several "merge from trunks", it is | |
26 | preferred that you take your branch's diff, apply it to the trunk, and | |
27 | commit directly, not merge. This keeps the history cleaner. | |
28 | ||
5739cdd2 EZ |
29 | In general, when working on some feature in a separate branch, it is |
30 | preferable not to merge from trunk until you are done with the | |
31 | feature. Unless you really need some change that was done on the | |
32 | trunk while you were developing on the branch, you don't really need | |
33 | those merges; just merge once, when you are done with the feature, and | |
34 | Bazaar will take care of the rest. Bazaar is much better in this than | |
35 | CVS, so interim merges are unnecessary. | |
36 | ||
51603dab GM |
37 | Or use shelves; or rebase; or do something else. See the thread for |
38 | yet another fun excursion into the exciting world of version control. | |
39 | ||
40 | http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00086.html | |
9aafb22b GM |
41 | |
42 | * How to merge changes from emacs-23 to trunk | |
43 | ||
44 | The following description uses bound branches, presumably it works in | |
45 | a similar way with unbound ones. | |
46 | ||
47 | 1) Get clean, up-to-date copies of the emacs-23 and trunk branches. | |
48 | Check for any uncommitted changes with bzr status. | |
49 | ||
50 | 2) M-x cd /path/to/trunk | |
51 | ||
52 | 3) load admin/bzrmerge.el | |
53 | ||
54 | 4) M-x bzrmerge RET /path/to/emacs-23 RET | |
55 | ||
56 | It will prompt about revisions that should be skipped, based on the | |
57 | regexp in bzrmerge-missing. If there are more revisions that you know | |
58 | need skipping, you'll have to do that by hand. | |
59 | ||
60 | 5) It will stop if there are any conflicts. Resolve them. | |
61 | Using smerge-mode, there are menu items to skip to the next conflict, | |
62 | and to take either the trunk, branch, or both copies. | |
63 | ||
64 | 6) After resolving all conflicts, you might need to run the command | |
65 | again if there are more revisions still to merge. | |
66 | You can commit either before you do this (eg if you had a lot of | |
67 | conflicts to resolve and don't want to get confused), or refrain from | |
68 | committing until bzrmerge has merged all revisions. | |
69 |