TDDC88 Lab 4 Software Configuration Management

Size: px
Start display at page:

Download "TDDC88 Lab 4 Software Configuration Management"

Transcription

1 TDDC88 Lab 4 Software Configuration Management Introduction "Version control is to programmers what the safety net is to a trapeze artist. Knowing the net is there to catch them if they fall, aerialists are free to fly. In the same way, version control enables you to take programming risks that you would never otherwise consider. If something goes wrong, you can always revert back to a known, good-working version of your code. You can experiment in a branch 1 off the main trunk without interfering with other team members. When bugs are discovered in an older version of a shipped product, you can easily check out that specific version to confirm, fix, and generate a patch for the bug. Without version control, you would have to be much more cautious, move more slowly, and generally be less productive. -Elliotte Harold, Adjunct Professor, Polytechnic University The main idea of a version control system is to contain the software project in a so called repository; from which developers can check out copies of a project and in this way create local working copies. These working copies can then be edited and eventually uploaded, or committed, back to the repository, as a new version, or revision, of the file that has been modified. If several developers simultaneously are editing working copies of the same file, the version control system must be able to deal with conflicts that might occur when the developers later try to commit their different working copies to the repository. To be sure that a developer always has the latest revision of a file he or she should update his copy from the repository frequently, and at least before commit. The most commonly used version control system for the latest 20 years has been Concurrent Versions System, or CVS. In contrast to most other version control systems CVS uses a so called non-locking repository, which allows several developers to simultaneously edit local working copies of a file. This is in contrast to a locking repository, in which only one developer at a time can gain write access to a specific file. Although it is a good system, CVS is starting to get aged and is, because of its limited ability to handle file content, not suitable for all kinds of modern software development. Because of this, in 2004, the first version of its successor Subversion, or SVN, arrived, developed by the same people responsible for CVS. 1 The normal convention is to use three root folders for a software project: branches, tags, and trunk. Branches are for experiments. Tags normally identify older, already released versions of the software. However, most of the time, you'll want to work on the main branch, which is called trunk. SVN can be used in combination with Eclipse by using the plug-in Subclipse. In this way you can perform version control in a window environment directly on the projects you are developing in Eclipse.

2 As an alternative to SVN, Git exists. Git was developed by Linus Torvalds in 2005 for the development of the Linux kernel. Just as SVN this is also a non-locking repository and the main difference from SVN is that Git is a distributed version control while SVN is a client-server system. Git is by default included in the standard Eclipse version. Purpose The purpose of this exercise is to give you a fundamental understanding and practical experience of how a version control system works in general, some of the things that are possible with Git and SVN. It is possible to work with Git and SVN from the terminal (by typing the commands) or from a graphical user interface (e.g. standalone clients or plugins to IDEs such as eclipse). To have a perspective on both usages you will be doing the Git part of this lab mostly from the command line and the SVN part by using the Subclipse SVN plugin to eclipse IDE. 1. Git These tasks are for demonstrating some features and problems that may occur using version control and the features in Git. To make life a bit easier we will in the later part of the exercise pretend that we are monitoring two different developers, named Peter and Sally, who are working for the same company. This company has recently bought a project called HelloWorld. However, the product manager of the company would like to make some changes to HelloWorld and has put both Peter and Sally to work on the project. Of course, since Peter and Sally do not exist you will have to carry out the tasks for them. When you have finished the tasks you should report to the lab assistant and give an oral explanation and a demonstration of what you have done and what you learned from it. Be prepared to answer questions about details about your solution. Note: Using several workspaces can be a bit confusing. Therefore, it is very important that you read what you should do, before you do it! In the worst case you will have to re-do the lab from start if you just miss a single instruction. Task 1. Setting up a Git repository and importing a project In this first task you will create a Git repository and import the HelloWorld project to the repository. However, since this is something that developers usually don t have to bother about, we will not pay it that much attention, but only go through the task.

3 Open a terminal and run the following commands: git config --global user.name "<first name> <surname>" Change <first name> to your name and <surname> to your surname git config --global user. <liu-id>@student.liu.se Change <liu-id> to your liu-id mkdir p ~/TDDC88/git_lab cd ~/TDDC88/git_lab mkdir remote cd remote git init --bare HelloWorld.git This will create an empty git repository HelloWorld placed in the folder git_lab/remote placed in your home folder. The ~ is short for your home folder /home/<liu-id>/. *This folder corresponds to a remote repository where everyone has access to. Usually reachable through a network (e.g. internet). mkdir ~/TDDC88/git_lab/tmp cd ~/TDDC88/git_lab/tmp This will create and navigate to a temporary folder. git clone ~/TDDC88/git_lab/remote/HelloWorld.git This clones the repository we just created into a folder HelloWorld in the current directory. You should now have a copy of the repository in the current folder (tmp). The project is still empty. (NOTE: If you receive fatal error by running git add -A that says: it is not a git repository, than run the command cd HelloWorld ). cp r /home/tddc88/labs/helloworld./ git add A git commit m "Added HelloWorld files to repository." git push origin master This will be explained later, but it will in short we copied new files into the project. Added them to version tracking with Git. Committed the new changes. Then pushed our changes to the remote origin (which is located at git_lab/remote) so that everyone else can see them. cd ~/TDDC88/git_lab rm -rfd tmp Remove the temporary folder. We don t need it anymore. Task 2. Checking out working copies to two different workspaces In this task we will set up two new workspaces, one for Peter and one for Sally, and check out one working copy from the Git repository to each of the workspaces. You will from now on need two terminal sessions running at the same time. Use eclipse to modify and run the code.

4 Using two different eclipse and terminal sessions can be confusing since it might not be easy to tell which one belongs to who. So we will use the Workspace Switcher. The workspace switcher will keep the two desktops separate. In simple terms it would be as if you had two computers side by side (although it really is not! files, system resources are still shared). To install the workspace switcher: 1. right-click on the taskbar at the bottom of the desktop. 2. In the window that pops up. Scroll down and select workspace switcher Now you should see the workspace switcher at the task bar. By default, it has 4 Workspaces. 3. To make identifying simpler we will let the Switcher show the workspace names. Right click on the switcher panel and choose preferences. Then mark Show workspace names in switcher. Click Close. From now on Workspace 2 will be assumed Peter s and Workspace 3 will be Sally s. Workspace 1 will have every window you have already opened so we will leave that as it

5 is. Use it as you want. Pay attention to which workspace you are working on when you work as one of them. Now we are ready to start working as Peter. Switch to Workspace 2. Open a terminal and run the following commands: mkdir ~/TDDC88/git_lab/peter cd ~/TDDC88/git_lab/peter Create and navigate to peters folder git clone ~/TDDC88/git_lab/remote/HelloWorld.git Clone a working copy of the repository to peter. You should now have a folder named HelloWorld in the current folder (which is peter). This is your clone. It is Sally s turn now. Switch to Workspace 3. open a new terminal and do the same for sally: mkdir ~/TDDC88/git_lab/sally cd ~/TDDC88/git_lab/sally git clone ~/TDDC88/git_lab/remote/HelloWorld.git Back to Peter. Switch to Workspace 2. Open eclipse. Choose /home/<liu-id>/tddc88/git_lab/peter as your workspace. Click File New Project Select Java Project and click Next. As project name type HelloWorld after that everything should be grayed out so just press Finish. You will get a question about the Java perspective which you can select yes in. Switch to Sally s workspace and do the same for Sally. Use /home/<liu-id>/tddc88/git_lab/sally as your workspace this time.

6 Task 3. Modify-Commit-Conflict that can be automatically resolved Both Peter and Sally will now begin their modifications of HelloWorld. Their first assignment is to add some comments in the file HelloWorldFrame.java. Although, it is the only file in the project, the CEO still wants to clarify that it is the main file. 1) Sally starts by adding a comment at the top of the file HelloWorldFrame.java, clarifying that this is the main file; //This is the main file. Be sure that you are in Sally s workspace, add this comment and save the file! 2) Sally then checks if there has been a new revision to the repository and performs an update. To do this run git pull (Note: If you opened eclipse using terminal, than you should open new Terminal and run 'cd ~/TDDC88/git_lab/sally/HelloWorld' before running git pull command) in sally s terminal. Has anything happened since the latest revision? (Note: In some cases, if you receive message that this is not a git folder, you need to go in HelloWorld folder by writing 'cd HelloWorld' command on terminal) 3) Switch to Peter s workspace. 4) Peter, who is lagging behind somewhat, adds a comment right above the main method; //This is the main method. Add this to his working copy of the file and save it. Peter also checks for new revisions. (Note: If you opened eclipse using terminal, than you should open new Terminal and run 'cd ~/TDDC88/git_lab/peter/HelloWorld' before running git pull command) Do this! Has anything happened? Why/why not? 5) Switch to Sally s workspace. 6) Sally now feels pretty satisfied and decides to commit her working copy to the repository. Do this for her using the following commands: git status To check for unstaged changes, HelloWorld/HelloWorld/src/helloworld/HelloWorldFrame.java Should be marked in red. If you have unstaged.class files don t add those. git add <file path> This command puts the file in the staging area. Change <file path> to the unstaged file i.e. HelloWorld/HelloWorld/src/helloworld/HelloWorldFrame.java git commit -m Enter your/any commit message here This commits the changes. git pull git push This updates the server with your changes. git log -2 This shows the last 2 commits. 7) What is the git log output after the push? 8) What is the staging area for? 9) Why should you do a git pull before pushing?

7 10) Switch to Peter s workspace. 11) Peter also feels it is time to make a commit. Therefore, commit the file to the repository using the same procedure as above (i.e. number 6 above). Remember to enter a commit comment. What happened? Tip. If you find yourself in JOVE for solving a merge use the commands in the following order to save and exit (don t write the commas): ctrl+x, s, ctrl+x, ctrl+c, 12) Would it have been possible to solve the problem just as easily if Peter had added a comment at the top of the file as well? 13) Which is the three latest commit messages after Peter successfully has committed the file? Task 4. Modify-Commit-Conflict that must be manually resolved The product manager has also asked Peter to change the color of the Hello World - message from blue to green when pressing the button (tip: this can be done by locating the line jlabel.setforeground(new Color(0,0,255)); in main file). However, due to a misunderstanding Sally thought she was assigned to do this, she also thought the color should be red instead of blue. (Tip: for red it should be (255,0,0,) in the instruction and for green it should be (0,255,0) in the instruction) 1) Switch to Sally s workspace. 2) Make a pull for Sally (i.e. git pull) so that she has the latest revision. Locate the section in the file containing the information of the color, and enter the code for red. Save the file and run the application to make sure the text turns red instead of blue. Then make a commit with a suitable commit comment and push it to the server. 3) Switch to Peter s workspace. 4) Without first making an update with pull, help Peter change the color to green (changing color has been explained in task 4). Save the file and test the application! When you are done, try to commit and push the file (number 6 in Task 3 but do not run git pull command). If it does not work, you must solve the conflict in it and commit the merge! Tip: now run 'git pull' command in terminal and go to Peters's Eclipse and look for rows looking like these and replace it with what it should be: <<<<<<< HEAD // This is your local version ======= // This is the conflictiong change from the server >>>>>>> 9c421ebb4def402d2204d05301aec9b1b07e148a after updating the java file, run the following commands: git status git add <file path> git commit -m Enter your/any commit message here git push What happens? Can this problem be solved like before? Why/why not?

8 Task 5. Roll-back to an earlier revision The CEO of the company, who has been under a lot of stress lately, suddenly realizes that it is probably best to go with the blue color after all. The product manager is notified about this and asks Sally to fix it. 1) Switch to Sally s workspace and make sure she has the latest version by running git pull. 2) Sally, being a practical developer, thinks the best way to fix this is to make a so called roll-back to an earlier revision instead of changing the code. Help her with this. In this task you can choose to do it in eclipse or in the terminal. 3) In the terminal run git log and find a suitable commit that you want to check. On the commit you want to check copy the string following commit looking something like this 775b4b53e2de4d85f794c5932af3e5f133ffde07. (press q to exit from git log terminal) Then run : git diff HEAD 775b4b53e2de4d85f794c5932af3e5f133ffde07 This command will show what will be changed if we roll back or revert that commit. When you find the commit you want to revert run: git revert 775b4b53e2de4d85f794c5932af3e5f133ffde07 git pull git push Tip. If you find yourself in JOVE for solving a merge use the commands in the following order to save and exit (don t write the commas): ctrl+x, s, ctrl+x, ctrl+c, In Eclipse Right-click on the file and select Team Show in history. Right-click on a change and choose Compare with Workspace If it is the commit you want to revert right click it again and choose Revert commit. When the revert is done right click on the project and choose Team Push to upstream. 3) What does the log say now, why?

