I currently work for a company that uses mercurial, but most developers use MQ instead of the new evolve flow. Therefore, most users do not have the extension enabled.
Every time I push to the main repository, .hg/store/obsstore
gets automatically pushed with the obsolete changesets. This is problematic because after that all users that do not have the extension enabled get the following message:
obsolete feature not enabled but 33 markers found!
One solution, proposed in this answer, involves deleting .obsstore
locally, but that's not what I want, since I'm still working with evolve
and that means I expect the obsolete changesets to remain hidden. Not only that, but obsolete markers and changesets should be available on the server repo so that we keep the benefits of using evolve
such as intelligent conflict solving.
I'd expect a way to either not push the obsolete changesets to the server repo, or (the correct way) for the server to not push the obsolete data to clients without evolve
enabled.
Is this possible? If not, why not?
If you really want to use evolve locally but not exchange your obsmarkers, you can do it. I will tell you how but be aware that you will have the exact same set of problems as with using stripping and rebase without evolve. If you push a previous version of a changeset and pushed the new version, the server will have the two versions at the same time. If you want to use Evolve only locally you can add these lines in your config files:
[experimental]
createmarkers=True
allowunstable=True
exchangeopt=False
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With