Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • heptapod heptapod
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 161
    • Issues 161
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • heptapod
  • heptapodheptapod
  • Issues
  • #152

Closed
Open
Created Jan 07, 2020 by Georges Racinet@gracinet🦑Owner5 of 5 tasks completed5/5 tasks

Bootstrap the hgitaly project

Gitaly is a gRPC based protocol introduced by GitLab to provide all the Git repository handling capabilities that GitLab needs.

Our plan for sustainable Mercurial integration within GitLab is to produce an implementation of Gitaly for Mercurial repos. This way, most of GitLab application layers won't even need to know that they are working with Mercurial instead of Git. This is the continuation of what we've been doing with hg-git, except that we won't need to convert to an actual Git repo under the hood.

The hgitaly project will be implemented in Python3 and should take the form of a Mercurial extension. Starting the server will be something like

hg gitaly --repositories-root REPOSITORIES_ROOT [standard options for gRPC servers (binds etc)]

Here are the steps for the bootstrap:

  • create the project on dev.heptapod.net
  • produce the Python gRPC library from the Gitaly protobuf, in the appropriate version for current Heptapod
  • reuse and convert to Python3 the test helpers that are currently part of py-heptapod but Python2 only
  • implement a first, very simple call and have it fully tested
  • CI configuration with coverage

What else?

Edited Jan 10, 2020 by Georges Racinet
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking