UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division. P. N. Hilfinger

Save this PDF as:

Size: px
Start display at page:

Download "UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division. P. N. Hilfinger"

Transcription

1 UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division CS 61B Fall 2012 P. N. Hilfinger Version Control and Homework Submission 1 Introduction Your work in this course generally consists of producing numerous on-line documents: programs, homework answers, test files, and so forth. As a result, there are various recurring issues to address: How can you protect yourself against accidents (losing a file or laptop, for example)? What happens if you realize that changes you ve made to your solution don t work, but no longer have the previous version to go back to? How can you review your recent changes? If you work with a partner on an assignment, how do you coordinate changes that you make? If you work at various sites (e.g., at home and in a computer lab), how do you keep copies of an assignment on the two systems synchronized? How do you hand in your assignment? There are real-world analogues of all these questions, and there is also a common tool for answering them: a version-control system. A version-control system (also source-code control system or revision-control system) is a utility for keeping around multiple versions of files that are undergoing development. Basically, it maintains copies of as many old and current versions of the files as desired, allowing its users to retrieve old versions (for example, to back out of some change they come to regret), to compare versions of a file, to merge changes from independently changing versions of a file, to attach additional information (change logs, for example) to each version, and to define symbolic labels for versions to facilitate later reference. No serious professional programmer should work without version control of some kind. Subversion, which we ll be using this semester, is an open-source version-control system that enjoys considerable use. The basic idea is simple: Subversion maintains repositories, each of which is a set of versions (plus a little global data). A version is simply a snapshot of the contents of an entire directory structure a hierarchical collection of directories (or folders in the Mac and PC worlds) that contain files and other directories. A repository s administrator (in this class, that s the staff), can control which parts of the repository any given person or group has access to. Subversion is an example of a client/server system. That is, running it requires two programs, one of which (the server) accesses the repository and responds to requests from the other program (the client), which is what you run. The client and server need not run on the same machine, allowing remote access to the repository. We have one server program, which the staff will look after, and several alternatives 1

2 Version Control and Homework Submission 2 for the client program, depending on how you are working. In this document, we ll describe the standard command-line client (called svn), which you run in a shell. The staff will maintain a Subversion repository containing subdirectories for each of you on the instructional machines. The Subversion server program manipulates this repository and runs on one of the instructional machines. You will be able to run the Subversion client program (svn) either from your class account or remotely from any machine where svn is installed. Your subdirectory will contain subdirectories of its own corresponding to the course assignments. At any given time, you may have checked out a copy of all or part of these assignment directories into one of your own directories (known as a working directory or working copy.) You can make whatever changes you want (without having any effect on the repository) and then create (commit or check in) a new version containing modifications, additions, or deletions you ve made in your working directory. If you are working in a team, another member might check out a completely independent copy of the same version you are working on, make modifications, and commit those. You may both, from time to time, update your working directory to contain the latest committed files, including changes from other team members. Should several of you have changed a particular file you in a committed revision, let us say, and others in their working copies then the others can update their working copies with your changes, merging in any of your changes to files you ve both modified. After these team members then commit the current state of their working directories, all changes they ve made will be available to you on request. If you attempt to commit a file that someone else has modified and committed, then Subversion will require you to update your file (merging these committed changes into it) before it will allow you to commit. Should you mess something up, all the versions you created up to that point still exist unchanged in the repository. You can simply fall back to a previous version entirely, or replace selected files from a previous version. Of course, to make use of this facility, you must check your work in frequently. Even though the abstraction that Subversion presents is that of numbered snapshots of entire directory trees full of files, its representation is far more efficient. It actually stores differences between versions, so that storing a new version that is little changed from a previous one adds little data to the repository. In particular, the representation makes it particularly fast and cheap to create a new version that contains an additional copy of an entire subdirectory (but in a different place and with a different name). No matter how big the subdirectory is, the repository contains only the information of what subdirectory in what version it was copied from. You can use these cheap copies to get the effect of branching a project, and of tagging (naming) specific versions. These copies have other uses as well. In particular, they allow you to import a set of skeleton files for an assignment without significantly increasing the size of the repository. Subversion is a reasonably complex system with many features, and past experience has shown me that students have an uncanny ability to mess up their working copies in mysterious ways. Therefore, I have implemented a command, hw, which cans a set of interactions of Subversion that covers most of what we need for this course. You are still free, if sufficiently motivated, to use Subversion directly (there are links to the full documentation on the course web pages), but we won t require it. 2 Basic Actions Our version-control software manipulates two things: A repository, which is maintained outside your directories and contains copies of all versions of all your assignments that you have committed. Each of these committed versions has a revision number in the repository. Revision numbers of your directories are increasing, but will not, in

3 Version Control and Homework Submission 3 general, be consecutive, since the number reflects all commits of all assignments made by all students. Working directories, which reside in your personal file space (on one or more machines) and contain copies of assignments from the repository, together with local changes you have made to these assignments. 2.1 Committing You do all your work on your local copies your working directories. As you do so, they will diverge from the contents of the repositories. Periodically (which we suggest you interpret as often ), you reconcile your working directory with its corresponding repository directory by copying changes to the working directory to the repository, thus creating a new version of an assignment. We call this copying process committing (or checking in) your changes. 2.2 Updating Sometimes, you will want to have several working copies of a single assignment. For example, you may want to do most of your work on your laptop computer, but occasionally work on an assignment using the instructional servers 1. When you do that, you have to be sure that your working directory reflects any changes you made while working on the other system. To this end, you must be careful to commit changes one copy when you are finished working on that copy, and must then update the other working directory before you begin work there. Updating a directory copies changes from the repository to the working copy Checking out copies When the repository already contains versions of an assignment, you can start a new working directory by copying the latest version to a directory. This process is called checking out the assignment from the repository. 2.4 Submitting (tagging) When your repository contains a version of an assignment that you think suitable for handing in, you submit it by creating a copy of the entire assignment in a particular repository directory, recognized by our submission software. In effect, you create a repository directory that names a particular version of a particular assignment. In version-control lingo, we call such a directory copy a tag. Once submitted, the contents of the tag don t change. Any changes you commit to your working directory have no effect on your submissions (but you can always create a new submission of these new contents). The system maintains copies of all your submissions, as well as all committed versions of your assignment. 2.5 Logs Whenever you commit a version of an assignment, you will be asked to provide commentary on that version, which becomes the log entry for that version. The log is part of the metadata of the repository 1 Using ssh to connect to the instructional machines from your laptop counts as using the instructional servers for this purpose. 2 If you have modified one working copy after committing to the repository a different working copy, the updating process is clever enough to merge the changes rather than simply overwriting the working copy that you are updating. However, this is an imperfect process (especially when the changes overlap) and it is much safer to make sure that you always commit when you finish working on one directory and always update when you start working on another.

