Back to Home

hGate - the web gateway to Mercurial repository management

mercurial · hgate · hgwebdir · hg

hGate - the web gateway to Mercurial repository management

    Short version

    What is proposed : web interface for managing repositories and users mercurial - hGate .
    To whom it is useful : those who use the Mercurial + HgWebDir bundle and create repositories or users more often than once every couple of months.
    Where to download and how to install : bitbucket.org/shedar/hgate
    If you are wondering why this was done, a detailed list of features and what will happen next is continued.

    Background

    Recently, Mercurial has firmly entered the part of my life that is related to programming. All work projects by default are sent to the version control system, personal, test and experimental - also if they live more than a few days or have practical value. To access the repositories, HgWebDir was configured in conjunction with nginx.
    Everything would be fine if it were not for one “but” - HgWebDir allows you to view a list of repositories and changes, but it is not intended to manage repositories and users. To create a new repository, to configure access rights, create a user, or change a password, you had to go to the server console and perform the appropriate actions.

    In search of a turnkey solution

    Experience suggested that if the problem does not exist the first day, then someone tried to solve it. The most complete of those found was produced by the phpHgAdmin script . But the joy did not last long. By installing it on two different servers, I got the same result. The main problems:
    - Groups and repositories mixed in a strange way;
    - Groups did not open;
    - Settings of repositories created not by him were edited with problems;
    - The decisive problem is that the project is not developing, the author gets in touch, but nothing more.

    Own decision

    Having estimated the pros and cons of finalizing phpHgAdmin and creating my own solution, it was decided to create my own. Fortunately, there were two more people who were ready to participate, who were interested in the idea. Unfortunately, one of them almost immediately sucked in the work. Many thanks to Andrei ( gavaec ) for taking on most of the project work.

    Technical features

    Language: python;
    Framework: django;
    OS: Linux
    Website: bitbucket.org/shedar/hgate

    Functionality

    - creating repositories
    - managing users (creating, deleting, changing a password)
    - creating, deleting, changing repository groups
    - editing the basic settings of the hgwebdir settings file
    - setting repository permissions
    - editing the basic repositories
    - viewing user permissions - shows a matrix of rights to various repositories

    What does it look like

    Home:


    Editing repository settings:


    User management:


    Known issues

    - Authorization is not supported, access restriction needs to be done using the web server
    - editing is not supported for all settings file parameters
    - repository collections should be specified through the paths section, as recommended in the manual, the collections section is currently not supported.

    Development plan

    What is planned in the near future, in addition to combing and improving the reliability of the existing code:
    - Checking the correctness of all hGate settings to facilitate installation and troubleshooting
    - Fuller support for config parameters
    - Support for multiple profiles. When several independent mercurial instances are running on the same server, I want them all to be managed via hGate
    - Own authorization
    - Full support for highly nested groups (like / home / hg / demo / **)
    - Localization

    If you have any suggestions or suggestions - write. A bug tracker is open for errors and problems .

    Read Next