diff options
Diffstat (limited to 'Version_Control/vcs1/vcs1.rst')
-rw-r--r-- | Version_Control/vcs1/vcs1.rst | 269 |
1 files changed, 151 insertions, 118 deletions
diff --git a/Version_Control/vcs1/vcs1.rst b/Version_Control/vcs1/vcs1.rst index 306dfda..11a61f5 100644 --- a/Version_Control/vcs1/vcs1.rst +++ b/Version_Control/vcs1/vcs1.rst @@ -1,7 +1,3 @@ ---------------------------------- -Version Control using Hg Part I ---------------------------------- - .. Prerequisites .. ------------- @@ -9,21 +5,20 @@ Version Control using Hg Part I .. Author : Primal Pappachan Internal Reviewer : Kiran Isukapatla - Date: Jan 27, 2012 + Date: May 10 2012 ----------------------- -Spoken Tutorial Script ----------------------- +-------- +Script +-------- .. L1 -{{{ Show the first slide containing title, name of the production team along +{{{ Show the first slide containing title, name of the production team along with the logo of MHRD}}} .. R1 -Hello friends and welcome to the first part of tutorial on 'Version Control -using Hg' +Hello friends and welcome to the tutorial on 'Version Control with Hg' .. L2 @@ -33,214 +28,252 @@ using Hg' At the end of this tutorial you will be able to - 1. Understand what is Version Control - #. Identify the need for using Version Control - #. Install Mercurial and intialize a repository +1. Understand what is Version Control. -.. R3 +#. Identify the need for using Version Control. -First, let's understand what 'Version Control' is. +#. Install Mercurial. .. L3 {{{Show the slide 'what is version control'}}} -.. R4 - -'Version control' is a way to track files over time and share them. This allows -access to earlier versions of a file(s) if and when required. It therefore -enables us to make changes to the content of a file, view it's change log and -collaborate on a single piece of work with a team of people. - -As the quote from the famous blog post 'Version Control for masses' says -"Version control is one of those weird, geeky things that never really gained -much ground in non-geek fields, despite the fact that it’s blindingly useful." +.. R3 -Over the course of these 3 spoken tutorials, we are going to see a handful of -such things, which are widely used in the programmer world, but not so much in -the scientific computing world, even when if they would be very useful. +First, let's understand what 'Version Control' is. +'Version control' is a way to track files over time and share them. +This allows access to earlier versions of a file(s) if and when required. +It therefore enables us to make changes to the content of a file, view it's +change log and collaborate on a single piece of work with a team of people. + .. L4 {{{Show the slide 'Home-brewed'}}} -.. R5 - -Let's look at an example of home-brewed Version Control system +.. R4 -Version control is a way of backing up files, before making changes. Most -people would have cooked up their own version control system, without -realizing, there were tools built by others, that performs the task in a more -organized and systematic way. +Lets look at an example of home-brewed Version Control system.Version control +is a way of backing up files, before making changes. Most people would have +cooked up their own version control system. .. L5 +{{{Show the next slide 'Home-brewed'}}} + +.. R5 + +Listing the files in the folder we observe that after a point of time it +becomes difficult to maintain proper names for different versions of a file. + +.. L6 + {{{Show the slide 'Problems'}}} .. R6 Let's look at the various problems associated with this set-up. - 1. Name and changes made are not related or linked. - #. Can't track sequence of changes made to a file - #. Does not scale +1. Name and changes made are not related or linked. -.. L6 +#. Can't track sequence of changes made to a file. -{{{Show the slide 'The need for Version Control'}}} +#. Does not scale. -.. R7 - -Having seen the problems of a home brewed setup, let's now move onto -identifying the needs for a 'Version Control System'. +To overcome this problems there are more general purpose tools which can +do this task in an organized way. - 1. To err is Human . . . - #. Tracking the history and evolution of a project - #. To collaborate effectively on a project - #. To efficiently track down bugs and pin-point the - #. changes that caused it .. L7 {{{Show the slide 'The need for Version Control'}}} -.. R8 +.. R7 + +Now, let's move to identifying the needs for a 'Version Control System'. -We have seen that one of the main motivations to use a Version Control system -is the ability to go back to a working version of a file, when something goes -wrong. Below are a few more advantages of using an automated version control -system. +We have seen that one of the main motivations to use a Version Control system +is the ability to go back to a working version of a file, when something +goes wrong. Below are a few more advantages of using an automated version +control system. - 1. By tracking the history of a project, any person may see the evolution of a -project. This helps to track what changes were made at what point of time, when -and by whom. - #. Allows for effective collaboration on a project, as everything is shared. - #. Helps to identify which additions have broken down a project and thus aids - in efficient tracking down of the bugs. - #. It is good for a one man show as it is for a big group of people working on - a project. +1. By tracking the history of a project, any person may see the evolution +of a project. + +2. Allows for effective collaboration on a project, as everything is shared. + +3. Helps to identify which additions have broken down a project and thus +aids in efficient tracking down of the bugs. + +4. It is good for a one man show as it is for a big group of people working +on a project. -Keeping your stuff version controlled will help avoid accidental deletion of -individual files etc. Hosting it on a remote server will protect your sanity -from a hard disk crash. .. L8 {{{Show the slide 'How does it work? - Analogy}}} -.. R9 +.. R8 -It is, in some ways, similar to playing a video game. We generally play games -in stages. While playing, we save the game at some instances as per our choice. -We continue playing, but we could, if necessary, choose to go back to one of -the saved states and start over. In this manner, we could change the course of +It is, in some ways, similar to playing a video game. We generally play games +in stages. While playing, we save the game at some instances as per our choice. +We continue playing, but we could, if necessary, choose to go back to one of the +saved states and start over. In this manner, we could change the state of the game. .. L9 {{{Show the slide 'Mercurial or hg'}}} -.. R10 +.. R9 -Some of the Version Control tools available and used widely are: +Some of the Version Control tools available and used widely are: cvs, svn, +git and so on. - 1. cvs(Concurrent Version Systems) - #. svn(subversion) - #. hg(mercurial) - #. git +Each of these tools have their own merits and demerits. In this tutorial we +shall learn how to use mercurial or hg. -.. R11 +Mercurial or hg is: -Each of these tools have their own merits and demerits. In this tutorial we -shall learn how to use mercurial or hg which is easy to learn and use and -comparatively light weight. Once you learn how to use hg, you can easily try -other tools and switch to one that you feel most comfortable with. +1. Easy to learn and use + +#. Lightweight -Let's now get into Installation. For Linux distributions, Ubuntu and Debian -type the following in command line terminal +#. Scales excellently -.. L10 +#. Written in Python -sudo apt-get install mercurial +.. L10 -.. R12 +{{{Show the slide 'Installation'}}} -For Windows, +.. R10 -.. L11 +Let's now get into Installation -http://mercurial.selenic.com/downloads/ +.. L10 -http://hgbook.red-bean.com/read/a-tour-of-mercurial-the-basics.html +{{{Switch to terminal}}} +:: + + $sudo apt-get install mercurial -.. R 13 +.. R10 -For any other Operating system, please refer the hg book for installation -instruction - +Type sudo apt-get install mercurial -Type 'hg' which lists out all the commands +Type hg .. L12 +:: -$hg + $hg -.. R14 +.. R12 -and 'hg version' which gives the version number. +It will give you the list of basic commands. .. L13 +:: + + $hg version + +.. R13 -$hg version +and 'hg version' gives the version number of mercurial you are presently using. .. L14 {{{Show the 'summary' slide'}}} -.. R15 +.. R14 This brings us to the end of the tutorial. In this tutorial, we have -seen, - 1. the motivation to use version control - #. an analogy of version control with playing a video game - #. how to check if mercurial is installed, and it's version using hg version +learnt: + +1. What is Version Control. + +#. Identify the need for using Version Control + +#. Install Mercurial. .. L15 {{{Show self assessment questions slide}}} -.. R16 +.. R15 Here are some self assessment questions for you to solve - 1. Is Mercurial a Centralized VCS or Distributed VCS? Justify your reasoning. - #. How can you verify whether Mercurial has been installed properly? - #. What is the command for accessing built-in help system of Mercurial? +1. Is Mercurial a Centralized VCS or Distributed Version Control System? + +#. How can you retrive the version of Mercurial installed? + .. L16 {{{Show the solutions slide to self assessment questions }}} -.. R17 +.. R16 And the answers, - 1. Mercurial is a Centralized Version Control system. To read more go here, - http://en.wikipedia.org/wiki/Distributed_revision_control - #. $hg version - - #. $hg help command +1. Mercurial is a Distributed Version Control system. +#. hg version .. L17 -{{{Show the thank you slide}}} +{{{ Show the SDES & FOSSEE slide }}} + +.. R17 + +Software Development techniques for Engineers and Scientists - SDES, is an +initiative by FOSSEE. For more information, please visit the given link. + +Free and Open-source Software for Science and Engineering Education - FOSSEE, is +based at IIT Bombay which is funded by MHRD as part of National Mission on +Education through ICT. + +.. L18 + +{{{ Show the ``About the Spoken Tutorial Project'' slide }}} .. R18 -Hope you have enjoyed this tutorial and found it useful. Feel free to play -around with Mercurial and read the documentation given by hg help command. When -you are ready to move on, please proceed to the second tutorial on 'Version -Control using Hg' +Watch the video available at the following link. It summarises the Spoken +Tutorial project.If you do not have good bandwidth, you can download and +watch it. + +.. L19 + +{{{ Show the `` Spoken Tutorial Workshops'' slide }}} + +.. R19 + +The Spoken Tutorial Project Team conducts workshops using spoken tutorials, +gives certificates to those who pass an online test. + +For more details, contact contact@spoken-tutorial.org + +.. L20 + +{{{ Show the ``Acknowledgements'' slide }}} + +.. R20 + +Spoken Tutorial Project is a part of the "Talk to a Teacher" project. +It is supported by the National Mission on Education through ICT, MHRD, +Government of India. More information on this mission is available at the +given link. + +.. L21 + +{{{Show the thank you slide}}} + +.. R21 +Hope you have enjoyed this tutorial and found it useful. Thank you |