Dalam rekayasa perangkat lunak, percabangan proyek (bahasa Inggris:project forkcode: en is deprecated ) adalah hal yang terjadi ketika suatu pengembang menyalin kode sumber dari suatu paket perangkat lunak dan memulai pengembangannya sendiri secara terpisah, menghasilkan perangkat lunak yang berbeda dan terpisah. Istilah ini biasanya mengimplikasikan tidak hanya percabangan dalam pengembangan, tetapi juga perpecahan dalam komunitas pengembangnya, sebuah bentuk skisma.[1]
Perangkat lunak bebas dan sumber terbuka adalah perangkat lunak yang, secara definisi, boleh dicabang dari tim pengembang yang asli tanpa meminta izin terlebih dahulu, tanpa melanggar hukum hak cipta. Akan tetapi, percabangan berlisensi dari perangkat lunak perorangan (contoh:Unix) juga bisa terjadi.
Etimologi
Kata "fork" telah digunakan dalam artian "membagi menjadi cabang-cabang, berpisah" sejak abad ke-14th.[2] Dalam linkungan perangkat lunak, kata ini mengacu pada panggilan sistem fork, yang menyebabkan suatu proses yang sedang berjalan membagi dirinya sendiri menjadi dua salinan yang (hampir) sama persis yang kemudian (biasanya) melakukan tugas-tugas yang berbeda.[3]
Dalam konteks pengembangan perangkat lunak, "fork" digunakan dalam artian membuat sebuah "cabang" kendali revisi oleh Eric Allman pada tahun 1980, dalam konteks SCCS:[4]
Creating a branch "forks off" a version of the program.
Istilah ini digunakan di Usenet pada tahun 1983 untuk proses pembuatan sebuah subkelompok untuk menampung topik-topik diskusi.[5]
"Fork" belum digunakan dalam artian skisma komunitas pada permulaani Lucid Emacs (sekarang XEmacs) (1991) atau berbagai BSD (1993–1994); Russ Nelson menggunakan istilah "shattering" (bahasa Indonesia: pemecahan) untuk peristiwa ini pada tahun 1993, mengatribusikannya kepada John Gilmore.[6] Akan tetapi, "fork" digunakan dalam bentuk kala kini sejak tahun 1995 untuk menjelaskan pemisahan XEmacs,[7] dan penggunaannya sudah dipahami dalam GNU Project pada tahun 1996.[8]
↑"The term fork is derived from the POSIX standard for operating systems: the system call used so that a process generates a copy of itself is called fork()." Robles, Gregorio; González-Barahona, Jesús M. (2012). A Comprehensive Study of Software Forks: Dates, Reasons and Outcomes(PDF). OSS 2012 The Eighth International Conference on Open Source Systems. doi:10.1007/978-3-642-33442-9_1. Diarsipkan(PDF) dari versi aslinya tanggal 2 Desember 2013. Diakses tanggal 20 Oktober 2012.
Sebuah PhD mengamati proses fork: (Nyman, 2015)Diarsipkan 2023-07-16 di Wayback Machine. "Understanding Code Forking in Open Source Software - An examination of code forking, its effect on open source software, and how it is viewed and practiced by developers"