I have an issue while pushing a repository containing multiple subrepositories.
I will write a little introduction into more complex problem that we have, and maybe someone could propose a better solution for the whole idea.
First of all, we have many legacy applications. They share multiple dependencies (middleware code), each in other repository (6 repositories). More or less they share the same versions of these dependencies… More or less…
I read a little about subrepositories and it sounds like a perfect solution for us. What I would like to achive is to create a “master” repository, containing multiple subrepositories. The are many advantages of this solution:
- we can keep the repositories for the dependencies and applications separately like now (each of them has many branches, bookmars, tags, and of course, important history)
- on each commit on the “master” repository, a hash of each current subrepository commit is saved, so each time we update to any “master” revhash, we update to a consistent state.
Of course there is more, but those two are crucial.
In the mercurial wiki (https://www.mercurial-scm.org/wiki/Subrepository) I read about a perfect solution, where we could have something like one codebase for application and its depedenencies.
First of all I have created a new group “main” on RhodeCode and a completely new repository “master” in it. Later I have cloned it and I have cloned the dependencies’ repositories and the application’s one into the “master” repository. I have added all of them to the .hgsub file just like in the wiki page.
The directory structure is:
Everything works perfectly fine on my local machine. Branching, bookmarks, commits and so on.
Unfortunately, during the initial push - “hg push” from directory master - to the RhodeCode I encounter an error about lack of privilages for “dependency1”.
pushing to ssh://rhodecode@XXX/main/master remote: 2018-11-30 16:39:14.491  INFO [rhodecode.model] initializing db for postgresql://rhodecode:XXXXX@XXX:XX/rhodecode remote: 2018-11-30 16:39:14.493  INFO [rhodecode.config.environment] Enabled VCS backends: ['hg', 'svn', 'git'] remote: 2018-11-30 16:39:19.060  INFO [rhodecode.config.middleware] Pyramid app <function pyramid_app_with_cleanup at 0x7fa9f22cf8c0> created and configured. remote: 2018-11-30 16:39:19.513  INFO [rhodecode.apps.ssh_support.lib.backends.base] READ Permissions for User "<User('some-user-id')>" detected to repo "main/master"! pushing subrepo dependency1 to ssh://rhodecode@XXX/main/master/dependency1 remote: 2018-11-30 16:39:29.960  INFO [rhodecode.model] initializing db for postgresql://rhodecode:XXXXX@XXX:XX/rhodecode remote: 2018-11-30 16:39:29.961  INFO [rhodecode.config.environment] Enabled VCS backends: ['git', 'hg', 'svn'] remote: 2018-11-30 16:39:34.554  INFO [rhodecode.config.middleware] Pyramid app <function pyramid_app_with_cleanup at 0x7f63a86a30c8> created and configured. remote: 2018-11-30 16:39:34.864  ERROR [rhodecode.apps.ssh_support.lib.backends.base] user<User(‘some-user-id’)>
permissions to repo:main/master/dependency1 are empty. Forbidding access. abort: no suitable response from remote hg!
Do you have any ideas how to properly initialize those subrepositories under
Thanks in advance,