Merge from emacs-24; up to 2012-11-24T16:58:43Z!cyd@gnu.org
[bpt/emacs.git] / admin / notes / bzr
index a6fbcf2..50eaf37 100644 (file)
@@ -12,10 +12,17 @@ difficult.
 
 http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01124.html
 
+The exception is, if you know that the change will be difficult to
+merge to the trunk (eg because the trunk code has changed a lot).
+In that case, it's helpful if you can apply the change to both trunk
+and branch yourself (when committing the branch change, indicate
+in the commit log that it should not be merged to the trunk; see below).
+
 * Backporting a bug-fix from the trunk to a branch (e.g. "emacs-23").
-Label the commit as a backport, e.g. by starting the commit message with
-"Backport:".  This is helpful for the person merging the release branch
-to the trunk.
+Indicate in the commit log that there is no need to merge the commit
+to the trunk.  Anything that matches `bzrmerge-skip-regexp' will do;
+eg start the commit message with "Backport:".  This is helpful for the
+person merging the release branch to the trunk.
 
 http://lists.gnu.org/archive/html/emacs-devel/2010-05/msg00262.html
 
@@ -65,15 +72,23 @@ removes a file, then remove the corresponding files by hand.
 The following description uses bound branches, presumably it works in
 a similar way with unbound ones.
 
-0) (First time only) Get the bzr changelog_merge plugin:
+0) (This step is only necessary if using bzr older than 2.4.0.)
+Get the bzr changelog_merge plugin:
 
 cd ~/.bazaar/plugins
-bzr branch lp:bzr-changelog-merge
-mv bzr-changelog-merge changelog_merge
+bzr branch http://bazaar.launchpad.net/~spiv/bzr-changelog-merge/trunk changelog_merge
 
-This will make merging ChangeLogs a lot smoother.  It merges new
+This plugin should make merging ChangeLogs smoother.  It merges new
 entries to the top of the file, rather than trying to fit them in
-mid-way through.
+mid-way through.  Newer versions of the plugin should also be able to
+deal with changes to *old* ChangeLog entries, that should not be
+floated to the head of the file (see launchpad#723968).
+
+It is included in bzr from 2.4.0 onwards, so remember to delete the
+copy in ~/.bazaar if you upgrade bzr.
+
+Maybe the default Emacs behavior without this plugin is better,
+though, it's not clear yet.
 
 1) Get clean, up-to-date copies of the emacs-23 and trunk branches.
 Check for any uncommitted changes with bzr status.
@@ -121,6 +136,8 @@ to adjust dates by hand.  In any case, if someone made multiple
 ChangeLog entries on different days in the branch, you may wish to
 collapse them all to a single entry for that author in the trunk
 (because in the trunk they all appear under the same date).
+Obviously, if there are multiple changes to the same file by different
+authors, don't break the logical ordering in doing this.
 
 Notes:
 
@@ -156,7 +173,7 @@ This restores file, but without its history (`bzr log file' will be
 very short).  This is because file gets re-added with a new file-id
 (use `bzr file-id file' to see the id).
 
-Insteading of adding the file, try:
+Instead of adding the file, try:
 
 bzr revert -rN file; bzr commit
 
@@ -164,3 +181,24 @@ where revision N+1 is the one where file was removed.
 
 You could also try `bzr add --file-ids-from', if you have a copy of
 another branch where file still exists.
+
+* Loggerhead
+
+Loggerhead is the bzr tool for viewing a repository over http (similar
+to ViewVC).  The central version is at http://bzr.savannah.gnu.org/lh/emacs,
+but if you just like the way this interface presents data, then if
+you have your own copy of the repository, you can operate your own
+Loggerhead server in stand-alone mode, and so help to reduce the load
+on Savannah:
+
+  bzr branch lp:loggerhead ~/.bazaar/plugins/loggerhead
+  cd /path/to/emacs/bzr
+  bzr serve --http
+
+You may need to install some Python dependencies to get this command to work.
+For example, on RHEL6 I needed:
+
+  yum install python-paste python-simplejson
+  yum --enablerepo=epel install python-simpletal
+
+Then point your web-browser to http://127.0.0.1:8080/ .