CSE 70: Software Development Pipeline Build Process, XML, Repositories
|
|
- Cassandra Green
- 8 years ago
- Views:
Transcription
1 CSE 70: Software Development Pipeline Build Process, XML, Repositories Ingolf Krueger Department of Computer Science & Engineering University of California, San Diego La Jolla, CA , USA California Institute for Telecommunications and Information Technologies La Jolla, CA , USA
2 Learning Goals for Today Ingolf Krueger, 2010 CSE 2
3 Learning Goals Be able to identify key elements of the software development pipeline Understand a basic Java program and how it is compiled/run Be able to change a given program to introduce functions and additional classes that can evolve separately Understand the need for a build tool See Ant used to automate compilation and other tasks Be able to write basic Ant files yourself Understand the challenges of maintaining a code base in an individual and team development setting Understand the need for and basic principles of version control/ configuration management Ingolf Krueger, 2010 CSE 3
4 Key elements of the software development pipeline Ingolf Krueger, 2010 CSE 4
5 Software Development Pipeline: Requirements System Ingolf Krueger, 2010 CSE 5
6 Stage 0: Individual, using an IDE Ingolf Krueger, 2010 CSE 6
7 Stage 1: Individual, using IDE, Test and Build Tools Ingolf Krueger, 2010 CSE 7
8 Stage 2: Individual, w/ide, Local Build/Test Tools and Version Control Ingolf Krueger, 2010 CSE 8
9 Stage 3: Small Team w/ide, Test, Build, Version Control Ingolf Krueger, 2010 CSE 9
10 Stage 4: Small to Medium Teams w/automated Build Process Ingolf Krueger, 2010 CSE 10
11 Stage 4: Small to Medium Teams w/automated Build Process We ll cover all of these over the next few lectures and labs Ingolf Krueger, 2010 CSE 11
12 Stage 4: Small to Medium Teams w/automated Build Process Today s focus: Build Tools & Basics of Version Control Ingolf Krueger, 2010 CSE 12
13 Stage 0 to Stage 1 Why? Ingolf Krueger, 2010 CSE 13
14 Write a program that formats and outputs a given String Hello! H-e-l-l-o-!-! Ingolf Krueger, 2010 CSE 14
15 We want to change the Formatter and the main program separately: Introduce a StringFormatter class Ingolf Krueger, 2010 CSE 15
16 1 st attempt: introduce a dedicated class! package today;! StringFormatter.java! public class StringFormatter {! StringFormatter(){};! public String formatstring(string in) {! char[] cv = new char[2*in.length()];! for(int i = 0; i < cv.length; i+=2) {! cv[i] = in.charat(i/2);! cv[i+1] = - ;! }! return new String(cv);! }! }! Ingolf Krueger, 2010 CSE 16
17 1 st attempt: introduce a dedicated class! package today;! Printer.java! public class Printer {! public static void main(string[] args) {! StringFormatter sf = new StringFormatter();! String out = sf.formatstring("hello!");! System.out.println("formatted: "+out);! }! }! Ingolf Krueger, 2010 CSE 17
18 Looks good! Let s get it compiled! By now we have TWO Java source files: Printer.java! StringFormatter.java! In what order do we need to compile them? Ingolf Krueger, 2010 CSE 18
19 Java Compile Command (command line) 1 javac -d bin -cp bin src3/stringformatter.java! 2 javac -d bin -cp bin src3/printer.java! Ingolf Krueger, 2010 CSE 19
20 Introduce symbolic names for special characters Ingolf Krueger, 2010 CSE 20
21 2 nd attempt: add a class for symbolic names! package today;! CharConstantHolder.java! public abstract class CharConstantHolder {! }! public static char SPACE = ' ';! public static char DASH = '-';! public static char STAR = '*';!...! public class StringFormatter {!...! }! cv[i] = in.charat(i/2);! cv[i+1] = CharConstantHolder.STAR;!...! StringFormatter.java! Ingolf Krueger, 2010 CSE 21
22 Looks good! Let s get it compiled! By now we have THREE Java source files: Printer.java! depends on 3 CharConstantHolder.java! depends on 1 StringFormatter.java! 2 In what order do we need to compile them? Ingolf Krueger, 2010 CSE 22
23 Java Compile Command (command line) 1 javac -d bin -cp bin src4/charconstantholder.java! 2 javac -d bin -cp bin src4/stringformatter.java! javac -d bin -cp bin src4/printer.java! 3 Ingolf Krueger, 2010 CSE 23
24 Can we avoid manual recompiles and automate other tasks as well? Yes! Enter: Ant Ingolf Krueger, 2010 CSE 24
25 What is Ant? Apache Ant is an open source Java-based Build tool Works across platforms written in Java, input: XML Interlude: XML Ingolf Krueger, 2010 CSE 25
26 extensible Markup Language (XML) XML is a set of rules/guidelines for describing structured data in plain text XML supports creation of domain-specific languages that add meaning to data Start tag Example! <project>! <name> week2 </name>! <basedir>. </basedir>! <default> compile </default>! </project>! End tag Ingolf Krueger, 2010 CSE 26
27 XML: Tags and Elements XML is a set of rules/guidelines for describing structured data in plain text XML supports creation of domain-specific languages that add meaning to data Start tag Example! <project>! <name> week2 </name>! <basedir>. </basedir>! <default> compile </default>! </project>! Element/Data End tag Ingolf Krueger, 2010 CSE 27
28 XML Example XML is a set of rules/guidelines for describing structured data in plain text XML supports creation of domain-specific languages that add meaning to data <project>! <name> week2 </name>! <basedir>. </basedir>! <default> compile </default>! </project>! Example! Ingolf Krueger, 2010 CSE 28
29 XML Example XML is a set of rules/guidelines for describing structured data in plain text XML supports creation of domain-specific languages that add meaning to data <project>! <name> week2 </name>! <basedir>. </basedir>! <default> compile </default>! </project>! Example! Ingolf Krueger, 2010 CSE 29
30 In short: tags add meaning to data Ingolf Krueger, 2010 CSE 30
31 Writing Data Structures in XML vs. Java <project>! <name> week2 </name>! <basedir>. </basedir>! <default> compile </default>! </project>! Example.xml! class Project {! private:! Name name;! Basedir basedir;! Default default;!! }! vs. class Name {! private:! String s;!! }! class Default {! private:! String d;!! }! class Basedir {! private:! String bd;!! }! Ingolf Krueger, 2010 CSE 31
32 <project>! <name> week2 </name>! <basedir>. </basedir>! <default> compile </default>! </project>! Alternative Styles <project name = week2 basedir =. default = compile >! </project>! vs. <project name = week2 basedir =. default = compile />! vs. Attribute Ingolf Krueger, 2010 CSE 32
33 Example Write an XML file that holds Customer information using suitable tags and data entries: The customer s first and last name, their phone number, and their address! Example customer: Bilbo Baggins, , Bilbo.Baggins@lor.com Ingolf Krueger, 2010 CSE 33
34 One Solution Customer.xml! <customer>! <phone> </phone>! <first_name> Bilbo </first_name>! < > </ >! <last_name> Baggins </last_name>! </customer>! Ingolf Krueger, 2010 CSE 34
35 XML Pros and Cons XML files can be self-documenting via well-chosen tags Easily extendible Broadly applicable and applied communication standards B2B data exchange For small files: all you need is a text editor Tags/tag syntax add complexity to the file XML files can become unwieldy; special editing software can mitigate this Performance loss Ingolf Krueger, 2010 CSE 35
36 Back to Ant and its build files Ingolf Krueger, 2010 CSE 36
37 What is Ant? Apache Ant is an open source Java-based Build tool Works across platforms written in Java, input: XML Basic idea: 1. Read in a project specification (the build.xml file), containing Targets: A set of tasks you want to automate Each target can depend on multiple other targets Tasks (something you want to get done automatically), examples: Compile a set of Java files Create, delete, move a file/directory Create a jar file a zipped archive of your source 2. Determine dependencies among targets and within tasks 3. Execute all required tasks following the order determined in 2. Ingolf Krueger, 2010 CSE 37
38 Remember.java.class other input build.xml Ant output output files files other side-effects create/delete files create/delete dirs. program execution Ingolf Krueger, 2010 CSE 38
39 Ant Build File: Project Base directory, relative to location of build.xml build.xml! <project name = "week2" basedir = "." default = "compile">!!<target name = "compile">!!!<javac srcdir = "src4"!!!! destdir = "bin"/>!!</target>! </project>! Default target Ingolf Krueger, 2010 CSE 39
40 Ant Build File: Target </project>! build.xml! <project name = "week2" basedir = "." default = "compile">!!<target name = "compile">!!!<javac srcdir = "src4"! Target specification: one set of tasks you want to!!! destdir = "bin"/>! automate!</target>! Ingolf Krueger, 2010 CSE 40
41 Ant Build File: Task build.xml! <project name = "week2" basedir = "." default = "compile">!!<target name = "compile">! Task specification:!!<javac srcdir = "src4"! compile all.java files in src4 and!!! destdir = "bin"/>! put the corresponding.class files!</target>! into bin </project>! To execute the target named compile, type ant compile! Ingolf Krueger, 2010 CSE 41
42 Add a target that cleans out the bin directory Ingolf Krueger, 2010 CSE 42
43 Ant Build File: Task <project name = "week2" basedir = "." default = "compile">!!<target name = "compile">!!!<javac srcdir = "src4"!!!! destdir = "bin"/>!!</target>! <target name = "clean">! <delete dir= "bin"/>! </target>! </project>! build.xml! Task specification: remove the directory bin and all of its contents!!! To execute the target named clean, type ant clean! Ingolf Krueger, 2010 CSE 43
44 Add a target that creates the bin directory if it does not already exist Ingolf Krueger, 2010 CSE 44
45 Ant Build File: Task build.xml! <project name = "week2" basedir = "." default = "compile">!!<target name = "compile >!!!<javac srcdir = "src4"!!!! destdir = "bin"/>!!</target>! <target name = "clean">! <delete dir= "bin"/>! </target>! <target name = "init">! <mkdir dir = "bin"/>! </target>! </project>! Task specification: create the directory bin if it doesn t exist already To execute the target named init, type ant init! Ingolf Krueger, 2010 CSE 45
46 Add dependencies between compile and init targets Ingolf Krueger, 2010 CSE 46
47 Ant Build File: Task build.xml! <project name = "week2" basedir = "." default = "compile">!!<target name = "compile depends = init >!!!<javac srcdir = "src4"!!!! destdir = "bin"/>!!</target>! <target name = "clean">! <delete dir= "bin"/>! </target>! <target name = "init">! <mkdir dir = "bin"/>! </target>! </project>! What happens now if you enter the following ant clean; ant compile! Ingolf Krueger, 2010 CSE 47
48 Version Control (a.k.a Configuration Management) with subversion Ingolf Krueger, 2010 CSE 48
49 Stage 1 to Stage 2 Why? Ingolf Krueger, 2010 CSE 49
50 Scenario What can go wrong with your source files even if you are the only developer, and you are developing locally on your machine? Ingolf Krueger, 2010 CSE 50
51 Problems for Individual Non-Version Controlled Software If you save your work over what you had before, any prior work is gone forever Some help from backup mode of IDEs/Editors, but only a crutch Some help from physical backups, but how timely are they? No ability to revert back to a prior version of a particular file (the one without the error!) Never happened to you? It will trust me! Ingolf Krueger, 2010 CSE 51
52 Problems for Individual Non-Version Controlled Software How do you freeze one version for deployment and continue to work on a new version? Crucial if you need to deliver software at some point Many ad-hoc solutions that quickly fall apart due to lack of tool support What about a hard-disk failure? Are you protected? How often do you back up your development machine? What if you are working on a desktop at school/the office, and want to continue to work at your home desktop? the code? Carry a USB-stick? Do you have a good naming scheme? Ingolf Krueger, 2010 CSE 52
53 Scenario Assume now, you are developing in a small team. The team uses a regularly backed-up file-sharing mechanism (such as a shared network drive). What can go wrong? F.java Alice Bob Ingolf Krueger, 2010 CSE 53
54 Problems for Team Non-Version Controlled Software The last one who saves wins Blame game: You wrote over my changes! All my work is lost! How do you coordinate who can save a file at what time? How do you coordinate with 5 or 10 or 100 or 1000 developers on the team? Work gets artificially sequentialized I ll wait before I can touch that file. Who knows what will happen? Could potentially work on separate parts of a file, but merge by hand is error-prone Still no ability to revert back to a prior version of a particular file Ingolf Krueger, 2010 CSE 54
55 Problems for Team Non-Version Controlled Software Still difficult to freeze one version for deployment and continue to work on a new version Need configuration manager Many ad-hoc solutions that quickly fall apart due to lack of tool support What if you are working on a desktop at school/the office, and want to continue to work at your home desktop but have no access to the file share? Now it gets downright dangerous to carry the code home with you: the scope for conflicts/artificial sequentialization grows rapidly How do you merge back your changes into the shared file? Ingolf Krueger, 2010 CSE 55
56 Solution: Version Management with Dedicated Repository Introduce a Version Management Repository that holds the master copy of all artifacts (code, tests, build files, graphics, ) of your project Ingolf Krueger, 2010 CSE 56
57 Solution: Version Management with Dedicated Repository If Alice needs access to the code, she checks out a local copy check out Alice Ingolf Krueger, 2010 CSE 57
58 Solution: Version Management with Dedicated Repository If Bob also needs access to the code, he also checks out a local copy check out Alice Bob Ingolf Krueger, 2010 CSE 58
59 Solution: Version Management with Dedicated Repository Bob and Alice individually make changes to their own local copy Alice Bob Ingolf Krueger, 2010 CSE 59
60 Solution: Version Management with Dedicated Repository When Alice is done with her edits, she commits her local copy to the repository. Her changes are automatically merged into the master copy of the file in the repository. commit Alice Bob Ingolf Krueger, 2010 CSE 60
61 Scenario Now Bob is done with his edits, he also wants to commit. What can happen?? commit Alice Bob Ingolf Krueger, 2010 CSE 61
62 Solution: Version Management with Dedicated Repository Scenario 1: Alice and Bob have edited in different areas of the file No conflict! Bob s changes will be merged into the master copy. commit succeds Alice Bob Ingolf Krueger, 2010 CSE 62
63 Solution: Version Management with Dedicated Repository Scenario 2: Alice and Bob have edited in the same areas of the file Conflict! Bob s changes will NOT be merged into the master copy. commit fails Alice Bob Ingolf Krueger, 2010 CSE 63
64 Solution: Version Management with Dedicated Repository To resolve the conflict, Bob first updates his local copy. update Alice Bob Ingolf Krueger, 2010 CSE 64
65 Solution: Version Management with Dedicated Repository He gets notifications of the conflicts inside the affected files. He makes decisions to resolve the conflicts. update Alice Bob Ingolf Krueger, 2010 CSE 65
66 Solution: Version Management with Dedicated Repository Once he has resolved all conflicts, Bob commits again. This time he succeeds! commit succeeds Alice Bob Ingolf Krueger, 2010 CSE 66
67 Solution: Version Management with Dedicated Repository Alice updates at the beginning of her next work increment. check out Alice Bob Ingolf Krueger, 2010 CSE 67
68 SVN Workflow: Always Update BEFORE Starting Work Ingolf Krueger, 2010 CSE 68
69 SVN Workflow: Do something! Ingolf Krueger, 2010 CSE 69
70 SVN Workflow: Update BEFORE EACH Commit Ingolf Krueger, 2010 CSE 70
71 SVN Workflow: Resolve Conflicts Ingolf Krueger, 2010 CSE 71
72 SVN Workflow: Commit Ingolf Krueger, 2010 CSE 72
73 SVN Workflow Ingolf Krueger, 2010 CSE 73
74 Let s revisit these steps with subversion commands Ingolf Krueger, 2010 CSE 74
75 Solution: Version Management with Dedicated Repository Create subversion repository 1> ls ~/java/week2/svenx! branches/ tags/ trunk/! 1> ls ~/java/week2/svenx/trunk! F.java G.java! Alice 1> svnadmin create /var/svn/cse70-labs! Ingolf Krueger, 2010 CSE 75
76 Solution: Version Management with Dedicated Repository A new repository, named svn has been created (can link to it via Apache web server) svn Alice Ingolf Krueger, 2010 CSE 76
77 Solution: Version Management with Dedicated Repository Now Alice imports her existing folder (and its files) into the repository 1> svn import ~/java/week2/svenx \ import Alice Ingolf Krueger, 2010 CSE 77
78 Solution: Version Management with Dedicated Repository Now Alice needs access to check out her fresh local copy to synchronize with the repository 1> svn checkout \ check out Alice Ingolf Krueger, 2010 CSE 78
79 Solution: Version Management with Dedicated Repository Bob also checks out a local copy into his local wow folder 1> svn checkout check out Alice Bob Ingolf Krueger, 2010 CSE 79
80 Solution: Version Management with Dedicated Repository Bob and Alice individually make changes to their own local copy./trunk:!./trunk:! Alice Bob Ingolf Krueger, 2010 CSE 80
81 Solution: Version Management with Dedicated Repository Now Alice commits (publishes her edited files) 1> svn commit F.java! commit Alice Bob Ingolf Krueger, 2010 CSE 81
82 Solution: Version Management with Dedicated Repository Scenario 2: Bob updates Conflict! 1> svn update! C F.java! Updated to revision 233.! update conflict Alice Bob Ingolf Krueger, 2010 CSE 82
83 Bob looks at the file to find and resolve the conflict package today;! public class StringFormatter {! StringFormatter(){};! public String formatstring(string in) {! char[] cv = new char[2*in.length()];!!!for(int i = 0; i < cv.length; i+=2) {! I better chat!!!cv[i] = in.charat(i/2);! with Alice <<<<<<<.mine! about this!!!cv[i+1] = CharConstantHolder.STAR;! =======!!!!cv[i] = CharConstantHolder.STAR;! >>>>>>>.r233! }!!!}! return new String(cv);! }! Ingolf Krueger, 2010 CSE 83
84 Bob makes decisions to resolve the conflicts package today;! public class StringFormatter {! StringFormatter(){};! public String formatstring(string in) {! char[] cv = new char[2*in.length()];!!!for(int i = 0; i < cv.length; i+=2) {!!!!cv[i] = in.charat(i/2);!!!!cv[i+1] = CharConstantHolder.STAR;!!!}! return new String(cv);! }! }! Looks better already Ingolf Krueger, 2010 CSE 84
85 Solution: Version Management with Dedicated Repository Bob indicates that he has resolved the conflict 1> svn resolved F.java! Resolved conflicted state of F.java'! resolved Alice Bob Ingolf Krueger, 2010 CSE 85
86 Solution: Version Management with Dedicated Repository Once he has resolved all conflicts, Bob commits again. This time he succeeds! 1> svn commit F.java! commit succeeds Alice Bob Ingolf Krueger, 2010 CSE 86
87 Solution: Version Management with Dedicated Repository Alice updates at the beginning of her next work increment and the cycle repeats. 1> svn update! check out Alice Bob Ingolf Krueger, 2010 CSE 87
88 What else can you do with subversion? Ingolf Krueger, 2010 CSE 88
89 Create Branches Other Features of subversion Isolate changes to separate lines of development Example: one branch is the currently deployed version for maintenance, another branch is the current development version Can merge branches, e.g. Create Tags Similar to a branch Ingolf Krueger, 2010 CSE 89
90 What have you learned today? Ingolf Krueger, 2010 CSE 90
91 Learning Goals Be able to identify key elements of the software development pipeline Understand a basic Java program and how it is compiled/run Be able to change a given program to introduce functions and additional classes that can evolve separately Understand the need for a build tool See Ant used to automate compilation and other tasks Be able to write basic Ant files yourself Understand the challenges of maintaining a code base in an individual and team development setting Understand the need for and basic principles of version control/ configuration management Ingolf Krueger, 2010 CSE 91
92 Stage 2: Individual, w/ide, Local Build/Test Tools and Version Control Ingolf Krueger, 2010 CSE 92
93 Stage 4: Small to Medium Teams w/automated Build Process Ingolf Krueger, 2010 CSE 93
CSE 70: Software Development Pipeline Version Control with Subversion, Continuous Integration with Bamboo, Issue Tracking with Jira
CSE 70: Software Development Pipeline Version Control with Subversion, Continuous Integration with Bamboo, Issue Tracking with Jira Ingolf Krueger Department of Computer Science & Engineering University
More informationCPSC 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 informationUsing 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 informationRevision 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 informationCISC 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 informationUsing 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 informationContent. Development Tools 2(63)
Development Tools Content Project management and build, Maven Version control, Git Code coverage, JaCoCo Profiling, NetBeans Static Analyzer, NetBeans Continuous integration, Hudson Development Tools 2(63)
More informationContinuous Integration
Continuous Integration Collaborative development issues Checkout of a shared version of software ( mainline ) Creation of personal working copies of developers Software development: modification of personal
More informationBuild Management. Context. Learning Objectives
Build Management Wolfgang Emmerich Professor of Distributed Computing University College London http://sse.cs.ucl.ac.uk Context Requirements Inception Elaboration Construction Transition Analysis Design
More informationTutorial 5: Developing Java applications
Tutorial 5: Developing Java applications p. 1 Tutorial 5: Developing Java applications Georgios Gousios gousiosg@aueb.gr Department of Management Science and Technology Athens University of Economics and
More informationVersion 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 informationExpert PHP 5 Tools. Proven enterprise development tools and best practices for designing, coding, testing, and deploying PHP applications.
Expert PHP 5 Tools Proven enterprise development tools and best practices for designing, coding, testing, and deploying PHP applications Dirk Merkel PUBLISHING -J BIRMINGHAM - MUMBAI Preface Chapter 1:
More informationVersion 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 informationVersion 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 informationVersion 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 informationCS108, Stanford Handout #33. CVS in Eclipse
CS108, Stanford Handout #33 Winter, 2006-07 Nick Parlante CVS in Eclipse Source Control Any modern software project of any size uses "source control" Store all past revisions - Can see old versions, see
More informationCSCB07 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 informationSoftware Configuration Management. Context. Learning Objectives
Software Configuration Management Wolfgang Emmerich Professor of Distributed Computing University College London http://sse.cs.ucl.ac.uk Context Requirements Inception Elaboration Construction Transition
More informationCSE 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 informationBuilder User Guide. Version 6.0.1. Visual Rules Suite - Builder. Bosch Software Innovations
Visual Rules Suite - Builder Builder User Guide Version 6.0.1 Bosch Software Innovations Americas: Bosch Software Innovations Corp. 161 N. Clark Street Suite 3500 Chicago, Illinois 60601/USA Tel. +1 312
More informationVersion 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 informationGit 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 informationContinuous Integration and Delivery at NSIDC
National Snow and Ice Data Center Supporting Cryospheric Research Since 1976 Continuous Integration and Delivery at NSIDC Julia Collins National Snow and Ice Data Center Cooperative Institute for Research
More informationvs. Web Site: www.soebes.com Blog: blog.soebes.com Email: info@soebes.com Dipl.Ing.(FH) Karl Heinz Marbaise
Project Organization vs. Build- and Configuration Management Web Site: www.soebes.com Blog: blog.soebes.com Email: info@soebes.com Dipl.Ing.(FH) Karl Heinz Marbaise Agenda 1.Initialization 2.Specification
More informationVersion Control Using Subversion. 12 May 2013 OSU CSE 1
Version Control Using Subversion 12 May 2013 OSU CSE 1 Version Control In team projects, software engineers: Share and extend a common code base (and comply with standards, coding conventions, comment
More informationXMLVend Protocol Message Validation Suite
XMLVend Protocol Message Validation Suite 25-01-2012 Table of Contents 1. Overview 2 2. Installation and Operational Requirements 2 3. Preparing the system 3 4. Intercepting Messages 4 5. Generating Reports
More informationUsing Subversion for Source Code Control. Michael McLennan Software Architect Network for Computational Nanotechnology
Using Subversion for Source Code Control Michael McLennan Software Architect Network for Computational Nanotechnology What is Subversion? CVS on steroids Created by developers at CollabNet In development
More informationSource 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 informationLab 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 informationConfiguration & Build Management
Object-Oriented Software Engineering Using UML, Patterns, and Java Configuration & Build Management Outline of the Lecture Purpose of Software Configuration Management (SCM) Some Terminology Software Configuration
More informationVersion 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 informationVersion 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 informationSource 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 informationAutomation of Flex Building and Unit Testing or Continuous Integration with Flex, FlexUnit, and Ant
Automation of Flex Building and Unit Testing or Continuous Integration with Flex, FlexUnit, and Ant Daniel Rinehart Software Architect Allurent, Inc. Current Build Process Is your build process like a
More informationUsing 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 informationVersion 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 informationAnnoyances with our current source control Can it get more comfortable? Git Appendix. Git vs Subversion. Andrey Kotlarski 13.XII.
Git vs Subversion Andrey Kotlarski 13.XII.2011 Outline Annoyances with our current source control Can it get more comfortable? Git Appendix Rant Network traffic Hopefully we have good repository backup
More informationTo 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 informationRedbooks Paper. Deploying Applications Using IBM Rational ClearCase and IBM Tivoli Provisioning Manager. Introduction
Redbooks Paper Edson Manoel Kartik Kanakasabesan Deploying Applications Using IBM Rational ClearCase and IBM Tivoli Provisioning Manager Introduction This IBM Redpaper presents a simplified customer environment
More informationSoftware Delivery Integration and Source Code Management. for Suppliers
Software Delivery Integration and Source Code Management for Suppliers Document Information Author Version 1.0 Version Date 8/6/2012 Status final Approved by Reference not applicable Subversion_for_suppliers.doc
More informationIntroducing 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 informationIKAN ALM Architecture. Closing the Gap Enterprise-wide Application Lifecycle Management
IKAN ALM Architecture Closing the Gap Enterprise-wide Application Lifecycle Management Table of contents IKAN ALM SERVER Architecture...4 IKAN ALM AGENT Architecture...6 Interaction between the IKAN ALM
More informationSVN Setup and Configuration Management
Configuration Management Each team should use the Subversion (SVN) repository located at https://svn-user.cse.msu.edu/user/cse435/f2014/ to provide version control for all project artifacts as
More informationSoftware Configuration Management AE6382
Software Configuration Management Software Configuration Management What is it? Software Configuration Management is the process of tracking changes to software. Why use it? Maintain multiple branches
More informationJavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments. George Bochenek Randy Jones
JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments George Bochenek Randy Jones Enterprise Development What is it? Source Control Project Organization Unit Testing Continuous
More informationSoftware Configuration Management. Addendum zu Kapitel 13
Software Configuration Management Addendum zu Kapitel 13 Outline Purpose of Software Configuration Management (SCM) Motivation: Why software configuration management? Definition: What is software configuration
More informationHello World Portlet Rendered with JSP for WebSphere Portal Version 4.1
1 of 11 16.10.2002 11:41 Hello World Portlet Rendered with JSP for WebSphere Portal Version 4.1 Table of Contents Creating the directory structure Creating the Java code Compiling the code Creating the
More informationGit 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 informationSoftware Development In the Cloud Cloud management and ALM
Software Development In the Cloud Cloud management and ALM First published in Dr. Dobb's Journal, February 2009: http://www.ddj.com/development-tools/212900736 Nick Gulrajani is a Senior Solutions Architect
More informationWeek 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 informationBuilder User Guide. Version 5.4. Visual Rules Suite - Builder. Bosch Software Innovations
Visual Rules Suite - Builder Builder User Guide Version 5.4 Bosch Software Innovations Americas: Bosch Software Innovations Corp. 161 N. Clark Street Suite 3500 Chicago, Illinois 60601/USA Tel. +1 312
More informationINF 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 informationVersion 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 informationCS 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 informationusing 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 informationEfficient Automated Build and Deployment Framework with Parallel Process
Efficient Automated Build and Deployment Framework with Parallel Process Prachee Kamboj 1, Lincy Mathews 2 Information Science and engineering Department, M. S. Ramaiah Institute of Technology, Bangalore,
More informationIntroduction to the course, Eclipse and Python
As you arrive: 1. Start up your computer and plug it in. 2. Log into Angel and go to CSSE 120. Do the Attendance Widget the PIN is on the board. 3. Go to the Course Schedule web page. Open the Slides for
More informationTeaming Up for Software Development
Departamento de Informática Universidade do Minho Engenharia de Aplicações Introduction Agenda In the end of the session the attendee should be able to: Identify several super-sets of tools used in software
More informationIntroduction 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 informationVersion 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 informationTuesday, 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 informationManaging Software Projects Like a Boss with Subversion and Trac
Managing Software Projects Like a Boss with Subversion and Trac Beau Adkins CEO, Light Point Security lightpointsecurity.com beau.adkins@lightpointsecurity.com 2 Introduction... 4 Setting Up Your Server...
More informationMATLAB @ 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 informationVersion 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 informationJenkins on Windows with StreamBase
Jenkins on Windows with StreamBase Using a Continuous Integration (CI) process and server to perform frequent application building, packaging, and automated testing is such a good idea that it s now a
More informationIDS 561 Big data analytics Assignment 1
IDS 561 Big data analytics Assignment 1 Due Midnight, October 4th, 2015 General Instructions The purpose of this tutorial is (1) to get you started with Hadoop and (2) to get you acquainted with the code
More informationFile S1: Supplementary Information of CloudDOE
File S1: Supplementary Information of CloudDOE Table of Contents 1. Prerequisites of CloudDOE... 2 2. An In-depth Discussion of Deploying a Hadoop Cloud... 2 Prerequisites of deployment... 2 Table S1.
More informationBlueJ 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 informationAutomate Your Deployment with Bamboo, Drush and Features DrupalCamp Scotland, 9 th 10 th May 2014
This presentation was originally given at DrupalCamp Scotland, 2014. http://camp.drupalscotland.org/ The University of Edinburgh 1 We are 2 of the developers working on the University s ongoing project
More informationHadoop Tutorial. General Instructions
CS246: Mining Massive Datasets Winter 2016 Hadoop Tutorial Due 11:59pm January 12, 2016 General Instructions The purpose of this tutorial is (1) to get you started with Hadoop and (2) to get you acquainted
More informationSoftware configuration management
Software Engineering Theory Software configuration management Lena Buffoni/ Kristian Sandahl Department of Computer and Information Science 2015-09-30 2 Maintenance Requirements System Design (Architecture,
More informationLab 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 information1001ICT Introduction To Programming Lecture Notes
1001ICT Introduction To Programming Lecture Notes School of Information and Communication Technology Griffith University Semester 2, 2015 1 3 A First MaSH Program In this section we will describe a very
More informationMATLAB & 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 informationUsing Actian PSQL as a Data Store with VMware vfabric SQLFire. Actian PSQL White Paper May 2013
Using Actian PSQL as a Data Store with VMware vfabric SQLFire Actian PSQL White Paper May 2013 Contents Introduction... 3 Prerequisites and Assumptions... 4 Disclaimer... 5 Demonstration Steps... 5 1.
More informationTutorial 0A Programming on the command line
Tutorial 0A Programming on the command line Operating systems User Software Program 1 Program 2 Program n Operating System Hardware CPU Memory Disk Screen Keyboard Mouse 2 Operating systems Microsoft Apple
More informationTeam Name : PRX Team Members : Liang Yu, Parvathy Unnikrishnan Nair, Reto Kleeb, Xinyi Wang
Test Design Document Authors Team Name : PRX Team Members : Liang Yu, Parvathy Unnikrishnan Nair, Reto Kleeb, Xinyi Wang Purpose of this Document This document explains the general idea of the continuous
More informationCreating a Java application using Perfect Developer and the Java Develo...
1 of 10 15/02/2010 17:41 Creating a Java application using Perfect Developer and the Java Development Kit Introduction Perfect Developer has the facility to execute pre- and post-build steps whenever the
More informationWeek 2 Practical Objects and Turtles
Week 2 Practical Objects and Turtles Aims and Objectives Your aim in this practical is: to practise the creation and use of objects in Java By the end of this practical you should be able to: create objects
More informationApplication Notes for Packaging and Deploying Avaya Communications Process Manager Sample SDK Web Application on a JBoss Application Server Issue 1.
Avaya Solution & Interoperability Test Lab Application Notes for Packaging and Deploying Avaya Communications Process Manager Sample SDK Web Application on a JBoss Application Server Issue 1.0 Abstract
More informationDAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014
DAVE Usage with SVN Presentation and Tutorial v 2.0 May, 2014 Required DAVE Version Required DAVE version: v 3.1.6 or higher (recommend to use the most latest version, as of Feb 28, 2014, v 3.1.10) Required
More informationForce.com Migration Tool Guide
Force.com Migration Tool Guide Version 35.0, Winter 16 @salesforcedocs Last updated: October 29, 2015 Copyright 2000 2015 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark
More informationHudson Continous Integration Server. Stefan Saasen, stefan@coravy.com
Hudson Continous Integration Server Stefan Saasen, stefan@coravy.com Continous Integration Software development practice Members of a team integrate their work frequently Each integration is verified by
More informationGlobal Software Change Management for PVCS Version Manager
Global Software Change Management for PVCS Version Manager... www.ikanalm.com Summary PVCS Version Manager is considered as one of the leading versioning tools that offers complete versioning control.
More informationVersion 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 informationAutomating the Nengo build process
Automating the Nengo build process Trevor Bekolay Centre for Theoretical Neuroscience technical report. Sept 17, 2010 Abstract Nengo is a piece of sophisticated neural modelling software used to simulate
More informationMaven or how to automate java builds, tests and version management with open source tools
Maven or how to automate java builds, tests and version management with open source tools Erik Putrycz Software Engineer, Apption Software erik.putrycz@gmail.com Outlook What is Maven Maven Concepts and
More informationSoftware Development. COMP220/COMP285 Seb Coope Introducing Ant
Software Development COMP220/COMP285 Seb Coope Introducing Ant These slides are mainly based on Java Development with Ant - E. Hatcher & S.Loughran. Manning Publications, 2003 Introducing Ant Ant is Java
More informationImplementation Guide:
Zend Blueprint for Continuous Delivery Implementation Guide: Jenkins and server by Slavey Karadzhov Implementation Guide: Jenkins and Zend Server This pattern contains instructions on how to implement
More information[Handout for L6P2] How to Avoid a Big Bang: Integrating Software Components
Integration [Handout for L6P2] How to Avoid a Big Bang: Integrating Software Components Timing and frequency: Late and one time vs early and frequent Integrating parts written by different team members
More informationSVN Starter s Guide Compiled by Pearl Guterman June 2005
SVN Starter s Guide Compiled by Pearl Guterman June 2005 SV Table of Contents 1) What is SVN?... 1 2) SVN Architecture... 2 3) Creating a Working Copy... 3 4) Basic Work Cycle... 4 5) Status Symbols...
More informationUsing 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 informationPxPlus Version Control System Using TortoiseSVN. Jane Raymond
PxPlus Version Control System Using TortoiseSVN Presented by: Jane Raymond Presentation Outline Basic installation and setup Checking in an application first time Checking out an application first time
More informationOracle Service Bus Examples and Tutorials
March 2011 Contents 1 Oracle Service Bus Examples... 2 2 Introduction to the Oracle Service Bus Tutorials... 5 3 Getting Started with the Oracle Service Bus Tutorials... 12 4 Tutorial 1. Routing a Loan
More informationJazz Source Control Best Practices
Jazz Source Control Best Practices Shashikant Padur RTC SCM Developer Jazz Source Control Mantra The fine print Fast, easy, and a few concepts to support many flexible workflows Give all users access to
More informationCS 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 informationIntroduction 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 informationVersion Control Systems: SVN and GIT. How do VCS support SW development teams?
Version Control Systems: SVN and GIT How do VCS support SW development teams? CS 435/535 The College of William and Mary Agile manifesto We are uncovering better ways of developing software by doing it
More informationVersion 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 informationAutomatic promotion and versioning with Oracle Data Integrator 12c
Automatic promotion and versioning with Oracle Data Integrator 12c Jérôme FRANÇOISSE Rittman Mead United Kingdom Keywords: Oracle Data Integrator, ODI, Lifecycle, export, import, smart export, smart import,
More information