Bureaucrats, cc_docs_admin, cc_staff, rsnt_translations
2,839
edits
(Marked this version for translation) |
|||
Line 1: | Line 1: | ||
<languages /> | <languages /> | ||
<translate> | <translate> | ||
== Introduction == | == Introduction == <!--T:1--> | ||
Source code management is one of the cornerstones of application development. When the time comes to manage the source code of a project you're working on, there are two ways to proceed. You could make multiple backup copies, send the source code to your colleagues by e-mail and waste time trying to remember who has or is using which version of the code and how to reconcile the modifications that each contributor has made. Alternatively, you could choose a much more rational approach by using a revision control system that has been specifically created to make this process as painless as possible. | Source code management is one of the cornerstones of application development. When the time comes to manage the source code of a project you're working on, there are two ways to proceed. You could make multiple backup copies, send the source code to your colleagues by e-mail and waste time trying to remember who has or is using which version of the code and how to reconcile the modifications that each contributor has made. Alternatively, you could choose a much more rational approach by using a revision control system that has been specifically created to make this process as painless as possible. | ||
Line 22: | Line 22: | ||
If you want to contribute to an existing project, you don't really have any choice - you will have to use the tool that has been chosen by the initial development team. If you are starting your own project, the choice will depend on the breadth of your project. If it's a project with only a few contributors, which will remain private and for which you would simply like to have a history of all the modifications, a first generation tool like [https://en.wikipedia.org/wiki/Apache_Subversion SVN] can be sufficient. If your project is larger, with external collaborators, you should consider a second generation tool like [https://en.wikipedia.org/wiki/Git_%28software%29 Git] or [https://en.wikipedia.org/wiki/Mercurial Mercurial]. | If you want to contribute to an existing project, you don't really have any choice - you will have to use the tool that has been chosen by the initial development team. If you are starting your own project, the choice will depend on the breadth of your project. If it's a project with only a few contributors, which will remain private and for which you would simply like to have a history of all the modifications, a first generation tool like [https://en.wikipedia.org/wiki/Apache_Subversion SVN] can be sufficient. If your project is larger, with external collaborators, you should consider a second generation tool like [https://en.wikipedia.org/wiki/Git_%28software%29 Git] or [https://en.wikipedia.org/wiki/Mercurial Mercurial]. | ||
=== Repository Hosting === | === Repository Hosting === <!--T:9--> | ||
Another question to consider when choosing a version control tool is where you will host your repository. If you and your collaborators are always working on the same single machine then having a local repository only visible on that machine could be sufficient. However, if you are working across multiple machines, or working with collaborators working on different machines, a repository accessible via the internet will be helpful. This will allow you to easily synchronise your code between machines and also provide additional safety for your code by being distributed. There are a number of ways to accomplish this, from hosting and setting up the repository your self on your own server (eg. [https://civicactions.com/blog/how-to-set-up-an-svn-repository-in-7-simple-steps/ svn],[https://git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols git],[https://about.gitlab.com/?utm_source=google&utm_medium=cpc&utm_campaign=Search%20-%20Brand&utm_content=GitLab%20-%20Open%20Source%20Git&utm_term=gitlab&gclid=CPWslub9vtACFZSEaQodwzoAew gitlab], [https://github.com/gitbucket/gitbucket gitbucket]), to using one of the available online services (e.g. [https://bitbucket.org/product bitbucket], [https://github.com/ github], [https://about.gitlab.com/ gitlab], [https://sourceforge.net/ sourceforge], [http://www.cloudforge.com/pricing?gclid=CKGBsIj-vtACFRCRaQod7sUNew cloudForge]) which is hosted on their servers and do not require you to have a server that is always accessible. | Another question to consider when choosing a version control tool is where you will host your repository. If you and your collaborators are always working on the same single machine then having a local repository only visible on that machine could be sufficient. However, if you are working across multiple machines, or working with collaborators working on different machines, a repository accessible via the internet will be helpful. This will allow you to easily synchronise your code between machines and also provide additional safety for your code by being distributed. There are a number of ways to accomplish this, from hosting and setting up the repository your self on your own server (eg. [https://civicactions.com/blog/how-to-set-up-an-svn-repository-in-7-simple-steps/ svn],[https://git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols git],[https://about.gitlab.com/?utm_source=google&utm_medium=cpc&utm_campaign=Search%20-%20Brand&utm_content=GitLab%20-%20Open%20Source%20Git&utm_term=gitlab&gclid=CPWslub9vtACFZSEaQodwzoAew gitlab], [https://github.com/gitbucket/gitbucket gitbucket]), to using one of the available online services (e.g. [https://bitbucket.org/product bitbucket], [https://github.com/ github], [https://about.gitlab.com/ gitlab], [https://sourceforge.net/ sourceforge], [http://www.cloudforge.com/pricing?gclid=CKGBsIj-vtACFRCRaQod7sUNew cloudForge]) which is hosted on their servers and do not require you to have a server that is always accessible. | ||