Bug ID 954556
Summary After upgrading from 13.2 to Leap 42.1, Mercurial chokes on files locally deleted and ignored, but changed on the remote
Classification openSUSE
Product openSUSE Distribution
Version Leap 42.1
Hardware x86-64
URL http://users.skynet.be/antoine.mechelynck/vim/vim-tonymec.bundle.bz2
OS openSUSE 42.1
Status NEW
Severity Normal
Priority P5 - None
Component Other
Assignee bnc-team-screening@forge.provo.novell.com
Reporter antoine.mechelynck@gmail.com
QA Contact qa-bugs@suse.de
Found By ---
Blocker ---

I'm not sure if this bug is in the correct Component. It concerns a difference
between the Mercurial versions for openSUSE 13.2 and openSUSE Leap 42.1.

I'll describe below the problems I had (in a Mercurial repository with local
changes) after upgrading to Leap 42.1, and how I solved them (probably not
ideally), in the hope that something can be found to make life easier to anyone
else running into the same (or a sufficiently similar) problem.

FWIW I've uploaded at
http://users.skynet.be/antoine.mechelynck/vim/vim-tonymec.bundle.bz2 a full
bundle of my local Vim repository, including a clone of the Mercurial mirror at
https://bitbucket.org/vim-mirror/vim with local changes. The bundle is 8.8 MiB
for a repository occupying about 151 MiB so I didn't attach it to this bug. The
tip before I upgraded to Leap 42.1 was the merge commit about 30 changesets
from the present tip. The earlier changesets (0 to 7225) are probably not as
interesting but I didn't know how else to let you look at it from my point of
view. It might be possible to inspect the bundle without unpacking it, by
declaring it as a "repository" by means of the -R argument to Mercurial.

This past weekend I upgraded to Leap 42.1 and a few hours ago "hg in" displayed
27 new changesets. I tried to "fetch" them but instead of saying "remote
changed runtime/doc/tags which local deleted" and asking me if I wanted to
download the changes or keep deleted, Mercurial errored out with the new
changesets applied, the "old" merge still current, no new merge done, and a
message saying that it could not proceed because of a locally ignored file
changed on the remote (the deleted file in question).

I goofed around some, updated (not easily) to 0 and back to tip, including a
couple of manual merges for which Mercurial invoked vimdiff as my preferred
merge tool, and finally added one monstrous changeset by hg addremove followed
by hg commit. Those "added" files are IIUC files ignored by my locally modified
.hgignore on the other unnamed branch. After that I could finally merge my
local changes with the monstrous changeset I had just added on top of Bram's
official tip.

After that I notice that "hg diff" on the locally deleted file does not give
the same output as it used to before the upgrade to Leap. Previously it showed
a diff between the remote version of the file and /dev/null, which was longish
and looked messy, but, well, I used to think that was the way of things, at
least with that version of Mercurial. Now it just says:

diff --git a/runtime/doc/tags b/runtime/doc/tags
deleted file mode 100644

which I find much neater even if it is not visually reversible.


I am practically certain that what I did was not the "ideal" thing to do, but
it is the best I could find to work around this change of behaviour and still
get a working directory tree with which I could compile Bram's version with my
local changes (which consist of one feature added and one disabled in
src/feature.h, plus .hgignore lines for runtime/doc/tags which is regenerated
by "make install" anyway, and for some directories and files not present on the
remote, e.g. "shadow" directories allowing me to compile a Huge and a Tiny
build in parallel from the same source with different config settings passed as
environment variables).

I hope Mercurial won't choke again the next time new changesets are added at
the remote and I try to apply them.


You are receiving this mail because: