Fork and pull model

Last updated

Fork and pull model refers to a software development model mostly used on GitHub, where multiple developers working on an open, shared project make their own contributions by sharing a main repository and pushing changes after granted pull request by integrator users. Followed by the advent of distributed version control systems (DVCS), Git naturally enables the usage of a pull-based development model, in which developers can copy the project onto their own repository and then push their changes to the original repository, where the integrators will determine the validity of the pull request. Since its appearance, pull-based development has gained popularity within the open software development community. On GitHub, over 400,000 pull-requests emerged per month on average in 2015. [1] It is also the model shared on most collaborative coding platforms, like Bitbucket, Gitorious, etc. More and more functionalities are added to facilitate pull-based model. [1]

Related Research Articles

In software engineering, version control is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections of information. Version control is a component of software configuration management.

phpLDAPadmin is a web app for administering Lightweight Directory Access Protocol (LDAP) servers. It's written in the PHP programming language, and is licensed under the GNU General Public License. The application is available in 14 languages and supports UTF-8 encoded directory strings.

<span class="mw-page-title-main">Git</span> Software for version control of files

Git is a distributed version control system that tracks changes in any set of computer files, usually used for coordinating work among programmers who are collaboratively developing source code during software development. Its goals include speed, data integrity, and support for distributed, non-linear workflows.

In software development, distributed version control is a form of version control in which the complete codebase, including its full history, is mirrored on every developer's computer. Compared to centralized version control, this enables automatic management branching and merging, speeds up most operations, improves the ability to work offline, and does not rely on a single location for backups. Git, the world's most popular version control system, is a distributed version control system.

In software development, a codebase is a collection of source code used to build a particular software system, application, or software component. Typically, a codebase includes only human-written source code system files; thus, a codebase usually does not include source code files generated by tools or binary library files, as they can be built from the human-written source code. However, it generally does include configuration and property files, as they are the data necessary for the build.

A source-code-hosting facility is a file archive and web hosting facility for source code of software, documentation, web pages, and other works, accessible either publicly or privately. They are often used by open-source software projects and other multi-developer projects to maintain revision and version history, or version control. Many repositories provide a bug tracking system, and offer release management, mailing lists, and wiki-based project documentation. Software authors generally retain their copyright when software is posted to a code hosting facilities.

Branching, in version control and software configuration management, is the duplication of an object under version control. Each object can thereafter be modified separately and in parallel so that the objects become different. In this context the objects are called branches. The users of the version control system can branch any branch.

In software development, version control is a class of systems responsible for managing changes to computer programs or other collections of information such that revisions have a logical and consistent organization. The following tables include general and technical information on notable version control and software configuration management (SCM) software. For SCM software not suitable for source code, see Comparison of open-source configuration management software.

A committer is an individual who is permitted to modify the source code of a software project, that will be used in the project's official releases. To contribute source code to most large software projects, one must make modifications and then "commit" those changes to a central version control system, such as Git.

<span class="mw-page-title-main">GitHub</span> Hosting service for software projects

GitHub, Inc. is a platform and cloud-based service for software development and version control, allowing developers to store and manage their code. It uses Git software, providing the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous integration, and wikis for every project. Headquartered in California, it has been a subsidiary of Microsoft since 2018.

Bountysource is a crowdsourcing website for open source bounties and since 2012 also for crowdfunding. Users can pledge money for tasks using micropayment services that open source software developers can pick up and solve to earn the money. It also allows large-scale fundraising for big improvements on the project. It integrates with GitHub using its bug tracker to check if the problem is resolved and connect the resolution with GitHub's pull request system to identify the patch. When the users agree that they are satisfied and the project maintainer merged the proposed changes to the source-code, Bountysource will transfer the money acting as a trustee during the whole process.

Bitbucket is a Git-based source code repository hosting service owned by Atlassian. Bitbucket offers both commercial plans and free accounts with an unlimited number of private repositories.

The open-source-software movement is a movement that supports the use of open-source licenses for some or all software, as part of the broader notion of open collaboration. The open-source movement was started to spread the concept/idea of open-source software.

Integrator workflow, also known as Integration Manager Workflow, is a method to handle source code contributions in work environments using distributed version control.

<span class="mw-page-title-main">Travis CI</span> Service to build and test software projects

Travis CI is a hosted continuous integration service used to build and test software projects hosted on GitHub, Bitbucket, GitLab, Perforce, Apache Subversion and Assembla.

Apache Allura is an open-source forge software for managing source code repositories, bug reports, discussions, wiki pages, blogs and more for any number of individual projects. Allura graduated from incubation with the Apache Software Foundation in March 2013.

<span class="mw-page-title-main">RhodeCode</span> German software company

RhodeCode is an open source self-hosted platform for behind-the-firewall source code management. It provides centralized control over Git, Mercurial, and Subversion repositories within an organization, with common authentication and permission management. RhodeCode allows forking, pull requests, and code reviews via a web interface.

<span class="mw-page-title-main">Diversity in open-source software</span>

The open-source-software movement is commonly cited to have a diversity problem. In some ways it reflects that of the general gender disparity in computing, but in general is assumed to be even more severe. The same can be extended to the racial and ethnic diversity of the movement. "Diversity" in this article uses the academic Critical Theory definition.

<span class="mw-page-title-main">Gitea</span> Free forge based on Git written in Go, as a fork of Gogs

Gitea is a forge software package for hosting software development version control using Git as well as other collaborative features like bug tracking, code review, continuous integration, kanban boards, tickets, and wikis. It supports self-hosting but also provides a free public first-party instance. It is a fork of Gogs and is written in Go. Gitea can be hosted on all platforms supported by Go including Linux, macOS, and Windows. The project is funded on Open Collective.

<span class="mw-page-title-main">Magit</span> Emacs interface for the Git version control system

Magit is an interface to the Git version control system (a Git Client), implemented as a GNU Emacs package written in Elisp. It is made available through the MELPA package repository, on which it is the most-downloaded non-library package, with over 3.7 million downloads as of February 2023.

References

  1. 1 2 YU, YUE (July 18, 2016). "Determinants of pull-based development in the context of continuous integration". Science China Information Sciences. 59 (8). doi: 10.1007/s11432-016-5595-8 .