summaryrefslogtreecommitdiff
path: root/Version_Control/vcs1/vcs1_rec.rst
diff options
context:
space:
mode:
authorPrimal Pappachan2012-02-15 12:15:58 +0530
committerPrimal Pappachan2012-02-15 12:15:58 +0530
commit60a0dd9dc0612912b3ccb10cfebc05f5bb84bba1 (patch)
treebaa5e5a009401889a22c5a8923a4f9eb969189e7 /Version_Control/vcs1/vcs1_rec.rst
parent582bf577ce699e0fb2a1084af7c42f64956b2993 (diff)
downloadsdes-stscripts-60a0dd9dc0612912b3ccb10cfebc05f5bb84bba1.tar.gz
sdes-stscripts-60a0dd9dc0612912b3ccb10cfebc05f5bb84bba1.tar.bz2
sdes-stscripts-60a0dd9dc0612912b3ccb10cfebc05f5bb84bba1.zip
80 chars per line and two column formatted
Diffstat (limited to 'Version_Control/vcs1/vcs1_rec.rst')
-rw-r--r--Version_Control/vcs1/vcs1_rec.rst137
1 files changed, 137 insertions, 0 deletions
diff --git a/Version_Control/vcs1/vcs1_rec.rst b/Version_Control/vcs1/vcs1_rec.rst
new file mode 100644
index 0000000..4487136
--- /dev/null
+++ b/Version_Control/vcs1/vcs1_rec.rst
@@ -0,0 +1,137 @@
+---------------------------------
+Version Control using Hg Part I
+---------------------------------
+
+.. Prerequisites
+.. -------------
+
+.. None
+
+.. Author : Primal Pappachan
+ Internal Reviewer : Kiran Isukapatla
+ Date: Jan 27, 2012
+
+----------------------
+Spoken Tutorial Script
+----------------------
+
+
+
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| *{{{ Show the first slide containing title, name of the production team along | Hello friends and welcome to the first part of tutorial on 'Version Control |
+| with the logo of MHRD}}}* | using Hg' |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| *{{{Show the slide containing the objectives}}}* | 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 |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| *{{{Show the slide 'what is version control'}}*} | First, let's understand what 'Version Control' is. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| *{{{Show the slide 'Home-brewed'}}}* | '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." |
+| | |
+| | 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. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| *{{{Show the slide 'Problems'}}}* | Let's 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, without |
+| | realizing, there were tools built by others, that performs the task in a more |
+| | organized and systematic way. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| *{{{Show the slide 'The need for Version Control'}}}* | 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 |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| *{{{Show the slide 'The need for Version Control'}}}* | Having seen the problems of a home brewed setup, let's now move onto |
+| | identifying the needs for a 'Version Control System'. |
+| | |
+| | 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 |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| *{{{Show the slide 'How does it work? - Analogy}}}* | 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 p |
+| | 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 |
+| | 4. It is good for a one man show as it is for a big group of people working on a |
+| | |
+| | 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. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| *{{{Show the slide 'Mercurial or hg'}}}* | 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 |
+| | the game. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| ``sudo apt-get install mercurial`` | Some of the Version Control tools available and used widely are: |
+| | |
+| | 1. cvs(Concurrent Version Systems) |
+| | #. svn(subversion) |
+| | #. hg(mercurial) |
+| | #. git |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| ``http://mercurial.selenic.com/downloads/`` | 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 |
+| ``http://hgbook.red-bean.com/read/a-tour-of-mercurial-the-basics.html`` | 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. |
+| .. R 13 | |
+| | Let's now get into Installation. For Linux distributions, Ubuntu and Debian |
+| For any other Operating system, please refer the hg book for installation | type the following in command line terminal |
+| instruction - | |
+| | |
+| Type 'hg' which lists out all the commands | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| ``$hg`` | For Windows, |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| ``$hg version`` | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| *{{{Show the 'summary' slide'}}}* | and 'hg version' which gives the version number. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| *{{{Show self assessment questions slide}}}* | 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 |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| *{{{Show the solutions slide to self assessment questions }}}* | 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? |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| *{{{Show the thank you slide}}}* | And the answers, |
+| | |
+| | 1. Mercurial is a Centralized Version Control system. To read more go here, htt |
+| | #. $hg version |
+| | #. $hg help command |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| | 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' |
+| | |
+| | Thank you |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+