4 Version Control and Homework Submission 4 contents the data about the data. In the real world, logs are extremely useful. They allow changes to be attached to explanations of the changes, including which bug reports are addressed by these changes. The version-control software can then produce a report showing the entire change history for a project (i.e., a real-world assignment ) or for an individual file, complete with dates and authors. Figure1 shows an example taken from the open-source GDB debugger project. You probably won t have anything so elaborate, but you should try to say something useful to remind yourself of which committed versions to consider when trying to resurrect the previous contents of a file. 2.6 URLs If you have installed hw on your personal computer and are working there instead of on the instructional servers, you will need to tell hw where to find the instructional repository. If necessary, hw will ask for the URL (Uniform Resource Locator) or your instructional login, and save it for future use. If you are using Subversion bare or through Eclipse, you will need to know the full URL, which is where LOGIN is your instructional account name (cs61b-xx). Each of your assignments will reside in a repository directory at URL REPOS/trunk/ASSIGNMENT where RESPOS is the URL for your respository, described above. Each submission of an assignment will reside at URL REPOS/tags/ASSIGNMENT-SEQ where SEQ is a sequence number (you can have multiple submissions of the same assignment; the sequence numbers distinguish them.) Finally, the templates for assignments reside at Again, you don t need this information if using Subversion through the hw command. 3 The hw Command On the instructional machines, we ve provided the command hw, which performs a number of functions. The general form of the command is $ hw subcommand arguments where subcommand identifies the particular function to be performed. You may abbreviate subcommand with any subsequence that starts with the same letter and uniquely identifies the command. For example, you can substitute hw ch hw1 or hw ck hw1 for hw checkout hw1. For those of you running MacOS or Linux, you can download hw from the course web pages. It requires that you have Python 3, Subversion, and ssh installed on your system. At the moment, we don t support a Windows version. If you use hw from home, you should be particularly careful to commit changes frequently (see 3.4) and if you move between working from your home computer and working on the instructional machines to update your working copy (see 3.3) whenever you change from one to the other. This is a better way of transferring work between systems than using scp, rsync, or PuTTy.

5 Version Control and Homework Submission 5 commit 5979b98b41bdda7c396caa1ccd90c07bc416d70e Author: Joel Brobecker Date: Sat Jun 9 12:24: Change detach_breakpoints to take a ptid instead of a pid Before this change, detach_breakpoints would take a pid, and then set inferior_ptid to a ptid that it constructs using pid_to_ptid (pid). Unfortunately, this ptid is not necessarily valid. Consider for instance the case of ia64-hpux, where ttrace refuses a register-read operation if the LWP is not provided. This problems shows up when GDB is trying to handle fork events. Assuming GDB is configured to follow the parent, GDB will try to detach from the child. But before doing so, it needs to remove all breakpoints inside that child. On ia64, this involves reading inferior (the child s) memory. And on ia64-hpux, reading memory requires us to read the bsp and bspstore registers, in order to determine where that memory is relative to the value of those registers, and thus to determine which ttrace operation to use in order to fetch that memory (see ia64_hpux_xfer_memory). This patch therefore changes detach_breakpoints to take a ptid instead of a pid, and then updates all callers. One of the consequences of this patch is that it trips an assert on GNU/Linux targets. But this assert appears to have not actual purpose, and is thus removed. gdb/changelog: For L * breakpoint.h (detach_breakpoints): pid parameter is now a ptid. * breakpoint.c (detach_breakpoints): Change pid parameter into a ptid. Adjust code accordingly. * infrun.c (handle_inferior_event): Delete variable child_pid. Update call to detach_breakpoints to pass the child ptid for fork events. * linux-nat.c (linux_nat_iterate_watchpoint_lwps): Remove assert that inferior_ptid s lwp is zero. (linux_handle_extended_wait): Update call to detach_breakpoints. Notes: Submitted: Figure 1: An example of a log message for a commit. This is taken from a local development branch of the GDB (GNU Debugger) project. The version-control system used here is git, which is also used for Linux development. The last four lines give tracking information that refers to an internal bug-tracking system and to the public GDB repository. This example is considerably more elaborate than anything you ll want to write!

6 Version Control and Homework Submission Starting an assignment: working directories The hw command assumes that your working directories have the same names as the repository subdirectories they are copied from, which will themselves all have the names of assignments (e.g., hw1 or proj1 ) 3. For each assignment, we provide a template containing skeletons of files you will eventually submit (although you may also have to add others). To start work on an assignment (let s say hw1), place yourself in the directory you ll use to hold your work (which could be your home directory), and use the command: $ hw init hw1 This does several things: 1. Creates a new entry in your repository called hw1, and containing our initial template for hw1. 2. Creates a new working (sub)directory called hw1. 3. Copies the files from your hw1 repository entry into this new working directory. You only initialize an assignment once (hw won t let you do it again). After that, you either work on the working hw1 directory created in step 2, or you can create another working copy of the repository entry with the hw checkout command ( 3.4). 3.2 Checking out an assignment Once you have initialized an assignment, you can use the working directory that hw init creates. All committed copies of work done to that directory are retained in the class repository, regardless of what happens to your working directory. However, if you need to produce a new working directory for an assignment (say hw1 to continue our running example) (perhaps on a different machine), you can do so with the command: $ hw checkout hw1 Old versions. You can use the hw checkout command to fetch any previous version of an assignment that you have committed. First, use hw log to find the revision number of the version you want ( 3.10). Then fetch the desired version (let s say revision number 42 of assignment hw1) with the command $ hw checkout hw1-r42 This creates a new directory named hw1-r42 containing the desired version 4. To prevent accidents, this new directory is not a working directory (that is, it is missing the hidden information that links it back to the repository). However, by copying selectively from hw1-r42 into a working directory for hw1, you can roll back the clock on any desired file. 3 In fact, once a working directory is created, its name no longer matters (the system maintains information about which assignment it came from inside the working directory itself). You can change the name of the working directory if desired (using the Unix mv command, for example). We suggest, however, that you avoid this if possible. 4 Revision numbers apply to the class repository as a whole; they increase whenever anybody commits to the repository, so revision 42 might not be a revision at which you committed hw1. If so, you will instead get whatever version of hw1 you last committed before revision 42 of the repository.

