9 and 11-Jan CSCI 4152/6509 Natural Language Processing Lab 1: FCS Computing Environment, SVN Tutorial. FCS Computing Environment, SVN Tutorial

Size: px
Start display at page:

Download "9 and 11-Jan CSCI 4152/6509 Natural Language Processing Lab 1: FCS Computing Environment, SVN Tutorial. FCS Computing Environment, SVN Tutorial"

Transcription

1 Lecture 1 p.1 Faculty of Computer Science, Dalhousie University CSCI 4152/6509 Natural Language Processing Lab 1: FCS Computing Environment, SVN Tutorial 9 and 11-Jan-2019 Lab Instructor: Dijana Kosmajac, Afsan Gujarati, and Yuhan Fu Location: Goldberg CS Building Time: 12:35 13:25 Notes copyright: Mike McAllister, Vlado Keselj, Magdalena Jankowska FCS Computing Environment, SVN Tutorial Slide notes: Lab Overview An objective: Make sure that all students are familiar with their CSID and how to login to the bluenose server Refresh your memory about Linux Command-Line Interface Introduction to your SVN repository for the course Introduction to Perl (just hello world for now) Note 1: Replace CSID with your FCS CS user id (a.k.a., CSID) Note 2: If you do not know your CSID, lookup at: An objective of this lab it to make sure that all students are familiar with the basic FCS (Faculty of Computer Science, Dalhousie University) computing environment. This means that you should know your CSID. This is a separate Computer Science user id, in addition to the the Dalhousie ID and Banner number. Among other things, the CSID is needed when logging in into the Computer Science servers and when using the SVN repository. Step 1: Logging in to server bluenose You can choose Windows, Mac or Linux environment in some labs Windows: you will use PuTTY program On Mac: open a Terminal and type: ssh CSID@bluenose.cs.dal.ca (instead of CSID use your CS userid ) On Linux: similarly to Mac, you open the terminal and type the same command: ssh CSID@bluenose.cs.dal.ca Your first step is to login into the bluenose server. You can use a lab computer or your own laptop. Some labs have a choice of using Windows or Mac environment; in some labs you may only use Windows. You can use any of them. You may have a chance to use a Linux computer, and it is very convenient for this lab as well. On Mac: In Mac OS environment, you can click on the search image in the upper right corner and type Terminal to find the Terminal application. Another way to find the Terminal application is to look into the Mac applications folder. Once you open the terminal, you can login to the bluenose server by typing: ssh CSID@bluenose.cs.dal.ca January 18, 2019, CSCI 4152/ prof6509/

2 Lecture 1 p.2 CSCI 4152/6509 where CSID is your CS userid. On Linux: In a Linux environment, you should, similarly to Mac, open a terminal and type: ssh CSID@bluenose.cs.dal.ca where CSID is your CS userid. On Windows: If you use a Windows environment, you will need to use a program named PuTTY to login to the bluenose.cs.dal.ca server. The PuTTY program has already been installed in the lab machines. You can also install it on any other machine since it is freely available at sgtatham/putty Running PuTTY If you use Windows, then one option is to use PuTTY to login to the bluenose server Double-click the PuTTY icon, and the following window should appear: You should fill in the basic information: bluenose.cs.dal.ca for the Host Name. Make sure that the port number is 22; i.e., Connection type is SSH. You click Open and the login process should start. You are likely to receive a warning about an unknown host key. Normally, this is something that you should be careful about and try to make sure that the offered fingerprint matches the fingerprint of the server, but in a relatively secure network you can accept this connection. Once accepted, the host key is stored with PuTTY and this warning should not appear again. Review of Some Linux Commands We will now briefly review some Linux command-line commands that you can use on the bluenose server. If you already know Linux or other type of Unix-like system, you should be familiar with the following commands and you can quickly try them out. Otherwise, these commands are a good start into learning more about basics of using a Linux file system.

3 CSCI 4152/6509 Lecture 1 p.3 Step 2: pwd. Immediately after login, your current directory will be a directory known as your home directory. The program that you are communicating with in a terminal after logging in is called shell (known also as command line in some operating systems). Our current directory is associated with our currently executing shell. To print our current working directory we can use the command pwd. Enter the command: pwd to show the path name of your current working directory. It is a good idea to frequently use this command to verify that your current working directory is the one you think it is, or to find out what is your current working directory. If you are not familiar with the Unix (Linux) command line, you should read about it: there are a lot of resources on the web. A useful way to learn more about a command is to use command man. For example, if you type: man pwd you can read about the command pwd. The command man stands for manual pages. You can exit the man pwd command by pressing the key q. Step 3: mkdir, ls, chmod. Depending on which course number you registered for (CSCI4152 or CSCI6509) you should create a directory named csci4152 or csci6509. To use an example, we will show the commands with the 6509 number, but you should use the appropriate number. First you can create a directory for the course work using the following command: mkdir csci6509 or mkdir csci4152 depending on the course number. Enter the command: ls to display the files (including subdirectories) in your working directory. Do you see the name of the directory you just created? Now, enter the command: chmod go-rx csci6509 or chmod go-rx csci4152 This command will prevent other users from entering and seeing the content of this directory. Step 4: lab1 directory. Enter the command: cd csci6509 or cd csci4152 to change your current working directory to to the directory you created in the previous step. Use the pwd command to verify that you performed this task successfully. Create a directory with the name lab1 in your current working directory, and change the current working directory to the directory lab1. Verify that you have performed these tasks successfully. If you type the command pwd it should display the following path: /users/cs/csid/csci4152/lab1 or /users/cs/csid/csci6509/lab1 The part /users/cs/ may vary in case that there are some changes on the server, but the part CSID/csci6509/lab1 (or CSID/csci4152/lab1 ) should be exactly as shown. Step 5: Prepare hello.pl in emacs. Now we are going to write a simple Perl program and run it. This will be a simple Hello world! program, which prints a line saying Hello world!. The first step is to write the source code.

