Source control: Difference between revisions
Mochipie95 (talk | contribs) No edit summary |
Mochipie95 (talk | contribs) No edit summary |
||
Line 8: | Line 8: | ||
== Version control system == | == Version control system == | ||
=== Tools === | |||
* [https://git-scm.com/downloads Git] | * [https://git-scm.com/downloads Git] | ||
* [https://www.mercurial-scm.org/ Mercurial] | * [https://www.mercurial-scm.org/ Mercurial] | ||
[https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control Version control systems] such as Git is often used along with a repository | [https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control Version control systems] such as Git is often used along with a repository management service such as [https://github.com/ GitHub] or [https://bitbucket.org/product Bitbucket]. These services allow you to make coding assets and game builds available for all team members (or the public if desired), with additional functionalities unique to version control system such as [https://yangsu.github.io/pull-request-tutorial/ pull requests] which supports coding in parallel. Similar to file sharing websites, these hosting services can serve as backup of game assets and protection against irreversible changes, as all committed changes are recorded and any earlier version of the game assets can be recovered. | ||
== Terminology == | === Terminology === | ||
* Repository: folder containing the game assets that the version control system will track | |||
* Clone: make a copy of a repository hosted on a website (e.g. GitHub) and download it | |||
* Commit: record a set of changes made to the tracked files in the repository | |||
* Commit History: list of all commits/changes made to the repository | |||
* Branch: group of commits on top of a base commit history | |||
* Merge: combine two branches/commit history to form one commit history | |||
* Merge Conflicts: conflicting changes detected when attempting to merge | |||
* Pull: merge the remote/hosted branch into the local branch (website to local) | |||
* Push: merge the local branch into the remote/hosted branch (local to website) |
Revision as of 16:09, 24 June 2022
Source control is a set of activities which is often performed by any member of the team who is producing game assets of any kind (script, art, music, code, etc). It involves managing and organizing different versions of the assets produced, communicating to the team about changes made and the version to use for relevant team members. With VNs that have longer development duration, a version control system can be used to assist the development team in managing asset changes as well as facilitate coding in parallel. The job of managing the version control system typically falls under the programmer's role.
Classic source control
- Google Drive
- Dropbox
- Discord
- any application that allows file sharing
Version control system
Tools
Version control systems such as Git is often used along with a repository management service such as GitHub or Bitbucket. These services allow you to make coding assets and game builds available for all team members (or the public if desired), with additional functionalities unique to version control system such as pull requests which supports coding in parallel. Similar to file sharing websites, these hosting services can serve as backup of game assets and protection against irreversible changes, as all committed changes are recorded and any earlier version of the game assets can be recovered.
Terminology
- Repository: folder containing the game assets that the version control system will track
- Clone: make a copy of a repository hosted on a website (e.g. GitHub) and download it
- Commit: record a set of changes made to the tracked files in the repository
- Commit History: list of all commits/changes made to the repository
- Branch: group of commits on top of a base commit history
- Merge: combine two branches/commit history to form one commit history
- Merge Conflicts: conflicting changes detected when attempting to merge
- Pull: merge the remote/hosted branch into the local branch (website to local)
- Push: merge the local branch into the remote/hosted branch (local to website)