unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Lennart Borgman <lennart.borgman@gmail.com>
Cc: keramida@ceid.upatras.gr, acm@muc.de, emacs-devel@gnu.org
Subject: Re: Help me unstick my bzr, please.
Date: Sat, 16 Jan 2010 11:54:41 +0200	[thread overview]
Message-ID: <83d41acr32.fsf@gnu.org> (raw)
In-Reply-To: <e01d8a51001160116h75232865m97635a0f5f19cacf@mail.gmail.com>

> From: Lennart Borgman <lennart.borgman@gmail.com>
> Date: Sat, 16 Jan 2010 10:16:37 +0100
> Cc: Giorgos Keramidas <keramida@ceid.upatras.gr>, acm@muc.de, emacs-devel@gnu.org
> 
> On Sat, Jan 16, 2010 at 8:48 AM, Eli Zaretskii <eliz@gnu.org> wrote:
> >>
> >> > When I execute bzr status, it gives me a list of ~55 allegedly modified
> >> > files, finishing up with:
> >> >
> >> >     pending merge tips: (use -v to see all merge revisions)
> >> >       Jan D. 2010-01-06 [merge] Fix slowdown and wrong font choosed by XSETTINGS...
> >> >
> >> > Would somebody please tell me what I might have done to make bzr think
> >> > I've got 55 modified files?  How might I recover from this?
> >>
> >> The "pending merge" message means that in the past (before you made the
> >> quick fix to the two files) you did:
> >>
> >>     bzr merge
> >>
> >> This pulled stuff from the local trunk branch, and merged it with your
> >> local quickfixes branch.  But you have to also run "bzr commit" to
> >> complete the fix.  You didn't at the time, so the quickfixes branch
> >> remains in a "the merge has locally finished but it is uncommitted"
> >> state.
> >
> > That's probably what happened.
> 
> 
> I do not understand. Can someone please explain to me why a bazaar
> user have to take care of this?

It's in the workflow described on the wiki: the process of merging a
branch with the mainline involves two commands:

  bzr merge
  bzr commit

The first one merges the text of the files, but does not combine their
histories.  The second command finishes the merging process by
updating the history so that it now includes both local commits and
whatever happened in the mainline since the last time you merged from
it.

Note that there could be conflicts reported by "bzr merge", in which
case you should resolve them manually, then use a 3rd command to tell
Bazaar that the conflicts were resolved:

  bzr resolve file1 file2 file3 ...

where the named files are those where you resolved the conflicts.
This 3rd command should come between "bzr merge" (which reports the
conflicts in the first place) and "bzr commit".

These complications are the reason why IMO using a separate branch for
``quick fixes'' is not the best way.  Doing such simple changes
directly in the trunk, or in a separate branch that is bound to the
remote repository, is much better.  The latest version of
BzrForEmacsDevs page on the wiki suggest these latter 2 possibilities,
but Alan is using the previous suggestion, whereby the quickfixes
branch was a local branch with the trunk mirror its parent.

The workflow with a local branch whose parent is the trunk mirror is
IMO better suited to working on a non-trivial set of changes or a new
feature.  That's because this kind of job is probably not finished in
one go, and you need to return to it in the course of several days or
even weeks.  So you will want to be isolated from changes on the trunk
for a while.  Also, separating feature development into a separate
branch will allow you to make simple unrelated changes on the trunk at
the same time, without having your local changes get in your way.

With such a significant development branch, the overhead of merging
from the trunk from time to time is justified.  With simple changes,
it is not, IMO.





  parent reply	other threads:[~2010-01-16  9:54 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-15 22:27 Help me unstick my bzr, please Alan Mackenzie
2010-01-16  2:37 ` Giorgos Keramidas
2010-01-16  7:48   ` Eli Zaretskii
2010-01-16  8:29     ` Stephen J. Turnbull
2010-01-16  8:41     ` Stephen J. Turnbull
2010-01-16  8:59       ` Eli Zaretskii
2010-01-17  6:04         ` Stephen J. Turnbull
2010-01-16  9:02     ` Giorgos Keramidas
2010-01-16  9:57       ` Eli Zaretskii
2010-01-16 10:04         ` Giorgos Keramidas
2010-01-16  9:16     ` Lennart Borgman
2010-01-16  9:53       ` Andreas Schwab
2010-01-16  9:54       ` Eli Zaretskii [this message]
2010-01-16  9:59         ` Giorgos Keramidas
2010-01-16 10:02         ` Lennart Borgman
2010-01-16 11:17           ` Eli Zaretskii
2010-01-17  6:23             ` Simple unsticking with 'bzr shelve' [was: Help me unstick ...] Stephen J. Turnbull
2010-01-16 19:36     ` Help me unstick my bzr, please Stefan Monnier
2010-01-16 21:38   ` Alan Mackenzie
2010-01-17  7:50     ` Giorgos Keramidas
2010-01-16 10:10 ` Eli Zaretskii
2010-01-16 21:27   ` Alan Mackenzie
2010-01-16 21:32     ` Juanma Barranquero

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83d41acr32.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=acm@muc.de \
    --cc=emacs-devel@gnu.org \
    --cc=keramida@ceid.upatras.gr \
    --cc=lennart.borgman@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).