9 2.SVN To demonstrate some problems that may occur using version control and the features of SVN, you will in this lab work with three different workspaces in Eclipse, of which two simultaneously. To make life a bit easier we will in the later part of the exercise pretend that we are monitoring two different developers, named Peter and Sally, who are working for the same company. This company has recently bought a project called HelloWorld. However, the product manager of the company would like to make some changes to HelloWorld and has put both Peter and Sally to work on the project. Of course, since Peter and Sally do not exist you will have to carry out the tasks for them. When you have finished the tasks you should report to the lab assistant and give an oral explanation and a demonstration of what you have done and what you learned from it. Be prepared to answer questions about details in your code. Note: Using several workspaces can be a bit confusing. Therefore, it is very important that you read what you should do, before you do it! In the worst case you will have to re-do the lab from start if you just miss a single instruction. Task 1. Setting up a SVN repository and importing a project In this first task you will create a SVN repository and import the HelloWorld project to the repository. However, since this is something that developers usually don t have to bother about, we will not pay it that much attention, but only go through the task. Open a terminal and run the following command (Tip: If svnadmin command failed, create directories separately and then run the svnadmin command): svnadmin create /home/<username>/tddc88/svn_lab/repo This will create an empty SVN repository in the folder repo placed in the folder svn_lab placed in your home folder. NOTE: If you have errors during directory creation, first create all directories with 'mkdir -p /home/<username>/tddc88/svn_lab/repo' then run svnadmin create command. 1) Start Eclipse and import the HelloWorld project. It is located in /home/tddc88/labs/helloworld by choosing the File-menu and then Import... General Existing Projects into Workspace Click Next. 2) Click the radio button Select root directory: and fill in /home/tddc88/labs/helloworld Click the check-box Copy projects into workspace when importing. Click Finish. 3) Right-click on the Hello World project and select Team Share Project SVN and click Next. 4) Select the option Create a new repository location Click Next. 5) Fill in file:///home/<username>/tddc88/svn_lab/repo

10 in Location URL text box, where username is your liu-id. * This is a URI. Just like The extra slash on file:/// corresponds to the root folder in unix-like systems which is denoted by /. Click Next. 6) Click Finish 7) Right-click on Hello World project, Team Commit (enter message and ) and click ok 8) Close Eclipse Task 2. Checking out working copies to two different workspaces In this task we will set up two new workspaces, one for Peter and one for Sally, and check out one working copy from the SVN repository to each of the workspaces. You will from now on have two Eclipse sessions running at the same time. Since this can be somewhat confusing, a good idea to use the Workspace Switcher. To install the workspace switcher: right-click on the star-menu in the right corner. 1. In the window that pops up. Scroll down and select work space switcher 2. To make identifying simpler we will let the Switcher show the workspace names. Right click on the switcher panel and choose preferences. Then mark Show workspace names in switcher. Click Close.

11 From now on Workspace 2 will be assumed Peter s and Workspace 3 will be Sally s. Workspace 1 will have every window you have already opened so we will leave that as it is. Use it as you want. Pay attention to which workspace you are working on when you work as one of them. (Note: you may need to create a folder for sally and peter as before) Now we are ready to start working as Peter. Switch to Workspace Start Eclipse again but use the workspace (if peter is not there, you can create a folder) /home/<liu-id>/tddc88/svn_lab/peter 4. To check out Peter s working copy of HelloWorld, right click in the Project Explorer and select New->Project. Extend SVN and select Checkout Projects from SVN and click Next. 5. Select Create a new repository location, click Next. 6. Type in the url for the HelloWorld project contained in the SVN repository: file:///home/<username>/tddc88/svn_lab/repo/helloworld click Next. Click Next.

12 7. Select file:///home/<username>/tddc88/svn_lab/repo/helloworld Click Next. Click Next. Click Finish. 8. Now you can test run the program by for example go into the project files. HelloWorld Source helloworld and right-click on HelloWorldFrame.java and Select Run as Java application 9. What revision of the file HelloWorldFrame.java do you have? 10. Now, repeat the steps starting from step 4 above for Sally. Remember that you should not close the current Eclipse session! Use the Workspace Switcher on the desktop! And use /home/<liu-id>/tddc88/svn_lab/sally as your workspace. Task 3. Modify-Commit-Conflict that can be automatically resolved Both Peter and Sally will now begin their modifications of HelloWorld. Their first assignment is to add some comments in the file HelloWorldFrame.java. Although, it is the only file in the project, the CEO still wants to clarify that it is the main file. 1) Sally starts by adding a comment at the top of the file HelloWorldFrame.java, clarifying that this is the main file; //This is the main file. Be sure that you are in Sally s workspace, add this comment and save the file! 2) Sally then checks if there has been a new revision to the repository and performs an update. To do this select Team->Update to HEAD. Has anything happened since the latest revision? 3) Switch to Peter s workspace. 4) Peter, who is lagging behind somewhat, adds a comment right above the main method; //This is the main method. Add this to his working copy of the file and save it. Peter also checks for new revisions. Do this! Has anything happened? Why/why not? 5) Switch to Sally s workspace. 6) Sally now feels pretty satisfied and decides to commit her working copy to the repository, do this for her (TEAM->COMMIT)! Remember to add a commit comment and be sure to write Sally in the comment text field. What revision is Sally working with after the commit? 7) Switch to Peter s workspace. 8) Peter also feels it is time to make a commit. Therefore, commit the file to the repository. Remember to enter a commit comment. What happened? Help Peter solve the problem and commit again! 9) Would it have been possible to solve the problem just as easily if Peter had added a comment at the top of the file as well? 10) Which is the latest version of the file after Peter successfully has committed the file?