7 Version Control and Homework Submission 7 Retrieving submissions. The hw checkout command will also fetch assignments you have submitted (see 3.5). For example, to get a copy of submission number 2 of hw1, type $ hw checkout hw1-2 You can use hw submissions to list all your submissions (see 3.7). Again, the resulting directory will not be a working directory, but you can copy its contents into a working directory if desired. 3.3 Updating To make sure that a working directory, say hw1, has the same contents as the latest repository entry, use the command $ hw update hw1 or, if hw1 is already your current directory, just $ hw update This provides a convenient way to transfer work from home to the instructional machines or viceversa: be sure to commit the work when finished working on one of the directories, and then run hw update in the other. The command will complain if something goes wrong, such as Attempting to update a directory that is not a working copy. Attempting to update a non-existent directory. Updating a directory to which you have made conflicting changes before updating from the repository. This happens, for example, if you commit changes on your laptop, then change some of your files on the instructional machines in places that overlap the changes you just committed, and only then remember to update the working copy on the instructional machines. 3.4 Committing At frequent intervals (and certainly when you pause to go do something else), you should send a new version a snapshot of your working directory to the repository. It never hurts to do this. The command $ hw commit hw1 commits the contents of the working directory named hw1. If you are already in a working directory for an assignment, simply use $ hw commit The system will ask for a log message, by opening up an editor session. Type whatever you want and exit from the editor. Plain Subversion commits only files that you ve told it about, and it gets upset if you have deleted a file without telling it that you ve done so. The hw command will prompt you about any such files. If you have created a new file or directory in your working directory that is not currently in the respository (say NewFile.java), hw commit will give you a message such as NewFile.java is untracked. Add it? [y]

8 Version Control and Homework Submission 8 Generally, you ll want to answer y or yes (or simply return) to cause NewFile.java to get added to the repository. If you have deleted a file (say BadFile.java), hw commit will ask BadFile.java has been deleted. Remove from the repository, too? [y] Responding y will remove BadFile.java from the next committed version in the repository. However, since the repository contains all committed versions of your working directory, you will still be able to recover old versions of BadFile.java (see ). After asking about these files, hw commit will perform a hw update command to make sure that you don t undo changes to the repository that were made previously. Finally, it will commit your changes (creating a new version of the assignment in the repository). There are certain files that hw does not track by default. The main ones are Java.class and.jar files, files that end in ~ or #, and files containing Eclipse metadata. Again, the command will complain if something goes wrong. It is best to consult the staff when this happens, because it means that you have not saved you recent work and simply pushing on will just confuse things still further. 3.5 Submitting To submit the assignment in a given directory (say hw1), use the command $ hw submit hw1 or, if you are already in your hw1 working directory, $ hw submit The system will first commit the current directory, if necessary (see 3.4). It will tell you the name it chose for the submission, as in: $ hw submit Submitting hw Submission complete. As usual, if you don t see messages like this, something went wrong; don t assume the submission was successful. 3.6 Reverting changes Once a file is committed for the first time and is therefore in the repository, it is said to be tracked. After you change a tracked file in a working directory (including by deletion), but before you next commit the directory, you can restore that file to its previous contents (that is, its contents as of the previous commit or update). For example, if you accidentally delete or otherwise mutilate Solver.java, you can get it back with hw revert Solver.java This won t work for files you have just created and not yet committed, since the system has no prior copy of them. Likewise, it will not restore the contents of a file from a previous revision from before the last commit. To do that, use the hw checkout to fetch the previous revision and then copy the desired file from there into the working directory.

9 Version Control and Homework Submission Listing assignments and submissions To see a list of all your submissions of a given assignment (say hw1), use $ hw submissions hw1 This will tell you the submission sequence numbers, dates, and times of all submissions of the assignment The command $ hw submissions will do the same for all assignments you ve submitted. To list all the assignments you ve worked on or started (and therefore committed to the repository, but perhaps not submitted), use the command $ hw assignments which lists the assignments and the last time you committed each. 3.8 Status of a working directory To see which files you ve changed, added, or deleted relative to the last hw commit for our hw1 assignment, use the command or just $ hw status hw1 $ hw status if you are already in the working directory. This will give a list of files and the status of each. For example: $ hw status Files and directories that are not in the repository yet, but will be added by hw commit : NewFile.java tests/newtest.data Files you have modified, but not committed: Main.java Files and directories you have deleted, but not committed: Optional.java When you see files listed by hw status like this, it generally suggests that you have material to commit. On the other hand, $ hw status No changes since last commit means that nothing remains to be committed. The related commands $ svn list hw1 $ svn list produce the same results as svn status, but in addition produce a list of other tracked files that are unchanged.

