Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 200855
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T17:08:53+00:00 2026-05-11T17:08:53+00:00

Normally, I would enable extensions by adding the following to .hg/hgrc : [extensions] hgext.win32text=

  • 0

Normally, I would enable extensions by adding the following to .hg/hgrc:

[extensions]
hgext.win32text=
[encode]
** = cleverencode:
[decode]
** = cleverdecode:

However, I want this configuration to be versioned, i.e. part of the repository, so that it is enabled for anyone else (coworkers, build machines) cloning the repository. Note that whomsoever clones the repository should not be required to do anything to enable these extensions.

It appears it is not possible from the documentation, but does anyone know any neat tricks that can help me here?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-11T17:08:54+00:00Added an answer on May 11, 2026 at 5:08 pm

    You want mercurial to do something automatically when you clone a repo (update the hooks or config). Documentation says it is not possible and gives some very good reasons:

    Hooks do not propagate
    
    In Mercurial, hooks are not revision controlled, and do not propagate when you clone,
    or pull from, a repository. The reason for this is simple: a hook is a completely    
    arbitrary piece of executable code. It runs under your user identity, with your 
    privilege level, on your machine. No comments
    
    It would be extremely reckless for any distributed revision control system to 
    implement revision-controlled hooks, as this would offer an easily exploitable way to 
    subvert the accounts of users of the revision control system. No comments
    

    So clearly, mercurial itself won’t solve your problem. You clearly state that you want nothing but mercurial to solve your problem, so the answer is: what you are asking is not possible.

    The only way to solve your problem is that all your users will have to run/install at least once a given script that perform the actions you want, something like installing the right hooks.

    If you want to be clever about this:

    • create a one-time script to run that will install a hook to copy the right config into the .hg or the user
    • make sure that the hook, once installed, can update the script to distribute config updates to the users
    • make the hook add some special marking to commit messages
    • refuse on the central repository commit that do not carry the special message

    A bit complicated, but that’s the closest I can imagine to your requirements:

    • user run a script once and they forget
    • you can make sure that if the did not run it, they can not commit to your central repo
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Normally I would go: bgwExportGrid.RunWorkerCompleted += ReportManager.RunWorkerCompleted; The ReportManager class is a static class
Normally I would just do this. $str = preg_replace('#(\d+)#', ' $1 ', $str); If
Normally it would be in such a structure: ../application/modules/somemodule/views/scripts/index/index.phtml How I move it to:
Normally I would have one junit test that shows up in my integration server
Normally I would just use URL GET parameters but CodeIgniter doesn't seem to like
Normally I would do select top (1) * from table where id active =
This kind of code would normally work in PHP, but since the scope is
If I have a table of a hundred users normally I would just set
When typing code, I would normally close brackets, go back inside, go outside, type
I need to see the queries submitted to a PostgreSQL server. Normally I would

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.