13 Task 4. Modify-Commit-Conflict that must be manually resolved The product manager has also asked Peter to change the color of the Hello World - message from blue to green when pressing the button. However, due to a misunderstanding Sally thought she was assigned to do this, she also thought the color should be red instead of blue. 1) Switch to Sally s workspace. 2) Make an update for Sally so that she has the latest revision (TEAM UPDATE To HEAD). Locate the section in the file containing the information of the color, and enter the code for red. Save the file and run the application to make sure the text turns red instead of blue. Then make a commit with a suitable commit comment (TEAM->COMMIT). 3) Switch to Peter s workspace. 4) Without first making an update, help Peter change the color to green. Save the file and test the application! When you are done, try to commit the file. If it does not work, you must update it! What happens? Can this problem be solved like before? Why/why not? 5) Peter has now noticed that he is not the only one working on the file. Help him to detect how the history of the file has changed by selecting Team->Show in History. 6) After confirming Sally s mistake from the History, help Peter fix the problem, by deleting code appropriate parts of the code. Make sure the Hello World - message now turns green. Save the file and confirm the manual change by selecting Team->Mark Resolved. Finally, commit the file. Task 5. Roll-back to an earlier revision The CEO of the company, who has been under a lot of stress lately, suddenly realizes that it is probably best to go with the blue color after all. The product manager is notified about this and asks Sally to fix it. 1) Switch to Sally s workspace and make sure she has the latest version. 2) Sally, being a practical developer, thinks the best way to fix this is to make a so called roll-back to an earlier revision instead of changing the code. Help her with this by using Compare With->Revision. Right-click on a suitable revision and select Get contents and save. Finally, make a new commit so that the latest revision of the application is the one with the blue Hello World -message. 3) Which is the final revision of the file? Examination When you are done and understand all steps in part A contact your assistant during a lab occasion. Be ready to answer questions concerning what you did when demonstrating. You don't need to hand in anything. References and resources: Version control with Subversion

14 Tigris.org, Open Source, Subversion Introducing Subversion

Working with GIT. Florido Paganelli Lund University MNXB Florido Paganelli MNXB Working with git 1/47

Working with GIT. Florido Paganelli Lund University MNXB Florido Paganelli MNXB Working with git 1/47 Working with GIT MNXB01 2017 Florido Paganelli Lund University florido.paganelli@hep.lu.se Florido Paganelli MNXB01-2017 - Working with git 1/47 Required Software Git - a free and open source distributed

More information

Department of Computer Science College of Engineering Boise State University

Department of Computer Science College of Engineering Boise State University Department of Computer Science College of Engineering Boise State University 1/18 Introduction Wouldn t you like to have a time machine? Software developers already have one! it is called version control

More information

Section 2: Developer tools and you. Alex Mariakakis (staff-wide)

Section 2: Developer tools and you. Alex Mariakakis (staff-wide) Section 2: Developer tools and you Alex Mariakakis cse331-staff@cs.washington.edu (staff-wide) What is an SSH client? Uses the secure shell protocol (SSH) to connect to a remote computer o Enables you

More information

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 11, 2017

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 11, 2017 Version Control Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level January 11, 2017 1 Scenario 1 You finished the assignment at

More information

Warmup. A programmer s wife tells him, Would you mind going to the store and picking up a loaf of bread? Also, if they have eggs, get a dozen.

Warmup. A programmer s wife tells him, Would you mind going to the store and picking up a loaf of bread? Also, if they have eggs, get a dozen. Warmup A programmer s wife tells him, Would you mind going to the store and picking up a loaf of bread? Also, if they have eggs, get a dozen. The programmer returns with 12 loaves of bread. Section 2:

More information

Source control with Subversion A user perspective

Source control with Subversion A user perspective http://svnbook.red-bean.com/ Source control with Subversion A user perspective Aaron Ponti What is Subversion? } It is a free and open-source version control system } It manages files and directories,

More information

[Software Development] Development Tools. Davide Balzarotti. Eurecom Sophia Antipolis, France

[Software Development] Development Tools. Davide Balzarotti. Eurecom Sophia Antipolis, France [Software Development] Development Tools Davide Balzarotti Eurecom Sophia Antipolis, France Version Control Version (revision) control is the process of tracking and recording changes to files Most commonly

More information

Revision control. INF5750/ Lecture 2 (Part I)

Revision control. INF5750/ Lecture 2 (Part I) Revision control INF5750/9750 - Lecture 2 (Part I) Problem area Software projects with multiple developers need to coordinate and synchronize the source code Approaches to version control Work on same

More information

Lab Exercise Git: A distributed version control system

Lab Exercise Git: A distributed version control system Lunds tekniska högskola Datavetenskap, Nov 21, 2016 EDAF45 Programvaruutveckling i grupp projekt Labb 2 (Git): Labbhandledning Checked on Git versions: 2.7.4 Lab Exercise Git: A distributed version control

More information

A BASIC UNDERSTANDING OF VERSION CONTROL

A BASIC UNDERSTANDING OF VERSION CONTROL A BASIC UNDERSTANDING OF VERSION CONTROL DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU

More information

How to version control like a pro: a roadmap to your reproducible & collaborative research

How to version control like a pro: a roadmap to your reproducible & collaborative research How to version control like a pro: a roadmap to your reproducible & collaborative research The material in this tutorial is inspired by & adapted from the Software Carpentry lesson on version control &

More information

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management CPSC 491 Lecture 19 & 20: Source Code Version Control VCS = Version Control Software SCM = Source Code Management Exercise: Source Code (Version) Control 1. Pretend like you don t have a version control

More information

Revision Control and GIT

Revision Control and GIT Revision Control and GIT On UD HPC Community Clusters William Totten Network & Systems Services Why use revision control You can go back in time It makes it easy to try things out which might not work

More information

2/9/2013 LAB OUTLINE INTRODUCTION TO VCS WHY VERSION CONTROL SYSTEM(VCS)? II SENG 371 SOFTWARE EVOLUTION VERSION CONTROL SYSTEMS

2/9/2013 LAB OUTLINE INTRODUCTION TO VCS WHY VERSION CONTROL SYSTEM(VCS)? II SENG 371 SOFTWARE EVOLUTION VERSION CONTROL SYSTEMS SENG 371 SOFTWARE EVOLUTION LAB OUTLINE Introduction to Version Control Systems VERSION CONTROL SYSTEMS Subversion Git and Github 1 Prepared by Pratik Jain 2 INTRODUCTION TO VCS A version control system

More information

Laboratorio di Programmazione. Prof. Marco Bertini

Laboratorio di Programmazione. Prof. Marco Bertini Laboratorio di Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Code versioning: techniques and tools Software versions All software has multiple versions: Each

More information

git commit --amend git rebase <base> git reflog git checkout -b Create and check out a new branch named <branch>. Drop the -b

git commit --amend git rebase <base> git reflog git checkout -b Create and check out a new branch named <branch>. Drop the -b Git Cheat Sheet Git Basics Rewriting Git History git init Create empty Git repo in specified directory. Run with no arguments to initialize the current directory as a git repository. git commit

More information

Common Configuration Management Tasks: How to Do Them with Subversion

