Difference between revisions of "Putting your project under version control"
m |
|||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
+ | |||
+ | |||
+ | ==Introduction to Version control== | ||
+ | |||
If you’ve used Microsoft Word or Excel, OpenOffice or any of the like, you may already be familiar with a process called '''version control''' or '''revision control'''. It’s the management of the changes made to a document by creating different or new versions each time it’s modified, and allows you to revert to any previous version if needed; some programs also allow you to merge versions. This is usually implemented on documents where changes are made often or if it’s being worked on by multiple people in a team. | If you’ve used Microsoft Word or Excel, OpenOffice or any of the like, you may already be familiar with a process called '''version control''' or '''revision control'''. It’s the management of the changes made to a document by creating different or new versions each time it’s modified, and allows you to revert to any previous version if needed; some programs also allow you to merge versions. This is usually implemented on documents where changes are made often or if it’s being worked on by multiple people in a team. | ||
Line 6: | Line 10: | ||
There are different models of software available, which vary depending on how the information is shared. The deciding factors as to which VCS model to use depend on the type of project and amount of collaboration that will take place, as well as preference of a centralized system versus a peer-to-peer approach. | There are different models of software available, which vary depending on how the information is shared. The deciding factors as to which VCS model to use depend on the type of project and amount of collaboration that will take place, as well as preference of a centralized system versus a peer-to-peer approach. | ||
− | ==Why Version control ?== | + | ===Why Version control ?=== |
* gives a project-wide undo button; nothing is final, and mistakes are easily rolled back | * gives a project-wide undo button; nothing is final, and mistakes are easily rolled back | ||
Line 16: | Line 20: | ||
* works as a project-wide time machine, allowing you to dial in a date and see exactly what the project looked like on that date | * works as a project-wide time machine, allowing you to dial in a date and see exactly what the project looked like on that date | ||
− | ==What is Version control system ?== | + | ===What is Version control system ?=== |
* a place to store all the various revisions of the files your write while developing an application. | * a place to store all the various revisions of the files your write while developing an application. | ||
Line 24: | Line 28: | ||
* should be safe, secure, reliable, gets backed up regularly | * should be safe, secure, reliable, gets backed up regularly | ||
− | ==What to store ?== | + | ===What to store ?=== |
* Source code | * Source code | ||
Line 31: | Line 35: | ||
* Significant emails, minutes of meetings, info from the Web | * Significant emails, minutes of meetings, info from the Web | ||
− | ==Basic terminology== | + | ===Basic terminology=== |
'''Working copy''': local copy of all the things we need from the repository to work on our part of the project. | '''Working copy''': local copy of all the things we need from the repository to work on our part of the project. | ||
Line 40: | Line 44: | ||
'''Update''': receive the latest set of files from repository. | '''Update''': receive the latest set of files from repository. | ||
+ | |||
+ | |||
+ | ==How to put your project under version control== | ||
+ | |||
+ | [describe here] | ||
==Further reading== | ==Further reading== | ||
+ | |||
+ | |||
+ | |||
+ | [write a list here] | ||
[[Category:Qualiteam services]] | [[Category:Qualiteam services]] |
Revision as of 18:15, 24 February 2011
Introduction to Version control
If you’ve used Microsoft Word or Excel, OpenOffice or any of the like, you may already be familiar with a process called version control or revision control. It’s the management of the changes made to a document by creating different or new versions each time it’s modified, and allows you to revert to any previous version if needed; some programs also allow you to merge versions. This is usually implemented on documents where changes are made often or if it’s being worked on by multiple people in a team.
When it comes to web development, team projects are very common. Developing a website can consist of a large amount of files that may need multiple modifications, making it a very important process to keep them organized. That’s specific software for these processes are available, which are called Version Control Systems (VCS for singular). A VCS is essentially a file database that keeps a collection of source files, archiving them with details of the history of all changes made, and can give you options such as file locking and merging.
There are different models of software available, which vary depending on how the information is shared. The deciding factors as to which VCS model to use depend on the type of project and amount of collaboration that will take place, as well as preference of a centralized system versus a peer-to-peer approach.
Why Version control ?
- gives a project-wide undo button; nothing is final, and mistakes are easily rolled back
- allows multiple developers to work on the same code base in a controlled manner
- keeps a record of the changes made over time
- works as a project-wide time machine, allowing you to dial in a date and see exactly what the project looked like on that date
What is Version control system ?
- a place to store all the various revisions of the files your write while developing an application.
- it all goes to repository, a central place that holds the master copy of all versions of your files.
- should be safe, secure, reliable, gets backed up regularly
What to store ?
- Source code
- Test data
- Database schema
- Significant emails, minutes of meetings, info from the Web
Basic terminology
Working copy: local copy of all the things we need from the repository to work on our part of the project.
Check out: extract to working copy. Ensures that you get up-to-date of the files you request and that these files are copied into a directory structure that mirrors that of the repository.
Commit: save changes back to repository.
Update: receive the latest set of files from repository.
How to put your project under version control
[describe here]
Further reading
[write a list here]