Using the VCS mirror feature with Mercurial subrepos and subpaths


I've encountered an issue when trying to set up my TeamCity installation to use mirrors of my Hg repository.

The repo uses subrepositories which have an absolute path in them.
Unfortunately the location of the subrepos has changed since the original creation so I've been using the [subpaths] section in my mercurial.ini to modify them when I clone and update the repository.

Everything was working fine when I wasn't using mirrors, the subpaths configuration seemed to be working fine and everything was being cloned and updated perfectly.
Now that I've activated the mirror feature, my builds are failing as they try to create the mirror copy because when TeamCity tries to process the subrepos it's using the following command to get the subrepo paths:

   hg cat -o C:\BuildAgent\temp\globalTmp\hg1\%p -r 2c23960a168d .hgsub .hgsubstate

This of course just returns the original absolute paths of the subrepos directly from the .hgsub file and bypasses the mercurial subpaths setup.
So ultimately the build fails with the error

    stderr:     abort: repository E:\Software\Repos\SubRepo1 not found!

Does anyone know of any way I can get around this with TeamCity or Mercurial configuration?


1 comment
Comment actions Permalink


Please watch and vote for the related issue - As of now you can switch off mirrors.


Please sign in to leave a comment.