Common Configuration Management Tasks: How to Do Them with Subversion Common Configuration Management Tasks: How to Do Them with Subversion Tom Verhoeff October 2007 Contents 1 The Big Picture 2 2 Subversion Help 2 3 Create New Empty Repository 2 4 Obtain Access to Repository

More information

SVN_Eclipse_at_home. 1. Download Eclipse. a. Go to: and select Eclipse IDE for Java Developers

SVN_Eclipse_at_home. 1. Download Eclipse. a. Go to:  and select Eclipse IDE for Java Developers 1. Download Eclipse SVN_Eclipse_at_home a. Go to: http://www.eclipse.org/downloads/ and select Eclipse IDE for Java Developers b. Select a mirror (which just means select which identical copy you should

More information

Programming with Haiku

Programming with Haiku Programming with Haiku Lesson 4 Written by DarkWyrm All material 2010 DarkWyrm Source Control: What is It? In my early days as a developer on the Haiku project I had troubles on occasion because I had

More information

Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018

Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018 Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018 Version Control September 18, 2018 Thursday (September 20) First in-class exercise On using git (today is a prelude with useful

More information

Chapter 3. Revision Control

Chapter 3. Revision Control Chapter 3 Revision Control We begin our journey into software engineering before we write a single line of code. Revision control systems (RCSes) such as Subversion or CVS are astoundingly useful for single-developer

More information

Version Control Systems (VCS)

Version Control Systems (VCS) Version Control Systems (VCS) Xianyi Zeng xzeng@utep.edu Department of Mathematical Sciences The University of Texas at El Paso. September 13, 2016. Version Control Systems Let s get the textbook! Online

More information

Revision control systems (RCS) and. Subversion

Revision control systems (RCS) and. Subversion Revision control systems (RCS) and Subversion Problem area Software projects with multiple developers need to coordinate and synchronize the source code Approaches to version control Work on same computer

More information

b. Developing multiple versions of a software project in parallel

b. Developing multiple versions of a software project in parallel Multiple-Choice Questions: 1. Which of these terms best describes Git? a. Integrated Development Environment b. Distributed Version Control System c. Issue Tracking System d. Web-Based Repository Hosting

More information

Versioning with git. Moritz August Git/Bash/Python-Course for MPE. Moritz August Versioning with Git

Versioning with git. Moritz August Git/Bash/Python-Course for MPE. Moritz August Versioning with Git Versioning with git Moritz August 13.03.2017 Git/Bash/Python-Course for MPE 1 Agenda What s git and why is it good? The general concept of git It s a graph! What is a commit? The different levels Remote

More information

Git Introduction CS 400. February 11, 2018

Git Introduction CS 400. February 11, 2018 Git Introduction CS 400 February 11, 2018 1 Introduction Git is one of the most popular version control system. It is a mature, actively maintained open source project originally developed in 2005 by Linus

More information

Topics covered. Introduction to Git Git workflows Git key concepts Hands on session Branching models. Git 2

Topics covered. Introduction to Git Git workflows Git key concepts Hands on session Branching models. Git 2 Git Git 1 Topics covered Introduction to Git Git workflows Git key concepts Hands on session Branching models Git 2 Introduction to Git Git 3 Version control systems The source files of a project changes

More information

Version Control Systems (Part 1)

Version Control Systems (Part 1) i i Systems and Internet Infrastructure Security Institute for Networking and Security Research Department of Computer Science and Engineering Pennsylvania State University, University Park, PA Version

More information

Software Development I

Software Development I 6.148 Software Development I Two things How to write code for web apps. How to collaborate and keep track of your work. A text editor A text editor A text editor Anything that you re used to using Even

More information

Version Control: Gitting Started

Version Control: Gitting Started ting Started Cai Li October 2014 What is Version Control? Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. Local Version

More information

CVS. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 21

CVS. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 21 CVS Computer Science and Engineering College of Engineering The Ohio State University Lecture 21 CVS: Concurrent Version System Classic tool for tracking changes to a project and allowing team access Can

More information

Storing and Managing Code with CVS

Storing and Managing Code with CVS Storing and Managing Code with CVS One of the most important things you do, as a software developer, is version source code and other project files. What does it mean to version a file? According to Merriam

More information

Common Git Commands. Git Crash Course. Teon Banek April 7, Teon Banek (TakeLab) Common Git Commands TakeLab 1 / 18

Common Git Commands. Git Crash Course. Teon Banek April 7, Teon Banek (TakeLab) Common Git Commands TakeLab 1 / 18 Common Git Commands Git Crash Course Teon Banek theongugl@gmail.com April 7, 2016 Teon Banek (TakeLab) Common Git Commands TakeLab 1 / 18 Outline 1 Introduction About Git Setup 2 Basic Usage Trees Branches

More information

Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum

Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum Table of Contents Preparation... 3 Exercise 1: Create a repository. Use the command line.... 4 Create a repository...

More information

1. Which of these Git client commands creates a copy of the repository and a working directory in the client s workspace. (Choose one.

1. Which of these Git client commands creates a copy of the repository and a working directory in the client s workspace. (Choose one. Multiple-Choice Questions: 1. Which of these Git client commands creates a copy of the repository and a working directory in the client s workspace. (Choose one.) a. update b. checkout c. clone d. import

More information

Source Code Management wih git

Source Code Management wih git Source Code Management wih git Matthieu Herrb December 22 http://homepages.laas.fr/matthieu/cours/git.pdf Licence This work is licensed under a Creative Commons Attribution-ShareAlike 3. Unported License.

More information

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects. Git AN INTRODUCTION Introduction to Git as a version control system: concepts, main features and practical aspects. How do you share and save data? I m working solo and I only have one computer What I

More information

Version Control Systems

Version Control Systems Nothing to see here. Everything is under control! September 16, 2015 Change tracking File moving Teamwork Undo! Undo! UNDO!!! What strategies do you use for tracking changes to files? Change tracking File

More information

CSE 390 Lecture 9. Version control and Subversion (svn)

CSE 390 Lecture 9. Version control and Subversion (svn) CSE 390 Lecture 9 Version control and Subversion (svn) slides created by Marty Stepp, modified by Jessica Miller and Ruth Anderson http://www.cs.washington.edu/390a/ 1 Working Alone Ever done one of the

More information

Lab Exercise 1 Using EGit and JUnit

Lab Exercise 1 Using EGit and JUnit Lab Exercise 1 Using EGit and JUnit This lab exercise will get you familiar with following: EGit, an Eclipse plug-in to use to a distributed version control system called Git. JUnit, a unit testing framework

More information

Object Oriented Programming. Week 1 Part 2 Git and egit

Object Oriented Programming. Week 1 Part 2 Git and egit Object Oriented Programming Part 2 Git and egit Lecture Review of Git Local Repository Remote Repository Using Git from Eclipse Review of Git 3 What is Git? Software Configuration Management (SCM) Supports

More information

Revision Control. Software Engineering SS 2007

Revision Control. Software Engineering SS 2007 Revision Control Software Engineering SS 2007 Agenda Revision Control 1. Motivation 2. Overview 3. Tools 4. First Steps 5. Links Objectives - Use revision control system for collaboration Software Engineering,

More information

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects. Git AN INTRODUCTION Introduction to Git as a version control system: concepts, main features and practical aspects. How do you share and save data? I m working solo and I only have one computer What I

More information

CSC 2700: Scientific Computing

CSC 2700: Scientific Computing CSC 2700: Scientific Computing Record and share your work: revision control systems Dr Frank Löffler Center for Computation and Technology Louisiana State University, Baton Rouge, LA Feb 13 2014 Overview

More information

Git. Charles J. Geyer School of Statistics University of Minnesota. Stat 8054 Lecture Notes

Git. Charles J. Geyer School of Statistics University of Minnesota. Stat 8054 Lecture Notes Git Charles J. Geyer School of Statistics University of Minnesota Stat 8054 Lecture Notes 1 Before Anything Else Tell git who you are. git config --global user.name "Charles J. Geyer" git config --global

More information

Lab 01 How to Survive & Introduction to Git. Web Programming DataLab, CS, NTHU

Lab 01 How to Survive & Introduction to Git. Web Programming DataLab, CS, NTHU Lab 01 How to Survive & Introduction to Git Web Programming DataLab, CS, NTHU Notice These slides will focus on how to submit you code by using Git command line You can also use other Git GUI tool or built-in

More information

Agenda. - Final Project Info. - All things Git. - Make sure to come to lab for Python next week

Agenda. - Final Project Info. - All things Git. - Make sure to come to lab for Python next week Lab #8 Git Agenda - Final Project Info - All things Git - Make sure to come to lab for Python next week Final Project Low Down The Projects are Creative AI, Arduino, Web Scheduler, ios and Connect 4 Notes

More information

Lab 08. Command Line and Git

Lab 08. Command Line and Git Lab 08 Command Line and Git Agenda Final Project Information All Things Git! Make sure to come to lab next week for Python! Final Projects Connect 4 Arduino ios Creative AI Being on a Team - How To Maximize

More information

And check out a copy of your group's source tree, where N is your one-digit group number and user is your rss username

And check out a copy of your group's source tree, where N is your one-digit group number and user is your rss username RSS webmaster Subversion is a powerful, open-source version control system favored by the RSS course staff for use by RSS teams doing shared code development. This guide is a primer to the use of Subversion

More information

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read) 1 For the remainder of the class today, I want to introduce you to a topic we will spend one or two more classes discussing and that is source code control or version control. What is version control?

More information

Tutorial 2 GitHub Tutorial

Tutorial 2 GitHub Tutorial TCSS 360: Software Development Institute of Technology and Quality Assurance Techniques University of Washington Tacoma Winter 2017 http://faculty.washington.edu/wlloyd/courses/tcss360 Tutorial 2 GitHub

More information

Using Git to Manage Source RTL

Using Git to Manage Source RTL Using Git to Manage Source RTL CS250 Tutorial 1 (Version 082311) August 24, 2011 Brian Zimmer How to use this tutorial This class will be using Git for all of the labs and projects. This will allow the

More information

Task-Oriented Solutions to Over 175 Common Problems. Covers. Eclipse 3.0. Eclipse CookbookTM. Steve Holzner

Task-Oriented Solutions to Over 175 Common Problems. Covers. Eclipse 3.0. Eclipse CookbookTM. Steve Holzner Task-Oriented Solutions to Over 175 Common Problems Covers Eclipse 3.0 Eclipse CookbookTM Steve Holzner Chapter CHAPTER 6 6 Using Eclipse in Teams 6.0 Introduction Professional developers frequently work

More information

Git Tutorial. Version: 0.2. Anders Nilsson April 1, 2014

Git Tutorial. Version: 0.2. Anders Nilsson April 1, 2014 Git Tutorial Version: 0.2 Anders Nilsson andersn@control.lth.se April 1, 2014 1 Introduction Why use git, or any other version control software to keep track of files? In short there are at least three

More information

Subversion. CS 490MT/5555, Fall 2015, Yongjie Zheng

Subversion. CS 490MT/5555, Fall 2015, Yongjie Zheng Subversion CS 490MT/5555, Fall 2015, Yongjie Zheng About Subversion } Subversion } A free/open source version control system } A typical client-server model } Uses the copy-modify-merge strategy } History

