unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Installing changes from branches
@ 2010-04-03  1:05 Stefan Monnier
  2010-04-03  1:37 ` Óscar Fuentes
                   ` (2 more replies)
  0 siblings, 3 replies; 31+ messages in thread
From: Stefan Monnier @ 2010-04-03  1:05 UTC (permalink / raw)
  To: emacs-devel

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. <jan.h.d@swipnet.se>
   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. <jan.h.d@swipnet.se>
       branch nick: fixes
       timestamp: Fri 2010-04-02 11:45:27 +0200
       message:
         Merge from trunk
       ------------------------------------------------------------
       revno: 99248.1.59
       committer: Jan D. <jan.h.d@swipnet.se>
       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. <jan.h.d@swipnet.se>
       branch nick: fixes
       timestamp: Thu 2010-04-01 08:50:44 +0200
       message:
         Merge from trunk
       ------------------------------------------------------------
       revno: 99248.1.57 [merge]
       committer: Jan D. <jan.h.d@swipnet.se>
       branch nick: fixes
       timestamp: Fri 2010-03-26 08:01:19 +0100
       message:
         Merge from trunk
       ------------------------------------------------------------
       revno: 99248.1.56 [merge]
       committer: Jan D. <jan.h.d@swipnet.se>
       branch nick: fixes
       timestamp: Tue 2010-03-23 20:32:31 +0100
       message:
         Merge from trunk
       ------------------------------------------------------------
       revno: 99248.1.55 [merge]
       committer: Jan D. <jan.h.d@swipnet.se>
       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






^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2010-04-05 14:02 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-04-03  1:05 Installing changes from branches Stefan Monnier
2010-04-03  1:37 ` Óscar Fuentes
2010-04-03  7:08   ` Eli Zaretskii
2010-04-03 13:56     ` Stefan Monnier
2010-04-03 14:19     ` Óscar Fuentes
2010-04-03 15:08       ` Eli Zaretskii
2010-04-03 15:14         ` Óscar Fuentes
2010-04-03 15:54           ` Eli Zaretskii
2010-04-03  2:26 ` Juanma Barranquero
2010-04-03  8:56 ` Jan Djärv
2010-04-03  9:17   ` Stephen J. Turnbull
2010-04-03 14:08   ` Stefan Monnier
2010-04-03 14:30     ` Óscar Fuentes
2010-04-03 15:18     ` Jan Djärv
2010-04-03 15:41       ` Óscar Fuentes
2010-04-03 16:29         ` Eli Zaretskii
2010-04-03 16:49           ` Eli Zaretskii
2010-04-03 16:56             ` Óscar Fuentes
2010-04-03 20:53               ` Eli Zaretskii
2010-04-03 21:13                 ` Óscar Fuentes
2010-04-03 19:14             ` Stefan Monnier
2010-04-03 19:31               ` Juanma Barranquero
2010-04-03 20:47                 ` Eli Zaretskii
2010-04-03 22:57                   ` Juri Linkov
2010-04-04  6:33                     ` Eli Zaretskii
2010-04-04 11:03                       ` Juri Linkov
2010-04-04 14:16                       ` Stefan Monnier
2010-04-04 14:18                 ` Stefan Monnier
2010-04-04 14:57                   ` Eli Zaretskii
2010-04-05 14:02                     ` Stefan Monnier
2010-04-04 14:58                   ` Juanma Barranquero

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).