4 Lecture 1 p.4 CSCI 4152/6509 We can use emacs editor for this task. If you are more comfortable with some other editor, you can use it. For example, the editors pico and nano are user-friendly, but less suitable for serious programming as they are less powerful in terms of functionality. The editors vi and vim are quite powerful, but with possibly a bit steeper learning curve. In this course, we will provide most help with emacs. A file with filename filename is opened in the editor emacs using command emacs filename or in the editor pico using the command pico filename. If you are not familiar with emacs, it should be relatively easy to start using it. A few basic instructions will be explained below, and there are many resources on the Internet that can be used. One available resource on the Internet is the following tutorial. It is very useful, although somewhat long: You can start reading it and stop once you are comfortable using emacs to edit a small program. Another way that you can learn Emacs is to simply type emacs in your PuTTY terminal. This will start the editor, with an initial splash screen explaining basic commands. You can also notice in the splash screen that by pressing C-h t ; i.e,., Control-h and then t, you can start a tutorial, and this is also a way to learn emacs. The emacs documentation uses notation C-x for Ctrl-x, i.e., Control-x key. Additional special way for pressing keys is M-x, which stands for Meta-x. Some keyboards have a special Meta key which is used, but more commonly this is obtained by pressing the Alt key and x in the same time, or by pressing Esc and x one after another (not in the same time!). Here are the most important emacs commands: to start editing a (possibly new) file in emacs: type in the terminal emacs filename where filename is the name of the file to exit emacs: type C-x C-c sequence (remember, this means Control-x Control-c). to save the current file: type C-x C-s Now, we can go back to editing the Perl program, which we will call hello.pl and which should print string Hello world! on a line by itself. You can start by typing: emacs hello.pl in the shell command line. Now, in the emacs window, type in the following program: #!/usr/bin/perl print "Hello world!\n"; After finishing the program, you can exit emacs using C-x C-c. You will need to confirm that you want to save the file by pressing y on the emacs question Save file.... If you want to save the file without exiting, use C-x C-s. Also, if you do not see font highlighting, you may want to try enabling that by typing M-x global-font-lock-mode (remember, M-x is produced with key combination Alt+x or Esc x one after another). This can be set as default by adding the following line to the emacs initialization file.emacs in your home directory: (global-font-lock-mode 1) Step 6: Running a Perl program. Exit emacs and enter: perl hello.pl to run you program. The program should produce one line of output: Hello world!. To run the program in this way, we did not even need the first line of the program (#!/usr/bin/perl); but this line is important in the second way to run the program, as follows. First, we change the file permissions allowing the user to execute the program:

5 CSCI 4152/6509 Lecture 1 p.5 chmod u+x hello.pl Then, we run the program in the following way:./hello.pl We will now go through an SVN tutorial. The SVN system will be used for assignment submission. SVN Tutorial: Source Control with SVN (Perl Version) In this tutorial, you will learn or refresh your knowledge about SVN. Performing these steps will be graded as a part of an assignment SVN will be used for assignment submission It is possible that not all students have the course SVN repository. In that case, let the instructor know. You will be able to finish the tutorial next week. This tutorial is slightly modified version of the SVN tutorial Source Control with SVN prepared by Michael McAllister for CSCI Source Control with SVN In the second part of this lab you will familiarize yourself with the Subversion (or SVN) source control system. While many people interact with SVN using a GUI interface (often part of their development IDE), we can access SVN with command line parameters on bluenose. All development companies use some form of source control, so becoming familiar with the basic notions of source control is useful. You won t be a master of source control after this lab, but you will have at least seen some of the basic concepts and commands. Subversion is relatively popular (as far as free software goes). A more recent source control system is called git while Perforce and ClearCase are two popular commercial offerings. Older source control systems include SCCS, RCS, and CVS (in case you hear about them). You will learn or refresh your knowledge about how to: 1. checkout projects in SVN 2. add a subproject (subdirectory) to SVN 3. add, delete files in SVN; and commit your changes 4. change files in SVN, and merge changes from different copies 5. resolve conflicts that may result from parallel changes 6. revert changes and retrieve older versions of the files Repository and Working Copy SVN uses remote directory system called repository to store files and history of their changes You can review changes and retrieve older versions Files can be shared among users and SVN can be used for collaborative work SVN uses notion of working copy of the files We send (or commit) files to the repository when we are happy with their state For example, we generally do not commit program unless they can be compiled A Couple Notes Replace CSID with your CS user id (a.k.a., CSID) Important Security Note: Each time that you enter an SVN command in this lab, you will be asked for your bluenose password. Enter it. When asked if you want to store the password, answer no each time, since the password is not stored safely currently.

6 Lecture 1 p.6 CSCI 4152/6509 If you are sure that you know what you are doing, you may temporarily say yes to make SVN use easier, but then make sure that only you have access permissions to the the directory./subversion, and it is a good idea to delete the whole directory after each session. Step 7: Set-up for the SVN Tutorial 1. If you are not logged in into bluenose, login now. You need to be logged in in two different windows (If you use putty on windows, open putty twice and login to bluenose both times. If you use a terminal on mac or linux, open two terminals and ssh to bluenose from each of them.) Call one window your primary window and the other window your secondary window. The lab will be working in two different directories, so you can have each window open to a different directory to avoid changing directories all the time. 2. In the primary window, change directory to csci4152/lab1 or csci6509/lab1, whichever is your course number using the command: cd /csci6509/lab1 or cd /csci4152/lab1 make directory primary with command: mkdir primary and change directory to it: cd primary 3. Similarly, in the secondary window, change directory to csci4152 or csci6509, whichever is your course number using the command: cd /csci6509/lab1 or cd /csci4152/lab1 make directory secondary with command: mkdir secondary and change directory to it: cd secondary In summary, if you use the command pwd it should show the following directory in the primary window: /csci6509/lab1/primary or /csci4152/lab1/primary and the following directory in the secondary window: /csci6509/lab1/secondary or /csci4152/lab1/secondary The part will be replaced with a common directory for all student home directories, so the only important part to compare is the end part. As mentioned previously, whenever CSID appears in the commands, you should include your own CS userid, which is also your bluenose username. Concepts of Repository and Working Copy SVN helps you manage a remote directory system where you can store files. That directory system is called a repository. The repository keeps a history of all the changes that are made to its files so that you can review how the files changed and retrieve previous versions of your files. Repositories are often shared among people as a way for all the people to get access to the same set of files. SVN uses the notion of a working copy of the repository. So, when you put files into the SVN repository, you don t edit the files directly there. Instead, you retrieve a working copy of the files, modify your working copy, and then send (or commit) the files back to the SVN repository when you are satisfied with their state. So, you generally just commit files from your working copy to the SVN repository once the files are in some kind of stable (though possibly incomplete) state. For example, when using a repository to store programs, you generally do not commit files until they compile, at the least. In most cases, you will just commit the program files after they pass your unit tests.

