Sim. O script reposman.rb é explicitamente destinado a esse propósito.
Normalmente, é feito chamar o script acima em um cronjob, por exemplo:
10 * * * * root ruby /root/redmine-1.0.0/extra/svn/reposman.rb --redmine-host http://my.redmine./ --svn-dir /data/svn/ --url my.svn.server --key=mykey --owner apache --verbose >> /var/log/reposman.log
No entanto, o mercurial não tem uma implementação equivalente, pois o acima é para o SVN ( link ). É possível escrever seus próprios ganchos para conseguir isso. Se você não se importa em modificar o núcleo Redmine, você pode usar as informações aqui como uma fonte mínima de abordagem sobre o assunto: link
Com o método acima, você poderia chamar um script de shell contendo os comandos que você usaria normalmente para criar um repositório. Isso é totalmente personalizável. (Um script shell é apenas um arquivo com permissões de execução contendo comandos, da mesma forma que você os digita na linha de comando). Basicamente usando esse guia para criar um repositório você chamaria um script que criava um diretório pelo nome do identificador do projeto cd
naquele diretório e então executava hg init
Você poderia então usar o mysql para adicionar o repositório automaticamente ao projeto identificado pelo identificador do projeto.
Uma solução mais elegante seria usar os ganchos Redmine nativos em um plugin ou criar cópias das páginas modificadas em um plugin que substituiria automaticamente o núcleo do Redmine - link
Se você precisar fazer alguma coisa com o banco de dados, o seguinte é útil: link