emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Installing changes from branches


From: Stefan Monnier
Subject: Installing changes from branches
Date: Fri, 02 Apr 2010 21:05:28 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

I noticed recently that some people install small changes
from "quickfix branches" by something like:

  cd .../trunk
  bzr merge .../quickfix
  bzr commit ...

This is fine if the quickfix has only a single commit or OTOH is a long
running branch with many different real commits.  But not if the branch
has barely more than 1 real commit plus various "merge from trunk".
E.g.:

   revno: 99807 [merge]
   committer: Jan D. <address@hidden>
   branch nick: trunk
   timestamp: Fri 2010-04-02 11:46:07 +0200
   message:
     * tmm.el (tmm-get-keymap): Check with symbolp before passing value to 
fboundp.
       ------------------------------------------------------------
       revno: 99248.1.60 [merge]
       committer: Jan D. <address@hidden>
       branch nick: fixes
       timestamp: Fri 2010-04-02 11:45:27 +0200
       message:
         Merge from trunk
       ------------------------------------------------------------
       revno: 99248.1.59
       committer: Jan D. <address@hidden>
       branch nick: fixes
       timestamp: Fri 2010-04-02 11:44:50 +0200
       message:
         tmm.el (tmm-get-keymap): Check with symbolp before passing
         value to fboundp, it may not be a symbol.
       ------------------------------------------------------------
       revno: 99248.1.58 [merge]
       committer: Jan D. <address@hidden>
       branch nick: fixes
       timestamp: Thu 2010-04-01 08:50:44 +0200
       message:
         Merge from trunk
       ------------------------------------------------------------
       revno: 99248.1.57 [merge]
       committer: Jan D. <address@hidden>
       branch nick: fixes
       timestamp: Fri 2010-03-26 08:01:19 +0100
       message:
         Merge from trunk
       ------------------------------------------------------------
       revno: 99248.1.56 [merge]
       committer: Jan D. <address@hidden>
       branch nick: fixes
       timestamp: Tue 2010-03-23 20:32:31 +0100
       message:
         Merge from trunk
       ------------------------------------------------------------
       revno: 99248.1.55 [merge]
       committer: Jan D. <address@hidden>
       branch nick: fixes
       timestamp: Tue 2010-03-23 08:04:35 +0100
       message:
         Merge from trunk

[ Please Jan, don't take it personally, it's just an example. ]
For such changes, it's a lot better to just take the diff from the
branch, apply to the trunk and commit, so it appears as a single commit.
Yes, it loses the history, but that's a good thing.  Those "merge from
trunk" are just personal history that are just noise.  Especially since
some people call them "Merge from trunk" others "Merge from mainline"
etc...

A better way is probably to keep such quickfix branches out-of-date
(i.e. never do a "merge from trunk" in them), so the "update to trunk"
is then done when you do "bzr merge .../quickfix".  Or to use "bzr
rebase" instead.

Another very good solution is to not use quickfix branches at all, but
use shelves instead.  I.e. write your fix "on the trunk" but instead of
committing it, just do "bzr shelve -m 'fix for foo'".
Then when you're ready to install the fix just unshelve the fix and
commit it.


        Stefan






reply via email to

[Prev in Thread] Current Thread [Next in Thread]