7 CSCI 4152/6509 Lecture 1 p.7 Step 8: Checkout and Adding a Directory Our first step is to create a subproject for this lab in your repository. 1. Checkout. In your primary window, retrieve a working copy of the whole NLP course directory of yours using SVN s checkout command. The repository is located on a separate machine, called svn.cs.dal.ca, that you cannot log into. You interact with svn.cs.dal.ca through the svn command on bluenose. In the following command, replace CSID with your own bluenose username: svn checkout Note: If this command does not work, a possible reason is that you registered only recently in the course and your SVN directory for the course has not been set up. In that case, you should the course instructor with your name, CSID, and Banner number and this information will be used to set-up your directory. However, it will take probably a day or two until this is done. Only then you will be able to continue with this lab. Notice that the checkout command uses a web address, so you can get to the machine from anywhere on the Internet. Also notice that the start of the web address is https and not http. You now have a directory called CSID in your primary window that has the entire contents of your NLP course repository (which is nothing so far). Make this CSID directory your working directory in your primary window using command cd CSID. 2. List all files (visible and hidden) in the CSID directory ls -a While there are no visible files, SVN created a hidden subdirectory called.svn. This directory contains all the SVN state for the directory, including the location of your repository. While you are in this directory, you don t need to specify the repository name anymore since SVN will get that information from the.svn subdirectory. 3. Adding directory. Create a subdirectory in your primary window called svnlab. This will be our new subproject to add to SVN. mkdir svnlab We will now add this directory to the SVN repository with the SVN add command: svn add svnlab You should see the output line A svnlab where SVN is telling you that svnlab will be added (the A ) when you next commit your changes to SVN. The svnlab subdirectory is not in your repository yet. It is just ready to go. Step 9: Commit Command To create the svnlab subdirectory in your repository, you must commit the add command using the SVN commit command: svn commit -m "Creating a project for my SVN lab" And you should see back Adding svnlab Committed revision 2. The part revision 2. will probably show a different (higher) number of revision. This number is increased every time a commit is made to the repository. This particular repository is shared among students in the class, where anyone making a commit will increase this number, so the number will keep increasing.

8 Lecture 1 p.8 CSCI 4152/6509 This subdirectory is now available in your repository with the web address Open this address with your browser to check that the directory has been submitted. You will need your CSID and password to login. The -m "xx" part of the command adds a message to the repository to explain what you are doing. When you or other people review your repository later, the log messages will be used to find out what changed, in a high-level view, in the code. All commit commands require a log message. If you forget to include the -m part then SVN will start your default editor to ask you for a log message. Step 10: Adding Files 10.a: Adding files: Make the svnlab directory your working directory in the primary window. Copy the following program into a file called hello.pl: #!/usr/bin/perl print "Hello world!\n"; Create two more copies of this file as hello2.pl and tmp.pl: cp hello.pl hello2.pl cp hello.pl tmp.pl 10.b: We will now add two files to your repository, again with the SVN add command: svn add hello.pl hello2.pl with output A hello.pl A hello2.pl Notice that we can add any number of files at the same time to the repository. Are these files in the repository yet? No, since we haven t issued a commit command to send them from your working copy to your repository. We can compare the state of our working directory with the SVN repository with the SVN status command. In your primary window, enter svn status Your output should look like A hello.pl A hello2.pl? tmp.pl The A for the two sample files indicates that these files are waiting to be added to the repository. The? at tmp.pl indicates that SVN knows nothing about the tmp.pl file and will do nothing with the file. 10.c: Commit Files: Send the two files to SVN with the SVN commit command. svn commit -m "Adding the first version of my sample files." If you re-issue the SVN status command, you should now get as output? tmp.pl SVN does not report on hello.pl and hello2.pl since the copy in your working directory is now identical to what is in the repository. Step 11: Deleting Files 11.a: Delete files: Suppose now that we did not mean to add hello2.pl to the repository and want to remove it. While still in the primary window, we use the SVN delete command: svn delete hello2.pl that outputs D hello2.pl

9 CSCI 4152/6509 Lecture 1 p.9 The leading D indicates that the file is now set for deletion. Re-issue the SVN status command to get the output? tmp.pl D hello2.pl again, showing that SVN does not know about tmp.pl and is ready to delete hello2.pl. 11.b: The change doesn t happen until you commit it to the repository (one line): svn commit -m "File hello2.pl was added by mistake earlier. It was just a backup copy of hello.pl" While hello2.pl is no longer active in the SVN repository, we can still retrieve past copies of it later if we conclude that we shouldn t have deleted the file. Notice that the hello2.pl file is no longer in our working directory. Step 12: Checking out Second Copy 12: Checking out second copy: We will now start to work with two copies of your code. You might do this in real life if you are trying out two different solutions or if two different people were working on the same code. Activate your secondary window and make sure that you are in the directory:... /lab1/secondary You can check this using the command pwd and if you are not in the appropriate directory, you can go there using the command cd. In your secondary window, checkout a copy of just the svnlab code, remembering to replace the CSID part with your own bluenose username: svn checkout You should now have a svnlab directory in your secondary window with a hello.pl file in it. Make that svnlab directory your working directory in the secondary window. Notice that there is no hello2.pl file in this directory. We did the SVN delete command on the file, so we don t retrieve the file when we checkout fresh copies from the repository. By default, SVN returns the most recent copy of the code that is in the repository. Step 13: Changing Files 13.a In your primary window, edit your copy of hello.pl to become the following file: #!/usr/bin/perl for my $i (1..10) { print "Hello world!\n"; } Save the file and run: svn commit. Now, go to the secondary window and run svn update. You can verify that the updated file is there. 13.b: Modifying a file: In your primary window, edit your copy of hello.pl and change the for loop to iterate 15 times rather than 10 times. Once you exit your editor, issue the SVN status command again. You should have output that looks like? tmp.pl M hello.pl The M with hello.pl indicates that your working copy of the file has modifications that are not in the repository. 13.c: You can view the modifications with the SVN diff command: svn diff hello.pl The command will show you the lines where your version and the repository version of the file are different along with a few lines before and after the difference. Let s send this modification to the repository with the SVN commit command again

