A Distributed Peer? Approval Code Collaboration Model

Votes: 3
Views: 2758

Software development is an important aspect of Computer Science, and as such there are many strategies, techniques and programs which aim to formalise and structure this process. This issue becomes more complex when development is carried out in large global teams which is "rapidly becoming the norm for technology companies" [1].

"Legit" is a distributed code review tool, built on top of Git Version Control software. Users may push "proposals" to a Legit project, which are semantically similar to a Git pull requests, on which other peers can vote. When approved, Legit attempts to automatically merge the proposal into the main branch of the project. Users can gain a quantifiable "reputation" within the system by having their proposals approved, or by correctly voting for or against the proposals of others. This reputation, in turn, is used to grant and determine what a user can and cannot do - for example, users may need to reach a certain reputation before they are able to make proposals.

Unlike other Code Review systems, Legit is entirely decentralised, meaning there is no central point of failure or trust. This removes the financial and time overhead of managing mailing lists and bug reporting software that many open source projects struggle with. Legit projects are verified upon synchronisation, meaning anyone may opt to host a public mirror of the project, without need for prior consent or organisation. The tool can also be used within a corporate environment to give lower level developers a structure in which to vet each other's work; granting this privilege can both raise developer morale, and remove the need for some middle management and administrative positions in large organisations.

It also works seamlessly on top of Git, meaning many of its commands and paradigms may already be familiar to the developer. For example, to make a proposal, the command is `legit propose -m "Proposal Message"`. This is the same format as Git's `git commit -m "Commit Message"` syntax.

All proposals are downloaded to the developer's machine. This means they can be reviewed, commented upon and even voted upon while the developer's computer is not connected to the internet. When Legit synchronises (using a conventional git push or pull) votes are automatically collated and comments merged together, using Git's existing branch merging tools.

[1] J. D. Herbsleb and A. Mockus, "An empirical study of speed and communication in globally distributed software development," IEEE Transactions on Software Engineering, vol. 29, no. 6, p. Abstract, 2003.


Voting is closed!


  • Name:
    Emily Shepherd
  • Type of entry:
  • Profession:
  • Emily is inspired by:
    I want to design systems that make common tasks easier for people.
  • Software used for this entry:
    Git, Photoshop, Bash, GCC
  • Patent status: