Remove mercurial message "obsolete feature not enabled but xxx markers found"
Asked Answered
B

2

11

For a short time I had the evolve extension enabled in our Mercurial repository. Then I disabled it.

Now I frequently see messages like:

obsolete feature not enabled but 184 markers found!

when various hg commands are run.

How can I get rid of this message? I gather there are "obsolecense markers" in the repository now, is it possible to remove them and/or silence these messages?

Brodsky answered 9/11, 2017 at 12:56 Comment(0)
E
10

You just need to delete the obsstore:

$ rm .hg/store/obsstore

Note that if you do this the obsolete commits you've made will show up once again as either draft or public changes.

Endorsee answered 9/11, 2017 at 18:49 Comment(6)
This definitely works and seems to be harmless. Seems like I've had to do this on any of the clones.Brodsky
Thank you very much, I was stuck with this message in a large repository after unsuccessful attempts to use the obsolete feature.Hashish
It doesn't seem like the right thing to do. After I removed obsstore I had too many heads when I ran hg heads.Orange
As I noted in the answer, the formerly obsolete heads you have in your repo are now no longer obsolete. Since at one point you used evolve with this repo you probably just want to continue using evolve and leave the obsstore alone.Endorsee
Yes you are right. But for some reason if the user decides to not use evolve anymore, the cleaner solution would be to try to clone the repo again.Orange
This creates many obsolete heads. You need to "Strip" them one by one using TortoiseHg.Dolorisdolorita
B
0

A comment noted that:

the cleaner solution would be to try to clone the repo again.

(jadelord Jan 3 '19 at 10:48)

The potential benefit of this approach (instead of deleting obsstore) would be:

  • Uses normal built in commands

  • Gets rid of obsolete changesets which would otherwise remain in history, potentially causing clutter or confusion.

According to the EVOLVE: USER GUIDE:

...obsolete [changesets] won’t be exchanged with other repositories by push, pull, or clone.

which seems to support this approach. I have not yet had an opportunity to try it out.

In other words, the steps should be:

  • Modify hgrc to turn of evolve
  • hg clone source dest
  • Now dest should be free of any obsolete changesets (and probably also won't have an obsstore file)
Brodsky answered 2/12, 2020 at 16:56 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.