10 Lecture 1 p.10 CSCI 4152/6509 svn commit -m "Use a longer loop iteration" You should get a message to show that the change was sent to the repository. Re-issue the SVN diff command for the hello.pl file. Does it report any differences? Why? In your secondary window, look at the contents of hello.pl. It doesn t include the change that you just sent to the repository. This is because changes to the repository are not automatically sent to your working copy of the code so that this working copy remains stable for you. 13.d: Update. To retrieve this newer copy, issue the SVN update command to update the working copy svn update with output U hello.pl Updated to revision 16. The leading U means that there is a more recent copy of the code in the repository than what is in the working copy of the code. What happened to the number of iterations in hello.pl in the working copy? 13.e: Delete. What happens if we delete a file in a working copy? In the secondary window, delete the hello.pl file: rm hello.pl Confirm that the file is gone with the UNIX ls command. Executing the SVN status command will show you that the file hello.pl is missing by the! symbol in its output:! hello.pl Issue the SVN update command one more time. What happens to the contents of the working directory? 13.f: Parallel Changes. Let s now introduce changes in our two copies of hello.pl. In hello.pl of your primary window, add a print statement before the for loop: print "I am about to start the loop\n"; In hello.pl of your secondary window, add a printf statement just before the return statement: printf ("I have finished the loop\n"); Now each copy of your file has a different change to hello.pl. In each of the directories, use the SVN status command to confirm that the hello.pl file is different from what is in the repository (look for the leading M tag beside the file names). 13.g: Merging Changes. In your primary window, issue an SVN commit command to send the change to the repository. Don t forget to include a -m "xx" log message in the command. For example, you can use: svn commit -mprimary In your secondary window, try to commit the change to hello.pl, for example, using command: svn commit -msecondary The command will fail since someone (you) committed a change to hello.pl in the repository after the working copy in the secondary window was retrieved. To do the commit, you must first ensure that you have the most up-to-date version of the code from the repository. Use the SVN update command to get this copy svn update with output G hello.pl Updated to revision 17. The M tag on hello.pl from before has now changed to a G. The G indicates that your changes and those from the repository have been automatically merged in the file. SVN was able to merge the changes since the changes in the primary and secondary windows did not overlap. Edit the hello.pl file to confirm that it now has both changes. We are satisfied with this change, so re-issue the SVN commit command in the secondary window to send the update to the repository. Again, don t forget to include a comment for the commit command, for example: svn commit -m"merged changes" Bring both directories up to date. In both the primary and secondary windows, issue the SVN update command