More information

#25. Use Source Control in a Single- Developer Environment

#25. Use Source Control in a Single- Developer Environment #25. Use Source Control in a Single- Developer Environment How Do I...? Part 1: Install Source Control 1. Browse to the ClassFiles folder on your desktop, and then double-click Git-[version]- preview-[date].exe.

More information

Version Control with Git ME 461 Fall 2018

Version Control with Git ME 461 Fall 2018 Version Control with Git ME 461 Fall 2018 0. Contents Introduction Definitions Repository Remote Repository Local Repository Clone Commit Branch Pushing Pulling Create a Repository Clone a Repository Commit

More information

Version Control. 1 Version Control Systems. Ken Bloom. Linux User Group of Davis March 1, 2005

Version Control. 1 Version Control Systems. Ken Bloom. Linux User Group of Davis March 1, 2005 Version Control Ken Bloom Linux User Group of Davis March 1, 2005 You ve probably heard of version control systems like CVS being used to develop software. Real briefly, a version control system is generally

More information

Submitting your Work using GIT

Submitting your Work using GIT Submitting your Work using GIT You will be using the git distributed source control system in order to manage and submit your assignments. Why? allows you to take snapshots of your project at safe points

More information

Version Control. Kyungbaek Kim. Chonnam National University School of Electronics and Computer Engineering. Original slides from James Brucker