10 Version Control and Homework Submission 10 $ hw diff Modifications to files ( + lines are additions; - deletions): Index: Main.java =================================================================== --- Main.java (revision 14) +++ Main.java (working copy) -41,10 +41,9 switch (args.length) { case 1: - output = new PrintWriter(new Display()); + output = new PrintWriter(new Display(true)); break; case 2: - waittoclose = false; if (args[1].equals("-")) { output = new PrintWriter(System.out); } else { -58,6 +57,7 translate(input, output); if (waittoclose) { System.err.printf("Type <RETURN> or <ENTER> to quit.%n"); + System.err.printf("Type? for help.%n"); try { System.in.read(); } catch (IOException e) { Figure 2: Example of hw diff. 3.9 Listing differences The hw diff command allows you to see the changes you ve made to a working directory since committing it or checking it out, but have not yet committed. Without an additional argument, it lists differences for the current directory. With an argument, it lists differences in the named directory or file. Figure 2 shows an example of a command and resulting output. The output shows lines that you have added to the working file (indicated by a leading + ), those that you have deleted (leading - ), and those you have modified (which show up as a deletion of the old line and an addition of the new version). The listing also includes a few lines of context on either side of changes to help locate the change (also, the lines beginning indicate line numbers in the old and new versions.) By supplying a revision number (see 3.10 for finding revision numbers), you can compare the working directory against a revision other than the last one in the repository. For example $ hw diff 130 compares the working directory with whatever contents were committed for revision 130. The command $ hw diff Main.java 130 does the same for the single file Main.java.

11 Version Control and Homework Submission Listing log information To get a listing of the commits you ve made to the assignment in the current directory, use the command hw log which gives a listing something like this: r146 cs61b-yu :20: (Fri, 07 Sep 2012) 10 lines Changed paths: M /cs61b-yu/trunk/hw1/progs.java Solve problem r142 cs61b-yu :44: (Fri, 07 Sep 2012) 50 lines Changed paths: M /cs61b-yu/trunk/hw1/progs.java M /cs61b-yu/trunk/hw1/hw1test.java Solve problems 1&2. Add tests for same r130 cs61b-yu :10: (Thu, 06 Sep 2012) 2 lines Changed paths: A /cs61b-yu/trunk/hw1 (from /staff/hw1) Start hw Each commit produces an entry giving the revision number, date, time, the files changed, and the log message. To limit the number of log entries listed to the most recent N entries, use hw log N or to track entries mentioning a single file (say Progs.java), use or hw log Progs.java hw log Progs.java N for the latest N entries about Progs.java.

12 Version Control and Homework Submission 12 4 Summary of Basic Use Let s look at the entire life cycle of assignment hw1. Let s assume that you group homework directories in a single directory called hw, which you have created with $ mkdir ~/hw # Make directory hw in your home directory. To start hw1, get a copy of its template: $ cd ~/hw $ hw init hw1 # Creates directory ~/hw/hw1 A typical basic work cycle then goes like this: $ cd ~/hw/hw1 edit, test, debug $ hw commit # You ll be asked to supply a log message edit, test, debug $ hw commit... $ hw submit # This also commits, if needed If you work from home (and have installed the hw command), you can import work from school with $ hw checkout hw1 This may ask you for the repository URL, which you can find by logging into your instructional account and typing $ echo $MYREPOS It will be something like YOURLOGIN} The same commands should work from your home account as at school (that is, when you actually do your editing, compilation, and debugging using your own computer as opposed to using ssh to login in remotely to the instructional machines.) When switching from home to the instructional machines, be sure to run hw commit when done at home, and $ cd ~/hw/hw1 $ hw update before doing any editing on the instructional machines (likewise going in the other direction). This will transfer your work from one location to the other. The init, commit, and submit commands are sufficient for creating and submitting homework on the instructional machines. For remote work, you may also need checkout and update. The other commands in 3 allow you to compare your current work with copies of it saved or submitted to the repository.

13 Version Control and Homework Submission 13 5 Using hw at Home The hw command should work on Linux or MacOS systems. First, you ll need to have ssh, Subversion, and Python 3 installed on your system (use Google to find out how for your system). You can obtain hw with the command $ scp -p YOUR DIR where DIR is the directory where you want to store the command (a directory listed in $PATH.) When you run hw for the first time, it will ask for your instructional login or a URL, which you should provide (providing your login is easiest.) In order for hw to work, ssh must know about the SSH key that was issued with your CS61B account. This key is the file ~/.ssh/id_rsa in your instructional account. Download that file into your own ~/.ssh directory (probably with a different name, because you are like to already have a key of that name.) For example, you might use the command $ scp YOUR ~/.ssh/id_rsa_cs61b Assuming you do this, you should also add the line IdentityFile ~/.ssh/id_rsa_cs61b to the file ~/.ssh/config, creating that file if it does not already exist. Once you ve done this, by the way, you should be able to use commands like ssh, scp, or rsync without having to supply a password.

14 Version Control and Homework Submission 14 6 Quick Reference Here is a quick recap of the available commands. You can get the same information with hw help. In what follows, optional arguments are denoted with square brackets ([]), and alternatives are separated by vertical bars ( ). When a command takes an argument that can be a directory (denoted dir ) it refers to a working directory and, if defaulted, refers to the current directory. Commands: hw init assignment Create a fresh working directory named assignment containing the initial files (if any) for the assignment of that name. Commits the working directory to your repository, creating an entry for assignment (which must not have previously existed). hw checkout assignment Create a fresh working directory named assignment containing a copy of the latest version of assignment from your repository. hw checkout assignment - number Create a fresh directory named assignment - number containing a copy of the tag (submission) named assignment - number from the repository. This is NOT a working copy, and cannot be committed back to the repository. hw checkout assignment -r number Create a fresh directory named assignment -r number containing a copy of previously committed revision number of assignment from the repository. To find revision numbers for past commits, use the hw log command. The resulting directory is NOT a working copy, and cannot be committed back to the repository. hw update [ dir ] Copies any changes in the repository copy of the assignment in dir into dir. Reports any conflicts (such as files in the working directory that have been changed in a way that differs from ho the repository version was changed). hw revert file Reverts file to its state just after the last commit, checkout, or init. If file was modified or deleted, restores its previous contents. hw commit [ dir ] Copies the contents of dir to the repository, thus creating a new version. First asks about any anomalies, such as files that have been added, deleted, or incompletely merged. hw submit [ dir ] Submit the contents of dir, creating a tag. First runs various checks that the submission is complete. The directory must be the top-level directory for an assignment. hw status [ dir ] List the files in dir that differ from the contents of the repository, indicating which are modified, and which are not tracked (i.e., not in the repository in any version). hw diff [ file dir ] [ revision number ] Reports differences between contents of file or dir (default, current directory), and the last version of it that was checked out. hw list [ dir ] List all files in dir indicating any that are modified, or are not tracked (i.e., not in the repository in any version). This is like status, but includes all files. hw log [ dir ] [ lim ] List log entries for commits of dir, most recent first. If lim is specified, it is an integer indicating the maximum number of entries. hw assignments Lists all the assignments you have worked on and committed to the repository, whether or not you ve submitted them. hw submissions [ assignment ] Lists all your submissions of assignment in the repository, or, if assignment is defaulted, all your submissions of all assignments.

Using Git for Project Management with µvision

Using Git for Project Management with µvision MDK Version 5 Tutorial AN279, Spring 2015, V 1.0 Abstract Teamwork is the basis of many modern microcontroller development projects. Often teams are distributed all over the world and over various time

More information

Using Subversion in Computer Science

Using Subversion in Computer Science School of Computer Science 1 Using Subversion in Computer Science Last modified July 28, 2006 Starting from semester two, the School is adopting the increasingly popular SVN system for management of student

More information

Git Basics. Christopher Simpkins chris.simpkins@gatech.edu. Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 1 / 22

Git Basics. Christopher Simpkins chris.simpkins@gatech.edu. Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 1 / 22 Git Basics Christopher Simpkins chris.simpkins@gatech.edu Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 1 / 22 Version Control Systems Records changes to files over time Allows you to

More information

Version control. HEAD is the name of the latest revision in the repository. It can be used in subversion rather than the latest revision number.

Version control. HEAD is the name of the latest revision in the repository. It can be used in subversion rather than the latest revision number. Version control Version control is a powerful tool for many kinds of work done over a period of time, including writing papers and theses as well as writing code. This session gives a introduction to a

More information

CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011

CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011 CISC 275: Introduction to Software Engineering Lab 5: Introduction to Revision Control with Charlie Greenbacker University of Delaware Fall 2011 Overview Revision Control Systems in general Subversion

More information

Version Control with Subversion

Version Control with Subversion Version Control with Subversion http://www.oit.duke.edu/scsc/ http://wiki.duke.edu/display/scsc scsc@duke.edu John Pormann, Ph.D. jbp1@duke.edu Software Carpentry Courseware This is a re-work from the

More information

Lab 0: Version control

Lab 0: Version control Lab Handout ENGI3891 Faculty of Engineering and Applied Science 16,23 Sep 2015 1 Purpose and outcomes This lab will give you hands-on experience with an essential development tool: a version control system

More information

Version Control with. Ben Morgan

Version Control with. Ben Morgan Version Control with Ben Morgan Developer Workflow Log what we did: Add foo support Edit Sources Add Files Compile and Test Logbook ======= 1. Initial version Logbook ======= 1. Initial version 2. Remove

More information

CSE 374 Programming Concepts & Tools. Laura Campbell (Thanks to Hal Perkins) Winter 2014 Lecture 16 Version control and svn

CSE 374 Programming Concepts & Tools. Laura Campbell (Thanks to Hal Perkins) Winter 2014 Lecture 16 Version control and svn CSE 374 Programming Concepts & Tools Laura Campbell (Thanks to Hal Perkins) Winter 2014 Lecture 16 Version control and svn Where we are Learning tools and concepts relevant to multi-file, multi-person,

More information

Version Control with Subversion and Xcode

Version Control with Subversion and Xcode Version Control with Subversion and Xcode Author: Mark Szymczyk Last Update: June 21, 2006 This article shows you how to place your source code files under version control using Subversion and Xcode. By

More information

Using SVN to Manage Source RTL

Using SVN to Manage Source RTL Using SVN to Manage Source RTL CS250 Tutorial 1 (Version 092509a) September 25, 2009 Yunsup Lee In this tutorial you will gain experience using the Subversion (SVN) to manage your source RTL and code.

More information

CS 2112 Lab: Version Control

CS 2112 Lab: Version Control 29 September 1 October, 2014 Version Control What is Version Control? You re emailing your project back and forth with your partner. An hour before the deadline, you and your partner both find different

More information

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison Version control with git and GitHub Karl Broman Biostatistics & Medical Informatics, UW Madison kbroman.org github.com/kbroman @kwbroman Course web: kbroman.org/tools4rr Slides prepared with Sam Younkin

More information

Version Control! Scenarios, Working with Git!

Version Control! Scenarios, Working with Git! Version Control! Scenarios, Working with Git!! Scenario 1! You finished the assignment at home! VC 2 Scenario 1b! You finished the assignment at home! You get to York to submit and realize you did not

More information

using version control in system administration

using version control in system administration LUKE KANIES using version control in system administration Luke Kanies runs Reductive Labs (http://reductivelabs.com), a startup producing OSS software for centralized, automated server administration.

More information

Version Control with Svn, Git and git-svn. Kate Hedstrom ARSC, UAF

Version Control with Svn, Git and git-svn. Kate Hedstrom ARSC, UAF 1 Version Control with Svn, Git and git-svn Kate Hedstrom ARSC, UAF 2 Version Control Software System for managing source files For groups of people working on the same code When you need to get back last

More information

Version Control with Subversion

Version Control with Subversion Version Control with Subversion Introduction Wouldn t you like to have a time machine? Software developers already have one! it is called version control Version control (aka Revision Control System or

More information

MATLAB & Git Versioning: The Very Basics

MATLAB & Git Versioning: The Very Basics 1 MATLAB & Git Versioning: The Very Basics basic guide for using git (command line) in the development of MATLAB code (windows) The information for this small guide was taken from the following websites:

More information

Using SVN to Manage Source RTL

Using SVN to Manage Source RTL Using SVN to Manage Source RTL CS250 Tutorial 1 (Version 083010a) August 30, 2010 Yunsup Lee In this tutorial you will gain experience using the Subversion (SVN) to manage your source RTL and code. You

More information

Introducing Xcode Source Control

Introducing Xcode Source Control APPENDIX A Introducing Xcode Source Control What You ll Learn in This Appendix: u The source control features offered in Xcode u The language of source control systems u How to connect to remote Subversion

More information

Lab 0 (Setting up your Development Environment) Week 1

Lab 0 (Setting up your Development Environment) Week 1 ECE155: Engineering Design with Embedded Systems Winter 2013 Lab 0 (Setting up your Development Environment) Week 1 Prepared by Kirill Morozov version 1.2 1 Objectives In this lab, you ll familiarize yourself

More information

Introduction to Git. Markus Kötter koetter@rrzn.uni-hannover.de. Notes. Leinelab Workshop July 28, 2015

Introduction to Git. Markus Kötter koetter@rrzn.uni-hannover.de. Notes. Leinelab Workshop July 28, 2015 Introduction to Git Markus Kötter koetter@rrzn.uni-hannover.de Leinelab Workshop July 28, 2015 Motivation - Why use version control? Versions in file names: does this look familiar? $ ls file file.2 file.

More information

Version Control Systems (Part 2)

Version Control Systems (Part 2) 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

1 Basic commands. 2 Terminology. CS61B, Fall 2009 Simple UNIX Commands P. N. Hilfinger

1 Basic commands. 2 Terminology. CS61B, Fall 2009 Simple UNIX Commands P. N. Hilfinger CS61B, Fall 2009 Simple UNIX Commands P. N. Hilfinger 1 Basic commands This section describes a list of commonly used commands that are available on the EECS UNIX systems. Most commands are executed by

More information

Data management on HPC platforms

Data management on HPC platforms Data management on HPC platforms Transferring data and handling code with Git scitas.epfl.ch September 10, 2015 http://bit.ly/1jkghz4 What kind of data Categorizing data to define a strategy Based on size?

More information

Version Control Using Subversion. Version Control Using Subversion 1 / 27

Version Control Using Subversion. Version Control Using Subversion 1 / 27 Version Control Using Subversion Version Control Using Subversion 1 / 27 What Is Version Control? Version control is also known as revision control. Version control is provided by a version control system

More information

Introduction to Version Control

Introduction to Version Control Research Institute for Symbolic Computation Johannes Kepler University Linz, Austria Winter semester 2014 Outline General Remarks about Version Control 1 General Remarks about Version Control 2 Outline

More information

Introduction to Source Control ---

Introduction to Source Control --- Introduction to Source Control --- Overview Whether your software project is large or small, it is highly recommended that you use source control as early as possible in the lifecycle of your project.

More information

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.) Today: Source code control CPSC 491 Source Code (Version) Control Exercise: 1. Pretend like you don t have a version control system (e. g., no git, subversion, cvs, etc.) 2. How would you manage your source

More information

MATLAB @ Work. MATLAB Source Control Using Git

MATLAB @ Work. MATLAB Source Control Using Git MATLAB @ Work MATLAB Source Control Using Git Richard Johnson Using source control is a key practice for professional programmers. If you have ever broken a program with a lot of editing changes, you can

More information

Source Code Management for Continuous Integration and Deployment. Version 1.0 DO NOT DISTRIBUTE

Source Code Management for Continuous Integration and Deployment. Version 1.0 DO NOT DISTRIBUTE Source Code Management for Continuous Integration and Deployment Version 1.0 Copyright 2013, 2014 Amazon Web Services, Inc. and its affiliates. All rights reserved. This work may not be reproduced or redistributed,

More information

Source Control Systems

Source Control Systems Source Control Systems SVN, Git, GitHub SoftUni Team Technical Trainers Software University http://softuni.bg Table of Contents 1. Software Configuration Management (SCM) 2. Version Control Systems: Philosophy

More information

Version Control with Git. Kate Hedstrom ARSC, UAF

Version Control with Git. Kate Hedstrom ARSC, UAF 1 Version Control with Git Kate Hedstrom ARSC, UAF Linus Torvalds 3 Version Control Software System for managing source files For groups of people working on the same code When you need to get back last

More information

Introduction to the Git Version Control System

Introduction to the Git Version Control System Introduction to the Sebastian Rockel rockel@informatik.uni-hamburg.de University of Hamburg Faculty of Mathematics, Informatics and Natural Sciences Department of Informatics Technical Aspects of Multimodal

More information

Slides prepared by : Farzana Rahman. SUBVERSION A version control tool

Slides prepared by : Farzana Rahman. SUBVERSION A version control tool 1 SUBVERSION A version control tool OUTLINE What is subversion? Basic commands help Import Checkout what is.svn directory? update other commands status diff log links 2 WHAT IS SUBVERSION? Subversion is

More information

Linux Overview. Local facilities. Linux commands. The vi (gvim) editor

Linux Overview. Local facilities. Linux commands. The vi (gvim) editor Linux Overview Local facilities Linux commands The vi (gvim) editor MobiLan This system consists of a number of laptop computers (Windows) connected to a wireless Local Area Network. You need to be careful

More information

CSCB07 Software Design Version Control

CSCB07 Software Design Version Control CSCB07 Software Design Version Control Anya Tafliovich Fall 2015 Problem I: 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

More information

Dalhousie University CSCI 2132 Software Development Winter 2015 Lab 7, March 11

Dalhousie University CSCI 2132 Software Development Winter 2015 Lab 7, March 11 Dalhousie University CSCI 2132 Software Development Winter 2015 Lab 7, March 11 In this lab, you will first learn how to use pointers to print memory addresses of variables. After that, you will learn

More information

Before you can use the Duke Ambient environment to start working on your projects or

Before you can use the Duke Ambient environment to start working on your projects or Using Ambient by Duke Curious 2004 preparing the environment Before you can use the Duke Ambient environment to start working on your projects or labs, you need to make sure that all configuration settings

More information

Version control with GIT

Version control with GIT AGV, IIT Kharagpur September 13, 2012 Outline 1 Version control system What is version control Why version control 2 Introducing GIT What is GIT? 3 Using GIT Using GIT for AGV at IIT KGP Help and Tips

More information

Remote Access to Unix Machines

Remote Access to Unix Machines Remote Access to Unix Machines Alvin R. Lebeck Department of Computer Science Department of Electrical and Computer Engineering Duke University Overview We are using OIT Linux machines for some homework

More information

Pragmatic Version Control

Pragmatic Version Control Extracted from: Pragmatic Version Control using Subversion, 2nd Edition This PDF file contains pages extracted from Pragmatic Version Control, one of the Pragmatic Starter Kit series of books for project

More information

Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat rohitrawat@gmail.com

Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat rohitrawat@gmail.com Version Control with Git Linux Users Group UT Arlington Rohit Rawat rohitrawat@gmail.com Need for Version Control Better than manually storing backups of older versions Easier to keep everyone updated

More information

Revision control systems (RCS) and

Revision control systems (RCS) and 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

Setting up PostgreSQL

Setting up PostgreSQL Setting up PostgreSQL 1 Introduction to PostgreSQL PostgreSQL is an object-relational database management system based on POSTGRES, which was developed at the University of California at Berkeley. PostgreSQL

More information

Git - Working with Remote Repositories

Git - Working with Remote Repositories Git - Working with Remote Repositories Handout New Concepts Working with remote Git repositories including setting up remote repositories, cloning remote repositories, and keeping local repositories in-sync

More information

Laboration 3 - Administration

Laboration 3 - Administration Laboration 3 - Administration During this laboration we will learn how to install, configure and test servers that will allow you to have access remote machines, copy files between computers and file sharing.

More information

BlueJ Teamwork Tutorial

BlueJ Teamwork Tutorial BlueJ Teamwork Tutorial Version 2.0 for BlueJ Version 2.5.0 (and 2.2.x) Bruce Quig, Davin McCall School of Engineering & IT, Deakin University Contents 1 OVERVIEW... 3 2 SETTING UP A REPOSITORY... 3 3

More information

Lab 1 Beginning C Program

Lab 1 Beginning C Program Lab 1 Beginning C Program Overview This lab covers the basics of compiling a basic C application program from a command line. Basic functions including printf() and scanf() are used. Simple command line

More information

A brief introduction to CVS

A brief introduction to CVS A brief introduction to CVS Concurrent Versions System (CVS) Motivation source code files constantly change keeping track of what source files work together recovering from major changing obtaining previous

More information

NASA Workflow Tool. User Guide. September 29, 2010

NASA Workflow Tool. User Guide. September 29, 2010 NASA Workflow Tool User Guide September 29, 2010 NASA Workflow Tool User Guide 1. Overview 2. Getting Started Preparing the Environment 3. Using the NED Client Common Terminology Workflow Configuration

More information

Mercurial. Why version control (Single users)

Mercurial. Why version control (Single users) Mercurial Author: Hans Fangohr Date: 2008-05-21 Version: 033c85b22987 Id: talk.txt,v 033c85b22987 2008/05/21 08:42:42 fangohr Series: SESA2006 2008, last lecture Hint Adjust font-size

More information

CS 103 Lab Linux and Virtual Machines

CS 103 Lab Linux and Virtual Machines 1 Introduction In this lab you will login to your Linux VM and write your first C/C++ program, compile it, and then execute it. 2 What you will learn In this lab you will learn the basic commands and navigation

More information

Setting up a local working copy with SVN, MAMP and rsync. Agentic - 2009

Setting up a local working copy with SVN, MAMP and rsync. Agentic - 2009 Setting up a local working copy with SVN, MAMP and rsync Agentic - 2009 Get MAMP You can download MAMP for MAC at this address : http://www.mamp.info/en/downloads/index.html Install MAMP in your APPLICATION

More information

Git Basics. Christian Hanser. Institute for Applied Information Processing and Communications Graz University of Technology. 6.

Git Basics. Christian Hanser. Institute for Applied Information Processing and Communications Graz University of Technology. 6. Git Basics Christian Hanser Institute for Applied Information Processing and Communications Graz University of Technology 6. March 2013 Christian Hanser 6. March 2013 Seite 1/39 Outline Learning Targets

More information

Subversion. Nadir SOUALEM. Linux Users subversion client svn 1.6.5 or higher. Windows users subversion client Tortoise 1.6.

Subversion. Nadir SOUALEM. Linux Users subversion client svn 1.6.5 or higher. Windows users subversion client Tortoise 1.6. Subversion Nadir SOUALEM 1 Requirements Linux Users subversion client svn 1.6.5 or higher Windows users subversion client Tortoise 1.6.6 or higher 2 What is Subversion? Source control or version control

More information

PuTTY/Cygwin Tutorial. By Ben Meister Written for CS 23, Winter 2007

PuTTY/Cygwin Tutorial. By Ben Meister Written for CS 23, Winter 2007 PuTTY/Cygwin Tutorial By Ben Meister Written for CS 23, Winter 2007 This tutorial will show you how to set up and use PuTTY to connect to CS Department computers using SSH, and how to install and use the

More information

Version Control. Luka Milovanov lmilovan@abo.fi

Version Control. Luka Milovanov lmilovan@abo.fi Version Control Luka Milovanov lmilovan@abo.fi Configuration Management Configuration management is the management of system change to software products Version management: consistent scheme of version

More information

An Introduction to Mercurial Version Control Software

An Introduction to Mercurial Version Control Software An Introduction to Mercurial Version Control Software CS595, IIT [Doc Updated by H. Zhang] Oct, 2010 Satish Balay balay@mcs.anl.gov Outline Why use version control? Simple example of revisioning Mercurial

More information

INF 111 / CSE 121. Homework 4: Subversion Due Tuesday, July 14, 2009

INF 111 / CSE 121. Homework 4: Subversion Due Tuesday, July 14, 2009 Homework 4: Subversion Due Tuesday, July 14, 2009 Name : Student Number : Laboratory Time : Objectives Preamble Set up a Subversion repository on UNIX Use Eclipse as a Subversion client Subversion (SVN)

More information

Week G Versioning with svn

Week G Versioning with svn Week G Versioning with svn What is Versioning? Naïve vs. smart approaches Subversion (svn) workflow Basic svn commands http://subversion.tigris.org/ Assignments: Check in your proposals Week G Versioning

More information

Version Control Tools

Version Control Tools Version Control Tools Source Code Control Venkat N Gudivada Marshall University 13 July 2010 Venkat N Gudivada Version Control Tools 1/73 Outline 1 References and Resources 2 3 4 Venkat N Gudivada Version

More information

Lab Exercise Part II: Git: A distributed version control system

Lab Exercise Part II: Git: A distributed version control system Lunds tekniska högskola Datavetenskap, Nov 25, 2013 EDA260 Programvaruutveckling i grupp projekt Labb 2 (part II: Git): Labbhandledning Checked on Git versions: 1.8.1.2 Lab Exercise Part II: Git: A distributed

More information

Source Control Guide: Git

Source Control Guide: Git MadCap Software Source Control Guide: Git Flare 11.1 Copyright 2015 MadCap Software. All rights reserved. Information in this document is subject to change without notice. The software described in this

More information

RecoveryVault Express Client User Manual

RecoveryVault Express Client User Manual For Linux distributions Software version 4.1.7 Version 2.0 Disclaimer This document is compiled with the greatest possible care. However, errors might have been introduced caused by human mistakes or by

More information

Hypercosm. Studio. www.hypercosm.com

Hypercosm. Studio. www.hypercosm.com Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks

More information

Xcode Source Management Guide. (Legacy)

Xcode Source Management Guide. (Legacy) Xcode Source Management Guide (Legacy) Contents Introduction 5 Organization of This Document 5 See Also 6 Source Management Overview 7 Source Control Essentials 7 Snapshots 8 Managing Source in Xcode 8

More information

1. Product Information

1. Product Information ORIXCLOUD BACKUP CLIENT USER MANUAL LINUX 1. Product Information Product: Orixcloud Backup Client for Linux Version: 4.1.7 1.1 System Requirements Linux (RedHat, SuSE, Debian and Debian based systems such

More information

Source Code Management/Version Control

Source Code Management/Version Control Date: 3 rd March 2005 Source Code Management/Version Control The Problem: In a typical software development environment, many developers will be engaged in work on one code base. If everyone was to be

More information

Two Best Practices for Scientific Computing

Two Best Practices for Scientific Computing Two Best Practices for Scientific Computing Version Control Systems & Automated Code Testing David Love Software Interest Group University of Arizona February 18, 2013 How This Talk Happened Applied alumnus,

More information

Distributed Version Control with Mercurial and git

Distributed Version Control with Mercurial and git OpenStax-CNX module: m37404 1 Distributed Version Control with Mercurial and git Hannes Hirzel This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 3.0 Abstract

More information

Version Uncontrolled! : How to Manage Your Version Control

Version Uncontrolled! : How to Manage Your Version Control Version Uncontrolled! : How to Manage Your Version Control Harold Dost III, Raastech ABSTRACT Are you constantly wondering what is in your production environment? Do you have any doubts about what code

More information

Online Backup Client User Manual Linux

Online Backup Client User Manual Linux Online Backup Client User Manual Linux 1. Product Information Product: Online Backup Client for Linux Version: 4.1.7 1.1 System Requirements Operating System Linux (RedHat, SuSE, Debian and Debian based

More information

Online Backup Linux Client User Manual

Online Backup Linux Client User Manual Online Backup Linux Client User Manual Software version 4.0.x For Linux distributions August 2011 Version 1.0 Disclaimer This document is compiled with the greatest possible care. However, errors might

More information

Version Control. Version Control

Version Control. Version Control Version Control CS440 Introduction to Software Engineering 2013, 2015 John Bell Based on slides prepared by Jason Leigh for CS 340 University of Illinois at Chicago Version Control Incredibly important

More information

Online Backup Client User Manual

Online Backup Client User Manual For Linux distributions Software version 4.1.7 Version 2.0 Disclaimer This document is compiled with the greatest possible care. However, errors might have been introduced caused by human mistakes or by

More information

Introduction To Version Control With Mercurial

Introduction To Version Control With Mercurial Introduction To Version Control With Mercurial How To Manage Changes To Your Files Author: Daniel Rocco, drocco@westga.edu Date: 2009-12-29 Version: TortoiseHG 0.8.x Copyright: c 2009 Daniel Rocco License:

More information

Version Control using Git and Github. Joseph Rivera

Version Control using Git and Github. Joseph Rivera Version Control using Git and Github Joseph Rivera 1 What is Version Control? Powerful development tool! Management of additions, deletions, and modifications to software/source code or more generally

More information

CLC Server Command Line Tools USER MANUAL

CLC Server Command Line Tools USER MANUAL CLC Server Command Line Tools USER MANUAL Manual for CLC Server Command Line Tools 2.5 Windows, Mac OS X and Linux September 4, 2015 This software is for research purposes only. QIAGEN Aarhus A/S Silkeborgvej

More information

Version Control Tutorial using TortoiseSVN and. TortoiseGit

Version Control Tutorial using TortoiseSVN and. TortoiseGit Version Control Tutorial using TortoiseSVN and TortoiseGit Christopher J. Roy, Associate Professor Virginia Tech, cjroy@vt.edu This tutorial can be found at: www.aoe.vt.edu/people/webpages/cjroy/software-resources/tortoise-svn-git-tutorial.pdf

More information

Subversion Integration for Visual Studio

Subversion Integration for Visual Studio Subversion Integration for Visual Studio VisualSVN Team VisualSVN: Subversion Integration for Visual Studio VisualSVN Team Copyright 2005-2008 VisualSVN Team Windows is a registered trademark of Microsoft

More information

CONNECTING TO DEPARTMENT OF COMPUTER SCIENCE SERVERS BOTH FROM ON AND OFF CAMPUS USING TUNNELING, PuTTY, AND VNC Client Utilities

CONNECTING TO DEPARTMENT OF COMPUTER SCIENCE SERVERS BOTH FROM ON AND OFF CAMPUS USING TUNNELING, PuTTY, AND VNC Client Utilities CONNECTING TO DEPARTMENT OF COMPUTER SCIENCE SERVERS BOTH FROM ON AND OFF CAMPUS USING TUNNELING, PuTTY, AND VNC Client Utilities DNS name: turing.cs.montclair.edu -This server is the Departmental Server

More information

To reduce or not to reduce, that is the question

To reduce or not to reduce, that is the question To reduce or not to reduce, that is the question 1 Running jobs on the Hadoop cluster For part 1 of assignment 8, you should have gotten the word counting example from class compiling. To start with, let

More information

University of Toronto

University of Toronto 1 University of Toronto APS 105 Computer Fundamentals A Tutorial about UNIX Basics Fall 2011 I. INTRODUCTION This document serves as your introduction to the computers we will be using in this course.

More information

Software configuration management. Configuration and build. Version control. Boring(?) but really useful things

Software configuration management. Configuration and build. Version control. Boring(?) but really useful things Software configuration management We ll start with the nitty gritty and then get more abstract. Configuration and build Perdita Stevens School of Informatics University of Edinburgh 1. Version control

More information

Version Control Systems

Version Control Systems Version Control Systems ESA 2015/2016 Adam Belloum a.s.z.belloum@uva.nl Material Prepared by Eelco Schatborn Today IntroducGon to Version Control Systems Centralized Version Control Systems RCS CVS SVN

More information

QlikView 11 Source Control Walkthrough

QlikView 11 Source Control Walkthrough QlikView 11 Source Control Walkthrough A QlikView Technology White Paper Originally published: August, 2011 Updated August, 2012 www.qlikview.com 1 Table of Contents BACKGROUND... 3 SOURCE CONTROL BASICS...

More information

Version control with Subversion

Version control with Subversion Version control with Subversion Davor Cubranic Grad Seminar October 6, 2011 With searching comes loss And the presence of absence: My Thesis not found. Version Control A tool for managing changes to a

More information

Group Policy for Beginners

Group Policy for Beginners Group Policy for Beginners Microsoft Corporation Published: April 2011 Abstract Group Policy is the essential way that most organizations enforce settings on their computers. This white paper introduces

More information

Tuesday, October 18. Configuration Management (Version Control)

Tuesday, October 18. Configuration Management (Version Control) Tuesday, October 18 Configuration Management (Version Control) How Version Control Works Place the official version of source code into a central repository, or database Programmers check out a working

More information

Version control tracks multiple versions. Configuration Management. Version Control. V22.0474-001 Software Engineering Lecture 12, Spring 2008

Version control tracks multiple versions. Configuration Management. Version Control. V22.0474-001 Software Engineering Lecture 12, Spring 2008 Configuration Management Version Control V22.0474-001 Software Engineering Lecture 12, Spring 2008 Clark Barrett, New York University Configuration Management refers to a set of procedures for managing

More information

Fachpraktikum Grafik-Programmierung WS2010 Introduction to Version Control

Fachpraktikum Grafik-Programmierung WS2010 Introduction to Version Control Fachpraktikum Grafik-Programmierung WS2010 Introduction to Version Control Alexandros Panagiotidis, Daniel Kauker Institut für Visualisierung und Interaktive Systeme Universität Stuttgart Advantages of

More information

Flumes Short User Guide to Subversion

Flumes Short User Guide to Subversion Flumes Short User Guide to Subversion Peter Nordin January 7, 2014 This guide is primarily meant as an introduction to Subversion for users of the svn accounts administered by the Division of Fluid and

More information

CVS versus BitKeeper A Comparison

CVS versus BitKeeper A Comparison Chapter 11 CVS versus BitKeeper A Comparison Since the publication of the second edition of this book, a powerful new versioning system has risen called Bitkeeper, or BK/PRO, to dominate at least certain

More information

COSC345 2013 Software Engineering. Lecture 7: Version Control

COSC345 2013 Software Engineering. Lecture 7: Version Control COSC345 2013 Software Engineering Lecture 7: Version Control Some Problems Communications File system problems Version control Basic principles and use Outline When to use version control Examples SCCS

More information

BACKUP YOUR SENSITIVE DATA WITH BACKUP- MANAGER

BACKUP YOUR SENSITIVE DATA WITH BACKUP- MANAGER Training course 2007 BACKUP YOUR SENSITIVE DATA WITH BACKUP- MANAGER Nicolas FUNKE PS2 ID : 45722 This document represents my internships technical report. I worked for the Biarritz's Town Hall during

More information

Version Control and Subversion. Dr Paul Tennent

Version Control and Subversion. Dr Paul Tennent Version Control and Subversion Dr Paul Tennent Outline Housekeeping What is Version Control? Why use it? Using Subversion (SVN) Housekeeping You know where to find everything http://www.cs.nott.ax.uk/~pxt/g52grp

More information

Using Oracle Cloud to Power Your Application Development Lifecycle

Using Oracle Cloud to Power Your Application Development Lifecycle Using Oracle Cloud to Power Your Application Development Lifecycle Srikanth Sallaka Oracle Product Management Dana Singleterry Oracle Product Management Greg Stachnick Oracle Product Management Using Oracle

More information

Advanced Computing Tools for Applied Research Chapter 4. Version control

Advanced Computing Tools for Applied Research Chapter 4. Version control Advanced Computing Tools for Applied Research Jaime Boal Martín-Larrauri Rafael Palacios Hielscher Academic year 2014/2015 1 Version control fundamentals 2 What you probably do now Manually save copies

More information

FEEG6002 - Applied Programming 3 - Version Control and Git II

FEEG6002 - Applied Programming 3 - Version Control and Git II FEEG6002 - Applied Programming 3 - Version Control and Git II Sam Sinayoko 2015-10-16 1 / 26 Outline Learning outcomes Working with a single repository (review) Working with multiple versions of a repository

More information