11 CSCI 4152/6509 Lecture 1 p.11 svn update 13.h: Conflicting Changes. We will now see what happens if the separate changes conflict with one another. In your primary window, edit hello.pl, change the for loop to iterate 30 times, and commit the change to SVN. In your secondary window, edit hello.pl, change the for loop to iterate 5 times, and try to commit the change to SVN. Like the last time, the commit in your secondary window failed because your secondary window didn t have the most recent copy of the code. Again, like before, use the SVN update command to try and get the most recent version of code from the repository. Unlike last time, SVN isn t able to merge the two changes since they are on the same line. Instead, the update returns with the following message: Conflict discovered in hello.pl. Select: (p) postpone, (df) diff-full, (e) edit, (mc) mine-conflict, (tc) theirs-conflict, (s) show all options: SVN is giving you the opportunity to fix see the differences (df) or fix the problem (edit the file). If you choose to edit the file, SVN will show you the file in your default editor. Since we haven t defined that editor, let s select the postpone option. Enter p and let SVN continue with the update (if there were other files). In the secondary directory, SVN has now left several files. In addition to your hello.pl, it has the files hello.pl.mine, and two hello.pl files with an ending of.rx where the X is the version number of each file. hello.pl the hello.pl file with the diff information embedded for you to resolve hello.pl.mine your modified code hello.pl.r9 the original copy of the code that you modified in this working directory (revision 9) hello.pl.r11 the most recent version of the code in the repository (revision 11) At this point, you can either change hello.pl to merge both changes (still having the other versions around as a reference) or copy one of the other versions to overwrite hello.pl with what you want the final copy to be. 13.i: Examining Conflict. In the secondary window, re-issue the SVN status command. Rather than seeing that hello.pl is modified, you will now get the output C hello.pl where the leading C indicates that hello.pl has a conflict that you need to resolve before it is sent to the repository. Before fixing the conflict, we should find out what the changes were. A first step is often to look at the comments from the commit to find out why someone else changed the repository. Use the SVN log command in the secondary window to get the log of messages for a file: svn log hello.pl You will get output to show each of the versions of the file along with the commit messages. If the message on the last commit for hello.pl isn t giving you enough information, you can use the SVN diff command again to see where your file differs from what is in the repository svn diff hello.pl A part of the output is something like: +<<<<<<<.mine +for my $i (1..5) { +======= for my $i (1..30) { +>>>>>>>.r39 13.j: Resolving Conflict: Given this information, choose a fix to hello.pl (for the lab, it doesn t matter what the fix is). Usually, you can either: Edit hello.pl directly (delete extra lines, etc.) Choose our version: cp hello.pl.mine hello.pl Choose repository version: cp hello.pl.r39 hello.pl Choose original last updated version: cp hello.pl.r38 hello.pl In this case, we can simply choose: cp hello.pl.mine hello.pl

12 Lecture 1 p.12 CSCI 4152/6509 If you try to commit the file, SVN will still refuse since it doesn t know yet that you have resolved the conflict. To do so, issue SVN s resolved command on the file: svn resolved hello.pl After issuing this command, the hello.pl.mine, and hello.pl.rxfiles will be removed from your working directory. You can now issue the SVN commit command to send the changes to the repository. Step 14: Retrieving copies of previous work 14.a You sometimes make changes to a program that you later regret and want to undo. Many of you probably make a copy of a file once it is working and this undo step means copying that old file to overwrite your current file. We want to use a repository to automate that process better. Each time you reach a stable point in your development, it is worthwhile to do an SVN commit to put that stable point into your repository. Aside: If you are making changes in parallel as someone else is, it is useful to make frequent updates and commits. In your secondary window, edit hello.pl and introduce a compile error (like changing the reserved word print to pprint). Save the file to disk (but not to the repository). Suppose that you now want to undo that change and return to the last saved copy in the repository. Three options that you already know how to do are: use SVN checkout elsewhere to get a fresh copy of the repository and copy the hello.pl file from there delete hello.pl in the working directory and then use the SVN update command to have SVN notice that there is a new version of hello.pl in the repository and make a copy in your working directory use SVN diff to identify the changes that you made and manually change hello.pl to return it to its previous state Each of these involves a bit more work than is necessary. If you want the last version of the file, SVN has a command called revert to retrieve that copy: svn revert hello.pl After issuing the command, look at hello.pl again to notice that you now have the version of the file that precedes your latest editing. 14.b: Retrieving Older Versions: It is possible that you might want to retrieve a much older version of your file. You can use the -r option the update command. The -r lets you specify which revision of the file that you want. Try svn update -r 34 hello.pl You can use svn log hello.pl to find interesting revision numbers. What is the content of this hello.pl file? If you changed this earlier version of the file, SVN will not let you commit the change directly to the repository since it is based on an out-of-date version of the file. You would need to do an SVN update command to return to latest copy (inducing a conflict with the file) where you then need to resolve any conflicts with the latest version. 14.c: Retrieving by Timestamps: Sometimes you don t know the exact revision number that you want to retrieve, but you know when the directory was last stable. You can specify a time, rather than a revision number, in the SVN update command. Suppose that I knew that the file was stable on January 22th, 2014 at 1pm. I could issue the following command to retrieve the version of the file that existed in the repository at that time: svn update -r "{ :00:00}" Step 15: End of the Lab After finishing with commits, you can even delete primary and the secondary directory, since all required updates are submitted to the SVN. If you want, you can still keep them until Assignment 1 is marked, just

13 CSCI 4152/6509 Lecture 1 p.13 to be sure. To delete the directories, you will need to be in their parent directory, and use the command rm -r primary secondary End of the lab.

CSCI 4152/6509 Natural Language Processing. Lab 1: FCS Computing Environment

CSCI 4152/6509 Natural Language Processing. Lab 1: FCS Computing Environment CSCI 4152/6509 Natural Language Processing Lab 1: FCS Computing Environment http://web.cs.dal.ca/ vlado/csci6509 Lab Instructor: Dijana Kosmajac, Dhivya Jayaraman Slides copyright: Mike McAllister, Vlado

More information

27-Sep CSCI 2132 Software Development Lab 4: Exploring bash and C Compilation. Faculty of Computer Science, Dalhousie University

27-Sep CSCI 2132 Software Development Lab 4: Exploring bash and C Compilation. Faculty of Computer Science, Dalhousie University Lecture 4 p.1 Faculty of Computer Science, Dalhousie University CSCI 2132 Software Development Lab 4: Exploring bash and C Compilation 27-Sep-2017 Location: Goldberg CS Building Time: Wednesday, 16:05

More information

Lab 1 Introduction to UNIX and C

Lab 1 Introduction to UNIX and C Name: Lab 1 Introduction to UNIX and C This first lab is meant to be an introduction to computer environments we will be using this term. You must have a Pitt username to complete this lab. NOTE: Text

More information

Lab 1 Introduction to UNIX and C

Lab 1 Introduction to UNIX and C Name: Lab 1 Introduction to UNIX and C This first lab is meant to be an introduction to computer environments we will be using this term. You must have a Pitt username to complete this lab. The doc is

More information

30-Jan CSCI 4152/6509 Natural Language Processing Lab 4: Perl Tutorial 3. Perl Tutorial 3. Faculty of Computer Science, Dalhousie University

30-Jan CSCI 4152/6509 Natural Language Processing Lab 4: Perl Tutorial 3. Perl Tutorial 3. Faculty of Computer Science, Dalhousie University Lecture 4 p.1 Faculty of Computer Science, Dalhousie University CSCI 4152/6509 Natural Language Processing Lab 4: Perl Tutorial 3 30-Jan-2019 Lab Instructor: Dijana Kosmajac, Afsan Gujarati, and Yuhan

More information

CSCI 2132 Software Development. Lecture 3: Unix Shells and Other Basic Concepts

CSCI 2132 Software Development. Lecture 3: Unix Shells and Other Basic Concepts CSCI 2132 Software Development Lecture 3: Unix Shells and Other Basic Concepts Instructor: Vlado Keselj Faculty of Computer Science Dalhousie University 10-Sep-2018 (3) CSCI 2132 1 Introduction to UNIX

More information

CS2720 Practical Software Development

CS2720 Practical Software Development Page 1 Rex Forsyth CS2720 Practical Software Development CS2720 Practical Software Development Subversion Tutorial Spring 2011 Instructor: Rex Forsyth Office: C-558 E-mail: forsyth@cs.uleth.ca Tel: 329-2496

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

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

CSC111 Computer Science II

CSC111 Computer Science II CSC111 Computer Science II Lab 1 Getting to know Linux Introduction The purpose of this lab is to introduce you to the command line interface in Linux. Getting started In our labs If you are in one of

More information

CSCI 2132 Software Development. Lecture 5: File Permissions

CSCI 2132 Software Development. Lecture 5: File Permissions CSCI 2132 Software Development Lecture 5: File Permissions Instructor: Vlado Keselj Faculty of Computer Science Dalhousie University 14-Sep-2018 (5) CSCI 2132 1 Files and Directories Pathnames Previous

More information

Using the Zoo Workstations

Using the Zoo Workstations Using the Zoo Workstations Version 1.86: January 16, 2014 If you ve used Linux before, you can probably skip many of these instructions, but skim just in case. Please direct corrections and suggestions

More information

We first learn one useful option of gcc. Copy the following C source file to your

We first learn one useful option of gcc. Copy the following C source file to your Lecture 5 p.1 Faculty of Computer Science, Dalhousie University CSCI 2132 Software Development Lab 5: gcc and gdb tools 10-Oct-2018 Location: Teaching Labs Time: Thursday Instructor: Vlado Keselj Lab 5:

More information

CpSc 1111 Lab 1 Introduction to Unix Systems, Editors, and C

CpSc 1111 Lab 1 Introduction to Unix Systems, Editors, and C CpSc 1111 Lab 1 Introduction to Unix Systems, Editors, and C Welcome! Welcome to your CpSc 111 lab! For each lab this semester, you will be provided a document like this to guide you. This material, as

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

Exercise 1: Basic Tools

Exercise 1: Basic Tools Exercise 1: Basic Tools This exercise is created so everybody can learn the basic tools we will use during this course. It is really more like a tutorial than an exercise and, you are not required to submit

More information

TDDC88 Lab 4 Software Configuration Management

TDDC88 Lab 4 Software Configuration Management 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

More information

Oregon State University School of Electrical Engineering and Computer Science. CS 261 Recitation 1. Spring 2011

Oregon State University School of Electrical Engineering and Computer Science. CS 261 Recitation 1. Spring 2011 Oregon State University School of Electrical Engineering and Computer Science CS 261 Recitation 1 Spring 2011 Outline Using Secure Shell Clients GCC Some Examples Intro to C * * Windows File transfer client:

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

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

Lecture 01 - Working with Linux Servers and Git

Lecture 01 - Working with Linux Servers and Git Jan. 9, 2018 Working with Linux Servers: SSH SSH (named for Secure SHell) is a protocol commonly used for remote login. You can use it from a command line interface with the following syntax ssh username@server_url

More information

Intermediate Programming, Spring Misha Kazhdan

Intermediate Programming, Spring Misha Kazhdan 600.120 Intermediate Programming, Spring 2017 Misha Kazhdan Outline Unix/Linux command line Basics of the Emacs editor Compiling and running a simple C program Cloning a repository Connecting to ugrad

More information

Dalhousie University CSCI 2132 Software Development Winter 2018 Lab 8, March 22

Dalhousie University CSCI 2132 Software Development Winter 2018 Lab 8, March 22 Dalhousie University CSCI 2132 Software Development Winter 2018 Lab 8, March 22 In this lab, you will first learn more about git. After that, you will get some practice on the make utility and learn more

More information

CS CS Tutorial 2 2 Winter 2018

CS CS Tutorial 2 2 Winter 2018 CS CS 230 - Tutorial 2 2 Winter 2018 Sections 1. Unix Basics and connecting to CS environment 2. MIPS Introduction & CS230 Interface 3. Connecting Remotely If you haven t set up a CS environment password,

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

CS Fundamentals of Programming II Fall Very Basic UNIX

CS Fundamentals of Programming II Fall Very Basic UNIX CS 215 - Fundamentals of Programming II Fall 2012 - Very Basic UNIX This handout very briefly describes how to use Unix and how to use the Linux server and client machines in the CS (Project) Lab (KC-265)

More information

Introduction: What is Unix?

Introduction: What is Unix? Introduction Introduction: What is Unix? An operating system Developed at AT&T Bell Labs in the 1960 s Command Line Interpreter GUIs (Window systems) are now available Introduction: Unix vs. Linux Unix

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

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

CS 261 Recitation 1 Compiling C on UNIX

CS 261 Recitation 1 Compiling C on UNIX Oregon State University School of Electrical Engineering and Computer Science CS 261 Recitation 1 Compiling C on UNIX Winter 2017 Outline Secure Shell Basic UNIX commands Editing text The GNU Compiler

More information

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209 CSC209 Software Tools and Systems Programming https://mcs.utm.utoronto.ca/~209 What is this Course About? Software Tools Using them Building them Systems Programming Quirks of C The file system System

More information

Getting Started with UNIX

Getting Started with UNIX Getting Started with UNIX What is UNIX? Boston University Information Services & Technology Course Number: 4000 Course Instructor: Kenny Burns Operating System Interface between a user and the computer

More information

2 Initialize a git repository on your machine, add a README file, commit and push

2 Initialize a git repository on your machine, add a README file, commit and push BioHPC Git Training Demo Script First, ensure that git is installed on your machine, and you have configured an ssh key. See the main slides for instructions. To follow this demo script open a terminal

More information

LAB 0: LINUX COMMAND LINE AND SVN

LAB 0: LINUX COMMAND LINE AND SVN CSE427S LAB 0: LINUX COMMAND LINE AND SVN M. Neumann Due: TUE 23 JAN 2018 1PM No group work. The submission for this lab needs to be done via SVN repository commit. The completion of this tutorial counts

More information

CS 215 Fundamentals of Programming II Spring 2019 Very Basic UNIX

CS 215 Fundamentals of Programming II Spring 2019 Very Basic UNIX CS 215 Fundamentals of Programming II Spring 2019 Very Basic UNIX This handout very briefly describes how to use Unix and how to use the Linux server and client machines in the EECS labs that dual boot

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

Using RANCID. Contents. 1 Introduction Goals Notes Install rancid Add alias Configure rancid...

Using RANCID. Contents. 1 Introduction Goals Notes Install rancid Add alias Configure rancid... Using RANCID Contents 1 Introduction 2 1.1 Goals................................. 2 1.2 Notes................................. 2 2 Install rancid 2 2.1 Add alias............................... 3 2.2 Configure

More information

Lab 2 Building on Linux

Lab 2 Building on Linux Lab 2 Building on Linux Assignment Details Assigned: January 28 th, 2013. Due: January 30 th, 2013 at midnight. Background This assignment should introduce the basic development tools on Linux. This assumes

More information

CSE 160: Introduction to Parallel Computation

CSE 160: Introduction to Parallel Computation CSE 160: Introduction to Parallel Computation Discussion Section SVN Tutorial Based primarily on material provided by Ingolf Krueger Contributions made by Jing Zheng, Yashodhan Karandikar, and Scott B.

More information

Getting Started With UNIX Lab Exercises

Getting Started With UNIX Lab Exercises Getting Started With UNIX Lab Exercises This is the lab exercise handout for the Getting Started with UNIX tutorial. The exercises provide hands-on experience with the topics discussed in the tutorial.

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

CSCI 4152/6509 Natural Language Processing Lecture 6: Regular Expressions; Text Processing in Perl

CSCI 4152/6509 Natural Language Processing Lecture 6: Regular Expressions; Text Processing in Perl Lecture 6 p.1 Faculty of Computer Science, Dalhousie University CSCI 4152/6509 Natural Language Processing Lecture 6: Regular Expressions; Text Processing in Perl 18-Jan-2019 Location: LSC Psychology P5260

More information

Handout 4: Version Control Reference

Handout 4: Version Control Reference CSCI 2600 Principles of Software Handout 4: Version Control Reference Introduction SVN (Subversion) provides the following functionality: It allows multiple users to edit the same files independently,

More information

213/513/613 Linux/Git Bootcamp. Cyrus, Eugene, Minji, Niko

213/513/613 Linux/Git Bootcamp. Cyrus, Eugene, Minji, Niko 213/513/613 Linux/Git Bootcamp Cyrus, Eugene, Minji, Niko Outline 1. SSH, bash, and navigating Linux 2. Using VIM 3. Setting up VS Code 4. Git SSH 1. On macos/linux: $ ssh ANDREW-ID@shark.ics.cs.cmu.edu

More information

Unix/Linux Basics. Cpt S 223, Fall 2007 Copyright: Washington State University

Unix/Linux Basics. Cpt S 223, Fall 2007 Copyright: Washington State University Unix/Linux Basics 1 Some basics to remember Everything is case sensitive Eg., you can have two different files of the same name but different case in the same folder Console-driven (same as terminal )

More information

Introduction to Linux

Introduction to Linux Introduction to Linux The command-line interface A command-line interface (CLI) is a type of interface, that is, a way to interact with a computer. Window systems, punched cards or a bunch of dials, buttons

More information

: the User (owner) for this file (your cruzid, when you do it) Position: directory flag. read Group.

: the User (owner) for this file (your cruzid, when you do it) Position: directory flag. read Group. CMPS 12L Introduction to Programming Lab Assignment 2 We have three goals in this assignment: to learn about file permissions in Unix, to get a basic introduction to the Andrew File System and it s directory

More information

Apache Subversion Tutorial

Apache Subversion Tutorial Apache Subversion Tutorial Computer Science Standard C-6.C Diana Machado Raul Garcia Dr. Shu-Ching Chen Florida International University Computer Science 2/22/2014 What is Subversion (SVN)? A free and

More information

CSCI 2132 Software Development. Lecture 4: Files and Directories

CSCI 2132 Software Development. Lecture 4: Files and Directories CSCI 2132 Software Development Lecture 4: Files and Directories Instructor: Vlado Keselj Faculty of Computer Science Dalhousie University 12-Sep-2018 (4) CSCI 2132 1 Previous Lecture Some hardware concepts

More information

Introduction to the Linux Command Line

Introduction to the Linux Command Line Introduction to the Linux Command Line May, 2015 How to Connect (securely) ssh sftp scp Basic Unix or Linux Commands Files & directories Environment variables Not necessarily in this order.? Getting Connected

More information

Systems Programming Advanced Software Development

Systems Programming Advanced Software Development Systems Programming Advanced Software Development School of Information and Communication Technology Griffith University Semester 1, 2012 Outline 1 Administrative Matters Course Organisation Questions?

More information

Due: February 26, 2014, 7.30 PM

Due: February 26, 2014, 7.30 PM Jackson State University Department of Computer Science CSC 438-01/539-01 Systems and Software Security, Spring 2014 Instructor: Dr. Natarajan Meghanathan Project 1: Exploring UNIX Access Control in a

More information

One of the hardest things you have to do is to keep track of three kinds of commands when writing and running computer programs. Those commands are:

One of the hardest things you have to do is to keep track of three kinds of commands when writing and running computer programs. Those commands are: INTRODUCTION Your first daily assignment is to modify the program test.py to make it more friendly. But first, you need to learn how to edit programs quickly and efficiently. That means using the keyboard

More information

Intel Edison Tutorial: Introduction to Vim 1

Intel Edison Tutorial: Introduction to Vim 1 Intel Edison Tutorial: Introduction to Vim Intel Edison Tutorial: Introduction to Vim 1 Table of Contents Introduction... 3 Things Needed... Error! Bookmark not defined. Introduction... 4 What Is Vim?...

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

18-Sep CSCI 2132 Software Development Lecture 6: Links and Inodes. Faculty of Computer Science, Dalhousie University. Lecture 6 p.

18-Sep CSCI 2132 Software Development Lecture 6: Links and Inodes. Faculty of Computer Science, Dalhousie University. Lecture 6 p. Lecture 6 p.1 Faculty of Computer Science, Dalhousie University CSCI 2132 Software Development Lecture 6: Links and s 18-Sep-2017 Location: Goldberg CS 127 Time: 14:35 15:25 Instructor: Vlado Keselj Previous

More information

CMSC 201 Spring 2017 Lab 01 Hello World

CMSC 201 Spring 2017 Lab 01 Hello World CMSC 201 Spring 2017 Lab 01 Hello World Assignment: Lab 01 Hello World Due Date: Sunday, February 5th by 8:59:59 PM Value: 10 points At UMBC, our General Lab (GL) system is designed to grant students the

More information

LAB #5 Intro to Linux and Python on ENGR

LAB #5 Intro to Linux and Python on ENGR LAB #5 Intro to Linux and Python on ENGR 1. Pre-Lab: In this lab, we are going to download some useful tools needed throughout your CS career. First, you need to download a secure shell (ssh) client for

More information

About CVS. 1 Version Control - what is it? why is it useful?

About CVS. 1 Version Control - what is it? why is it useful? About CVS CVS stands for Concurrent Version Control. It s free, open-source software used by multiple developers to share code, keep track of changes, and keep different versions of a project. it can be

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

Intro to Linux & Command Line

Intro to Linux & Command Line Intro to Linux & Command Line Based on slides from CSE 391 Edited by Andrew Hu slides created by Marty Stepp, modified by Jessica Miller & Ruth Anderson http://www.cs.washington.edu/391/ 1 Lecture summary

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

Introduction to UNIX. Logging in. Basic System Architecture 10/7/10. most systems have graphical login on Linux machines

Introduction to UNIX. Logging in. Basic System Architecture 10/7/10. most systems have graphical login on Linux machines Introduction to UNIX Logging in Basic system architecture Getting help Intro to shell (tcsh) Basic UNIX File Maintenance Intro to emacs I/O Redirection Shell scripts Logging in most systems have graphical

More information

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

SmartCVS Tutorial. Starting the putty Client and Setting Your CVS Password

SmartCVS Tutorial. Starting the putty Client and Setting Your CVS Password SmartCVS Tutorial Starting the putty Client and Setting Your CVS Password 1. Open the CSstick folder. You should see an icon or a filename for putty. Depending on your computer s configuration, it might

More information

Version Control System. -- base on Subversion 1.4

Version Control System. -- base on Subversion 1.4 More Functionalities of a -- base on Subversion 1.4 Sui Huang A tutorial for Software Engineering Course SE2AA4 Instructor: Dr. William M. Farmer TAs: Clare So, Sui Huang, Jeffrey Heifetz Jan 10 th, 2006

More information

Unix Tutorial Haverford Astronomy 2014/2015

Unix Tutorial Haverford Astronomy 2014/2015 Unix Tutorial Haverford Astronomy 2014/2015 Overview of Haverford astronomy computing resources This tutorial is intended for use on computers running the Linux operating system, including those in the

More information

15-122: Principles of Imperative Computation

15-122: Principles of Imperative Computation 15-122: Principles of Imperative Computation Lab 0 Navigating your account in Linux Tom Cortina, Rob Simmons Unlike typical graphical interfaces for operating systems, here you are entering commands directly

More information

Using WestGrid from the desktop Oct on Access Grid

Using WestGrid from the desktop Oct on Access Grid Using WestGrid from the desktop Oct 11 2007 on Access Grid Introduction Simon Sharpe, UCIT Client Services The best way to contact WestGrid support is to email support@westgrid.ca This seminar gives you

More information

Computer Labs: Version Control with Subversion

Computer Labs: Version Control with Subversion Computer Labs: Version Control with Subversion 2 o MIEIC Pedro F. Souto (pfs@fe.up.pt) September 24, 2012 The Problem $edit foo.c, make, run, edit, make, run,... OK! Now that it enters in graphics mode,

More information

Yinghui Wang

Yinghui Wang Yinghui Wang wang382@mcmaster.ca 1 What is subversion Subversion is the tool for controlling the versions of your files. To retrieve a specific version of files To synchronize the modification made by

More information

CSCI 2132: Software Development. Norbert Zeh. Faculty of Computer Science Dalhousie University. Subversion (and Git) Winter 2019

CSCI 2132: Software Development. Norbert Zeh. Faculty of Computer Science Dalhousie University. Subversion (and Git) Winter 2019 CSCI 2132: Software Development Subversion (and Git) Norbert Zeh Faculty of Computer Science Dalhousie University Winter 2019 Version Control Systems A version control system allows us to Record the history

More information

Implement an ADT while using Subversion

Implement an ADT while using Subversion 1 Objectives Learn to use Subversion Implement an ADT while using Subversion In this lab, you learn about the version control tool called Subversion and you will implement a Java class given an interface.

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

Using LINUX a BCMB/CHEM 8190 Tutorial Updated (1/17/12)

Using LINUX a BCMB/CHEM 8190 Tutorial Updated (1/17/12) Using LINUX a BCMB/CHEM 8190 Tutorial Updated (1/17/12) Objective: Learn some basic aspects of the UNIX operating system and how to use it. What is UNIX? UNIX is the operating system used by most computers

More information

ENCM 339 Fall 2017: Editing and Running Programs in the Lab

ENCM 339 Fall 2017: Editing and Running Programs in the Lab page 1 of 8 ENCM 339 Fall 2017: Editing and Running Programs in the Lab Steve Norman Department of Electrical & Computer Engineering University of Calgary September 2017 Introduction This document is a

More information

Using CVS to Manage Source RTL

Using CVS to Manage Source RTL Using CVS to Manage Source RTL 6.375 Tutorial 2 February 1, 2008 In this tutorial you will gain experience using the Concurrent Versions System (CVS) to manage your source RTL. You will be using CVS to

More information

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209 CSC209 Software Tools and Systems Programming https://mcs.utm.utoronto.ca/~209 What is this Course About? Software Tools Using them Building them Systems Programming Quirks of C The file system System

More information

CENG 334 Computer Networks. Laboratory I Linux Tutorial

CENG 334 Computer Networks. Laboratory I Linux Tutorial CENG 334 Computer Networks Laboratory I Linux Tutorial Contents 1. Logging In and Starting Session 2. Using Commands 1. Basic Commands 2. Working With Files and Directories 3. Permission Bits 3. Introduction

More information

Version Control with Git

Version Control with Git Version Control with Git Methods & Tools for Software Engineering (MTSE) Fall 2017 Prof. Arie Gurfinkel based on https://git-scm.com/book What is Version (Revision) Control A system for managing changes

More information

Terminal Windows, Emacs, Subversion and Make

Terminal Windows, Emacs, Subversion and Make Computer Science 62 Terminal Windows, Emacs, Subversion and Make or, Out of Eclipse and into the blinding glare of the command line... This reference guide gives you a brief and pragmatic introduction

More information

Lab 1 1 Due Wed., 2 Sept. 2015

Lab 1 1 Due Wed., 2 Sept. 2015 Lab 1 1 Due Wed., 2 Sept. 2015 CMPSC 112 Introduction to Computer Science II (Fall 2015) Prof. John Wenskovitch http://cs.allegheny.edu/~jwenskovitch/teaching/cmpsc112 Lab 1 - Version Control with Git

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

Lab 3a Using the vi editor

Lab 3a Using the vi editor Lab 3a Using the vi editor Objectives: Become familiar with the vi Editor Review the three vi Modes Review keystrokes to move between vi modes Create a new file with vi Editor Invoke vi with show mode

More information

Getting started with UNIX/Linux for G51PRG and G51CSA

Getting started with UNIX/Linux for G51PRG and G51CSA Getting started with UNIX/Linux for G51PRG and G51CSA David F. Brailsford Steven R. Bagley 1. Introduction These first exercises are very simple and are primarily to get you used to the systems we shall

More information

CMSC 201 Spring 2018 Lab 01 Hello World

CMSC 201 Spring 2018 Lab 01 Hello World CMSC 201 Spring 2018 Lab 01 Hello World Assignment: Lab 01 Hello World Due Date: Sunday, February 4th by 8:59:59 PM Value: 10 points At UMBC, the GL system is designed to grant students the privileges

More information

Beyond this course. Machine code. Readings: CP:AMA 2.1, 15.4

Beyond this course. Machine code. Readings: CP:AMA 2.1, 15.4 Beyond this course Readings: CP:AMA 2.1, 15.4 CS 136 Spring 2018 13: Beyond 1 Machine code In Section 04 we briefly discussed compiling: converting source code into machine code so it can be run or executed.

More information

Introduction to the UNIX command line

Introduction to the UNIX command line Introduction to the UNIX command line Steven Abreu Introduction to Computer Science (ICS) Tutorial Jacobs University s.abreu@jacobs-university.de September 19, 2017 Overview What is UNIX? UNIX Shell Commands

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

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

Source Control: Perforce

Source Control: Perforce USER GUIDE MADCAP LINGO 10.1 Source Control: Perforce Copyright 2018 MadCap Software. All rights reserved. Information in this document is subject to change without notice. The software described in this

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

Parallel Programming Pre-Assignment. Setting up the Software Environment

Parallel Programming Pre-Assignment. Setting up the Software Environment Parallel Programming Pre-Assignment Setting up the Software Environment Authors: B. Wilkinson and C. Ferner. Modification date: Aug 21, 2014 (Minor correction Aug 27, 2014.) Software The purpose of this

More information

Files and Directories

Files and Directories CSCI 2132: Software Development Files and Directories Norbert Zeh Faculty of Computer Science Dalhousie University Winter 2019 Files and Directories Much of the operation of Unix and programs running on

More information

Some Linux (Unix) Commands that might help you in ENSC351

Some Linux (Unix) Commands that might help you in ENSC351 Some Linux (Unix) Commands that might help you in ENSC351 First, like Windows, Linux and Unix (for our purposes, they are the basically the same) use a hierarchical directory structure. What would be called

More information

CS 1301 Fall 2008 Lab 2 Introduction to UNIX

CS 1301 Fall 2008 Lab 2 Introduction to UNIX CS 1301 Fall 2008 Lab 2 Introduction to UNIX Due: Friday, September 19 th, at 6 PM (Monday, September 22 nd for 10% off) Notes: Do not wait until the last minute to do this assignment in case you run into

More information

Versioning. Jurriaan Hage homepage: Slides stolen from Eelco Dolstra.

Versioning. Jurriaan Hage   homepage:  Slides stolen from Eelco Dolstra. Versioning Jurriaan Hage e-mail: jur@cs.uu.nl homepage: http://www.cs.uu.nl/people/jur/ Slides stolen from Eelco Dolstra Department of Information and Computing Sciences, Universiteit Utrecht August 24,

More information

AMS 200: Working on Linux/Unix Machines

AMS 200: Working on Linux/Unix Machines AMS 200, Oct 20, 2014 AMS 200: Working on Linux/Unix Machines Profs. Nic Brummell (brummell@soe.ucsc.edu) & Dongwook Lee (dlee79@ucsc.edu) Department of Applied Mathematics and Statistics University of

More information

Lab #2 Physics 91SI Spring 2013

Lab #2 Physics 91SI Spring 2013 Lab #2 Physics 91SI Spring 2013 Objective: Some more experience with advanced UNIX concepts, such as redirecting and piping. You will also explore the usefulness of Mercurial version control and how to

More information

Spring 2017 Gabriel Kuri

Spring 2017 Gabriel Kuri Lab 2 ECE 431L Spring 2017 Gabriel Kuri This lab is made up of two parts. Part 1 will consist of familiarizing yourself with the Raspberry Pi (RPi). It includes running Unix/Linux commands to become somewhat

More information