Version Control. Kyungbaek Kim. Chonnam National University School of Electronics and Computer Engineering. Original slides from James Brucker Version Control Chonnam National University School of Electronics and Computer Engineering Kyungbaek Kim Original slides from James Brucker What is version control Manage documents over time Keep a history

More information

Version Control Systems

Version Control Systems Version Control Systems Version Control In the 2 nd edition of Pro Git, version control is described as a system that records changes to a file or set of files over time so that you can recall specific

More information

! #Running this command from the top directory of your project will add all your changes."! $ git add."

! #Running this command from the top directory of your project will add all your changes.! $ git add. ********************************* ********************************* ** ** ** Git Toolkit ** ** ** ********************************* ********************************* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

More information

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018 Version Control Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level January 17, 2018 1 But first, Screen Readers The software you

More information

Version Control. CSC207 Fall 2014

Version Control. CSC207 Fall 2014 Version Control CSC207 Fall 2014 Problem 1: Working Solo How do you keep track of changes to your program? Option 1: Don t bother Hope you get it right the first time Hope you can remember what changes

More information

GETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017

GETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017 GETTING STARTED WITH Michael Lessard Senior Solutions Architect June 2017 Agenda What is Git? Installation of Git Git basis Github First steps with Git 2 WHAT IS GIT? What is Git? Started in 2005 Created

More information

Version Control Systems: Overview

Version Control Systems: Overview i i Systems and Internet Infrastructure Security Institute for Networking and Security Research Department of Computer Science and Engineering Pennsylvania State University, University Park, PA Version

More information

Git version control with Eclipse (EGit) Tutorial

Git version control with Eclipse (EGit) Tutorial Git version control with Eclipse (EGit) Tutorial 출처 : Lars Vogel http://www.vogella.com/tutorials/eclipsegit/article.html Lars Vogel Version 3.6 Copyright 2009, 2010, 2011, 2012, 2013, 2014 Lars Vogel

More information

Git tutorial. Katie Osterried C2SM. October 22, 2015

Git tutorial. Katie Osterried C2SM. October 22, 2015 Git tutorial Katie Osterried C2SM October 22, 2015 Outline 1 What is Git and why are we switching? 2 Working with Git 3 Branching and Merging 4 Working with remote repositories 5 Recommendations Outline

More information

Project Management. Overview

Project Management. Overview Project Management Overview How to manage a project? What is software configuration management? Version control systems Issue tracking systems N. Meng, L. Zhang 2 1 What is Project Management? Effective

More information

Git for Version Control

Git for Version Control Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from http://git-scm.com/book/en/ http://www.cs.washington.edu/403/ About

More information

Revision Control. An Introduction Using Git 1/15

Revision Control. An Introduction Using Git 1/15 Revision Control An Introduction Using Git 1/15 Overview 1. What is revision control? 2. 30,000 foot view 3. Software - git and gitk 4. Setting up your own repository on onyx 2/15 What is version control?

More information

CS108, Stanford Handout #37. Source Control CVS

CS108, Stanford Handout #37. Source Control CVS CS108, Stanford Handout #37 Fall, 2008-09 Osvaldo Jiménez Source Control CVS Thanks to Nick Parlante for much of this handout Source Control Any modern software project of any size uses "source control"

More information

Technology Background Development environment, Skeleton and Libraries

Technology Background Development environment, Skeleton and Libraries Technology Background Development environment, Skeleton and Libraries Christian Kroiß (based on slides by Dr. Andreas Schroeder) 18.04.2013 Christian Kroiß Outline Lecture 1 I. Eclipse II. Redmine, Jenkins,

More information

Introduction to Revision Control

Introduction to Revision Control Introduction to Revision Control Henrik Thostrup Jensen September 19 th 2007 Last updated: September 19, 2007 1 Todays Agenda Revision Control Why is it good for? What is it? Exercises I will show the

More information

GUIDE TO MAKE A REAL CONTRIBUTION TO AN OPEN SOURCE PROJECT 1. 1

GUIDE TO MAKE A REAL CONTRIBUTION TO AN OPEN SOURCE PROJECT 1. 1 GUIDE TO MAKE A REAL CONTRIBUTION TO AN OPEN SOURCE PROJECT 1. 1 WHO AM I? @tushar_rishav GSoC'16 student contributing to coala - a static code analysis tool, under Python So ware Foundation. A senior

More information

What is Subversion and what does it do?

What is Subversion and what does it do? What is Subversion and what does it do? A version control system Manages files and directories and any changes made to those files and directories Can be used across networks to promote remote collaboration

More information

Version Control. Version Control

Version Control. Version Control Version Control Prepared for CS 342 - Software Design by John Bell Based on slides prepared by Jason Leigh for CS 340 University of Illinois at Chicago Version Control Incredibly important when working

More information

CS 320 Introduction to Software Engineering Spring February 06, 2017

CS 320 Introduction to Software Engineering Spring February 06, 2017 CS 320 Introduction to Software Engineering Spring 2017 February 06, 2017 Recap: Software development process models Traditional models Waterfall model Iterative and incremental Prototyping Spiral model

More information

Outline The three W s Overview of gits structure Using git Final stuff. Git. A fast distributed revision control system

Outline The three W s Overview of gits structure Using git Final stuff. Git. A fast distributed revision control system Git A fast distributed revision control system Nils Moschüring PhD Student (LMU) 1 The three W s What? Why? Workflow and nomenclature 2 Overview of gits structure Structure Branches 3 Using git Setting

More information

CS 520: VCS and Git. Intermediate Topics Ben Kushigian

CS 520: VCS and Git. Intermediate Topics Ben Kushigian CS 520: VCS and Git Intermediate Topics Ben Kushigian https://people.cs.umass.edu/~rjust/courses/2017fall/cs520/2017_09_19.zip Our Goal Our Goal (Overture) Overview the basics of Git w/ an eye towards

More information

Git. A Distributed Version Control System. Carlos García Campos

Git. A Distributed Version Control System. Carlos García Campos Git A Distributed Version Control System Carlos García Campos carlosgc@gnome.org Carlos García Campos carlosgc@gnome.org - Git 1 A couple of Quotes For the first 10 years of kernel maintenance, we literally

More information

2/8/18. Overview. Project Management. The First Law. What is Project Management? What Are These Changes? Software Configuration Management (SCM)

2/8/18. Overview. Project Management. The First Law. What is Project Management? What Are These Changes? Software Configuration Management (SCM) Overview Project Management How to manage a project? What is software configuration management? Version control systems Issue tracking systems N. Meng, L. Zhang 2 What is Project Management? Effective

