emacs-devel
[Top][All Lists]
Advanced

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

Re: bzr commit raises a weird conflict


From: Giorgos Keramidas
Subject: Re: bzr commit raises a weird conflict
Date: Tue, 9 Apr 2013 12:28:04 +0200

On 2013-04-09 09:50, Bastien <address@hidden> wrote:
> I wanted to push a tiny docstring bugfix (bug#14163) but could not.
>
> "~$ bzr commit" complains about a conflict.
>
> "~$ bzr conflicts" yields:
>   Conflict: can't delete leim/ja-dic because it is not empty.  Not deleting.
>
> I first ran "~$ make maintainer-clean" before trying to commit,
> because I did build Emacs from this directory.
>
> How can I resolve this "conflict"?

On 2013-04-09 09:42, Christopher Schmidt <address@hidden> wrote:
> Bastien <address@hidden> writes:
> > How can I resolve this "conflict"?
> >
> > I know it safer to build from a dedicated branch, and to use a clean
> > branch for commits, but still, I don't understand what's wrong.
>
> I don't understand what's wrong, either.
>
>     bzr resolve --take-other
>
> solved it for me.  This is probably another bug in bzr.

That's because leim/ja-dic/ was removed recently, but if you are merging
in an unclean checkout (with build output from previous builds), bzr
notices that:

  (a) The directory should be removed as part of the merge
  (b) The directory is not empty

So it takes the safer approach of aborting the merge with a conflict,
instead of blindly removing the directory.

This is an artifact of the fact that bzr likes tracking directory
changes too, as part of the branch history.  In this case it acts a bit
silly, because there are *no* files tracked remaining after the
directory is fully removed from a branch, so it should just go ahead and
remove the directory from the branch, but leave the filesystem intact.
Since there are no files left in the originally tracked directory,
future merges or updates will not care about this path anyway.

Running 'bzr resolve --take-other' basically tells bzr to ignore
whatever happens to exist in the filesystem because of the local branch
and consider the 'source branch' the authoritative source of what it
should do with leim/ja-dic/.  And it solves this minor merge problem ;)

--
Giorgos Keramidas; address@hidden



reply via email to

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