unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Glenn Morris <rgm@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: some bzrmerge.el questions
Date: Thu, 13 Jan 2011 16:43:35 -0500	[thread overview]
Message-ID: <jwvoc7kcwvp.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <1e7he81r9l.fsf@fencepost.gnu.org> (Glenn Morris's message of "Thu, 13 Jan 2011 15:29:42 -0500")

> bzrmerge.el looks very helpful. Some questions:

> 1) Can I use it with bound branches? (It seems so, I just want to check.)

Yes, all my branches are bound.  Just like `merge', it only operates on
the checkout anyway, so it shouldn't make any difference whether it's
bound or not.

> 2) Say there are 20 revisions to merge, and revision 10 is one to skip.
> What seems to happen is, it merges revisions 1-9, then stops.
> (Maybe it only stopped because there were conflicts?)

Yes, it should only stop when it encounters conflicts.

> This is fine. After dealing with any conflicts, should I run bzrmerge
> again to get revisions 11-20, and then commit everything at once;

That's the intention.

> or should I commit in the middle, before merging 11-20? (Maybe bzr
> won't let me do it the wrong way.)

You can do that as well.  Either should work.

> 3) Is there a way I can manually specify a revision(s) to skip?
> Eg if someone did not use the appropriate magic word(s) in the commit
> message.

Currently, no.  But you can easily tweak the code to change the regexp
so it matches all commits.

> 4) What is the right thing to do if a change is going to have to be
> substantially rewritten in order to merge? Eg changing a different
> file to the original change? Should one fix it all up before
> committing the merge; or commit the merge (with conflicts resolved at
> least), then make a separate normal commit to implement the feature;
> or does one totally skip merging the relevant commit, and do it by
> hand as a new commit? The last two options seem nicer because the
> person doing the merge can ask the person who made the original commit
> to fix it.

I think it depends on the particular case.  When I've had to do that
(e.g. a change in tramp.el which moved to tramp-sh.el) bzrmerge
signaled a conflict and I resolved it by hand (by applying the failed
patch to the other file) and then updated the ChangeLog comment to say
"tramp-sh.el".
But if the resolution ends up with completely different code, I think it
makes sense to commit it as a new change rather than as a merge of some
other change.

The one important thing is to make sure we don't drop changes, so it's
better to first commit a new solution on the trunk, and then merge the
old solution (and just resolve the conflict by leaving the code
unchanged), rather than merge first and then install
a different solution.  Sadly, this is sometimes inconvenient: I may
want/need to merge *now* because I want to install something that
depends on an yet-unmerged change and then bump into a conflict in
someone else's code, at which point you may find you prefer drop his
change so you can go on with yours and hope he won't forget to install
an updated solution.


        Stefan




  reply	other threads:[~2011-01-13 21:43 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-13 20:29 some bzrmerge.el questions Glenn Morris
2011-01-13 21:43 ` Stefan Monnier [this message]
2011-01-14  7:12   ` Glenn Morris
2011-01-14  8:19     ` Glenn Morris
2011-01-14 17:30       ` Eli Zaretskii
2011-01-14 17:44         ` Glenn Morris
2011-01-14 19:00           ` Glenn Morris
2011-01-14 17:48     ` Glenn Morris
2011-01-14 18:39       ` Stefan Monnier
2011-01-15 20:44         ` Glenn Morris
2011-01-16  4:30           ` Stefan Monnier
2011-01-17 17:58           ` martin rudalics
2011-01-17 19:29             ` Stefan Monnier
2011-01-18  3:04               ` Glenn Morris
2011-01-18 15:12                 ` Stefan Monnier
2011-01-18 18:30                   ` Glenn Morris

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=jwvoc7kcwvp.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=emacs-devel@gnu.org \
    --cc=rgm@gnu.org \
    /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).