More information

Version Control System - Git. zswu

Version Control System - Git. zswu Version Control System - Git zswu Overview Why VCS? Why Git? Using Git Personally Using Git with Others Etiquette Rules of Using Git Tools & Services Tips 2 Why VCS (1/3) How do you manage your homework?

More information

A Brief Git Primer for CS 350

A Brief Git Primer for CS 350 A Brief Git Primer for CS 350 Tyler Szepesi (shamelessly stolen by Ben Cassell) University of Waterloo becassel@uwaterloo.ca September 8, 2017 Overview 1 Introduction 2 One-Time Setup 3 Using Git Git on

More information

Software Tools Subversion

Software Tools Subversion Software Tools Subversion Part II Lecture 4 1 Today s Outline Subversion (SVN) TortoiseSVN Client SVN Tips 2 Subversion (SVN) 3 Subversion (SVN) Centralized open-source VCS; started in 2000 Developed as

More information

Agenda. Several projects are using GIT Developer(s) Junio Hamano, Linus Torvalds. Qt Stable release (January 31, 2011)

Agenda. Several projects are using GIT Developer(s) Junio Hamano, Linus Torvalds. Qt Stable release (January 31, 2011) Basic Agenda 1 Project information Who is ussing 2 14 Oct 2011 3 Basic Data Transport Work ow 4 Con gure 5 Basic Project information Who is ussing Project information Who is ussing Project information

More information

Version control with Git.

Version control with Git. 1 Version control with Git http://git-scm.com/book/en/ Basic Intro to Git We will: Discuss how Git differs from Subversion Discuss the basic Git model Pull/clone files from a repository on github Edit

More information

Git Tutorial. André Sailer. ILD Technical Meeting April 24, 2017 CERN-EP-LCD. ILD Technical Meeting, Apr 24, 2017 A. Sailer: Git Tutorial 1/36

Git Tutorial. André Sailer. ILD Technical Meeting April 24, 2017 CERN-EP-LCD. ILD Technical Meeting, Apr 24, 2017 A. Sailer: Git Tutorial 1/36 ILD Technical Meeting, Apr 24, 2017 A. Sailer: Git Tutorial 1/36 Git Tutorial André Sailer CERN-EP-LCD ILD Technical Meeting April 24, 2017 LD Technical Meeting, Apr 24, 2017 A. Sailer: Git Tutorial 2/36

More information

Introduction to GIT. Jordi Blasco 14 Oct 2011

Introduction to GIT. Jordi Blasco 14 Oct 2011 Jordi Blasco (jblasco@xrqtc.com) 14 Oct 2011 Agenda 1 Project information Who is ussing GIT 2 Branch Tag Data Transport Workow 3 Congure 4 Working with remotes 5 Project information Who is ussing GIT Project

More information

Git. A fast distributed revision control system. Nils Moschüring PhD Student (LMU)

Git. A fast distributed revision control system. Nils Moschüring PhD Student (LMU) Git A fast distributed revision control system Nils Moschüring PhD Student (LMU) Nils Moschüring PhD Student (LMU), Git 1 1 The three W s What? Why? Workflow and nomenclature 2 Overview of gits structure

More information

Subversion Repository Layout

Subversion Repository Layout Subversion Subversion Control manages documents over time keeps a history of all changes - multiple versions of every file coordinates work of multiple authors avoids conflicts...and helps to resolve them

More information

CSE 374 Programming Concepts & Tools. Hal Perkins Winter 2012 Lecture 16 Version control and svn

CSE 374 Programming Concepts & Tools. Hal Perkins Winter 2012 Lecture 16 Version control and svn CSE 374 Programming Concepts & Tools Hal Perkins Winter 2012 Lecture 16 Version control and svn Where we are Learning tools and concepts relevant to multi-file, multi-person, multi-platform, multi-month

More information

Version Control for Fun and Profit

Version Control for Fun and Profit Version Control for Fun and Profit Chris Brady Heather Ratcliffe The Angry Penguin, used under creative commons licence from Swantje Hess and Jannis Pohlmann. Warwick RSE 30/11/2017 Version control 30/11/2017

More information

Version control with git and Rstudio. Remko Duursma

Version control with git and Rstudio. Remko Duursma Version control with git and Rstudio Remko Duursma November 14, 2017 Contents 1 Version control with git 2 1.1 Should I learn version control?...................................... 2 1.2 Basics of git..................................................

More information

Assumptions. GIT Commands. OS Commands

Assumptions. GIT Commands. OS Commands Many of the world s largest dev teams have adopted Git and it s not hard to see why It can handle small and large projects easily It has a tiny footprint It outclasses other version control tools It s

More information

Working with CVS in Eclipse

Working with CVS in Eclipse Working with CVS in Eclipse Hoang Huu Hanh Institute of Software Technology and Interactive Systems Vienna University of Technology Favoritenstrasse 9-11/188 1040 Vienna, Austria hhhanh@ifs.tuwien.ac.at

More information

Software Revision Control for MASS. Git Installation / Configuration / Use

Software Revision Control for MASS. Git Installation / Configuration / Use Software Revision Control for MASS Git Installation / Configuration / Use Matthew Sell, CSSE Student MASS Research Participant, February 2014 Overview Download / execute installer Initial configuration

More information

Lab Objective. Lab Assignment. Downloads and Installation

Lab Objective. Lab Assignment. Downloads and Installation How I Start Working with Git: Git Lab 01 Adapted from: (1) https://github.com/quantstack/xeus-cling (2) https://code.visualstudio.com/docs/languages/cpp Lab Objective 1. Installing and using VS Code 2.

More information

Source Control. Comp-206 : Introduction to Software Systems Lecture 21. Alexandre Denault Computer Science McGill University Fall 2006

Source Control. Comp-206 : Introduction to Software Systems Lecture 21. Alexandre Denault Computer Science McGill University Fall 2006 Source Control Comp-206 : Introduction to Software Systems Lecture 21 Alexandre Denault Computer Science McGill University Fall 2006 Source Revision / Control Source Control is about the management of

More information

Subversion FOUR. 4.1 What is Version Control? 4.2 What is Subversion? Types of Version Control SESSION

Subversion FOUR. 4.1 What is Version Control? 4.2 What is Subversion? Types of Version Control SESSION SESSION FOUR 4.1 What is Version Control? Subversion Version control or revision control is the management of the evolution of information. Typically it is used in engineering or software development where

More information