Jazz Source Control Best Practices



Similar documents
Introduction to Source Control ---

Rational Team Concert. Guido Salvaneschi Dipartimento di Elettronica e Informazione Politecnico di Milano salvaneschi@elet.polimi.

Leveraging Rational Team Concert's build capabilities for Continuous Integration

IBM Rational ClearCase, Version 8.0

Using Git with Rational Team Concert and Rational ClearCase in enterprise environments

QlikView 11 Source Control Walkthrough

Working with Versioning. SharePoint Services

Version Uncontrolled! : How to Manage Your Version Control

My Secure Backup: How to reduce your backup size

PRESENTS... Maintaining a version control system is resource intensive. Look at what experts say:

Subversion Integration for Visual Studio

SourceAnywhere Service Configurator can be launched from Start -> All Programs -> Dynamsoft SourceAnywhere Server.

serena.com Best Practice for Parallel Development using Serena Dimensions

Rational Team Concert. Quick Start Tutorial

Using Windows 8's "hidden" backup to clone and recover your whole PC

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

securing aws accounts with iam and

We ( have extensive experience in enterprise and system architectures, system engineering, project management, and

The Real Challenges of Configuration Management

1.2 Using the GPG Gen key Command

Ingeniørh. Version Control also known as Configuration Management

Work. MATLAB Source Control Using Git

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

PRESENTS... Reasons to Switch from SourceSafe: How to Make Your Life Easier with SourceAnywhere Standalone

Surround SCM Best Practices

Agile Development with Jazz and Rational Team Concert

Q1. What are the differences between Data Backup, System Restore, Disk Image, System Recovery Disc and System Repair Disk?

Source Control Guide: Git

3. If your drive is a laptop or notebook drive, please go to section I.II.I. Laptop Drive.

The Developer s Guide to Virtual Machines. Developer ebook

Introducing Xcode Source Control

Part II. Managing Issues

5 barriers to database source control and how you can get around them

Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat

Microsoft s Team Foundation Server (TFS) Canute Magalhaes Richland County (IT) SYSTEMS ANALYST / PROJECT LEAD 1

Version Control. Luka Milovanov

Google Apps Migration

Essential Visual Studio Team System

WORKING IN TEAMS WITH CASECOMPLETE AND ACCUREV. Contents

Version control systems. Lecture 2

MATLAB & Git Versioning: The Very Basics

How to Setup an IMAP account in Outlook Express to Connect to Your Arrowmail Mailbox

Exporting s from Outlook Version 1.00

Windows XP Backup Made Easy

Continuous Integration. CSC 440: Software Engineering Slide #1

Zoom Plug-ins for Adobe

Using Git for Project Management with µvision

REDUCING YOUR MICROSOFT OUTLOOK MAILBOX SIZE

FEEG Applied Programming 3 - Version Control and Git II

Setting Up Person Accounts

Version Control! Scenarios, Working with Git!

OET Cloud Services Getting Started Guide

Online Backup by Mozy. Common Questions

CrushFTP User Manager

Back Up Your Data! - Part 1

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

Module 2 Cloud Computing

Version Control with Git. Dylan Nugent

MadCap Software. SharePoint Guide. Flare 11.1

HOW TO LINK AND PRESENT A 4D MODEL USING NAVISWORKS. Timo Hartmann t.hartmann@ctw.utwente.nl

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

Introduction to Git. Markus Kötter Notes. Leinelab Workshop July 28, 2015

Author: Ryan J Adams. Overview. Central Management Server. Security. Advantages

Smooks Dev Tools Reference Guide. Version: GA

Gladinet Cloud Backup V3.0 User Guide

Putting It All Together. Vagrant Drush Version Control

Using RSMACC version control system with AB Industrial programming Controllers and files.

Troubleshooting / FAQ

Version control with GIT

Version Control Systems: SVN and GIT. How do VCS support SW development teams?

Advanced Computing Tools for Applied Research Chapter 4. Version control

General TFS Guidelines V2.1.2

Programming with Android: SDK install and initial setup. Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna

Cleaning Up Your Outlook Mailbox and Keeping It That Way ;-) Mailbox Cleanup. Quicklinks >>

Apptix Online Backup by Mozy

Ingres Backup and Recovery. Bruno Bompar Senior Manager Customer Support

Transferring AIS to a different computer

WORKING IN TEAMS WITH CASECOMPLETE AND MICROSOFT VISUAL SOURCE SAFE. Contents

Integrity 10. Curriculum Guide

Google Holy Family University

Software Configuration Management (SCM)

How to minimize SPAM in your CBPref.com Inbox

Sitecore InDesign Connector 1.1

NASA Workflow Tool. User Guide. September 29, 2010

Miguel A. Figueroa Villanueva Xabriel J. Collazo Mojica

Outlook Today. Microsoft Outlook a different way to look at E. By Microsoft.com

1. History 2. Structure 3. Git Comparison 4. File Storage 5. File Tracking 6. Staging 7. Queues (MQ) 8. Merge Tools 9. Interfaces

IMPLEMENTING DATA.COM CLEAN FOR ACCOUNTS, CONTACTS, AND LEADS

Continuous integration using Rational Team Concert

Document Management User Guide

CS 2112 Lab: Version Control

Lab: Application Lifecycle Management (ALM) Across Heterogeneous Platforms (Java/.NET)

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.

Continuous Integration

Contents Release Notes System Requirements Using Jive for Office

WSDOT ProjectWise V8i Training 101

User Guide Release Management for Visual Studio 2013

Quick Start Articles provide fast answers to frequently asked questions. Quick Start Article

Redundancy Options. Presented By: Chris Williams

How To Run A Hello World On Android (Jdk) On A Microsoft Ds.Io (Windows) Or Android Or Android On A Pc Or Android 4 (

Transcription:

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 source control Stop talking about it and just do it! It's never too simple Flowing changes to anyone

Give all users access to source control Decouple giving your changes to your team from using the SCM system as a tool. Check-in, discard, suspend, history, revert can be used before you make your changes available to others.

Jazz Source Control Mantra Stop talking about it and just do it! Focus on making and collaborating on changes Remove the word branch, but make parallel development just happen Repository workspaces - Provides constant isolation. You don't have to make your changes visible to the team just to backup or use the repository features. Suspend and Resume - Provides task level isolation for personal work. Work Item links - Provides light weight task level isolation for personal of team work. Work on a feature, attach to a work item and discard from your workspace. You or someone else continues the work by accepting the change sets back into their repository workspace. Streams - Provides team or feature isolation. Timelines - Provides process isolation.

Jazz Source Control Mantra It's never too simple Version control from the web

Jazz Source Control Mantra Flowing changes to everyone interconnected change flows

Repository Layout File structure Which file tree level should make as the component root? There isn't a clear rule but some considerations: How do you plan on loading the files on disk? Currently, loading at the component level is easiest to get started. Depends on the IDE being used Eclipse doesn't like files at the root of a component so mapping to sub-folders in the component can make it easier. Visual Studio manages things differently we recommend good articles to help http://jazz.net/library/article/117 Sharing solutions http://jazz.net/library/article/445 Mapping source to components. Component

Repository Layout (cont...) Component structure You can start with one component. Recommendation is no more than 70K file per component (current performance limitation that will be removed in a future release) You can easily move folders between components while retaining version history. Create streams with components that developers can load as-is in most cases

Managing Changes Keeping logical sets of changes together Move changes between change sets Suspend to make sure changes are really isolated when working on tasks that should be isolated or when you aren't delivering all changes together. Don't be afraid of closing change sets at stable points when making large changes. Using patches to merge changes With large changes that take several days, it's possible to collapse a set of closed change sets together

Suspending and Resuming Suspend before accepting when incoming causes conflicts Discarding isn't that scary We don't delete changes and you can always find them The difference between suspend/resume and discard is how active change sets are handled. Discard will close them automatically. You can always search for changes.

Encoding and line endings Defaults are guessed and right in most cases, but... If someone complains that on different platforms they are wrong, it's because the guess wasn't right. It's easy to fix them all up.

Loading Basic Patterns Loading Eclipse Projects Loading from Visual Studio Advanced Load Scenarios Loading Folders Outside of the Eclipse Workspace Loading the Component Root Folder Loading a Folder More Than Once Loading a Single File Loading using the Source Control Command Line Client http://jazz.net/library/article/192 Loading Content from Source Control

Undoing changes You've delivered a change set but it's bad, what are the options? If there is a portion of the change that is bad, just undo it and check-in a new change. If a large portion of the changes are bad, you can select the change set in the History view and run Reverse to create an inverse of the change set. You can then modify, pick and chose, and deliver a new change set. At last resort, you can remove the changes from a stream. You can discard change sets from a repository workspace then replace the component in the stream with the exact contents of the component in your repository workspace. This will remove change sets from history. Don't worry, nothing is lost as a backup baseline is create in the stream that would allow you to go back. Recommendation is to deliver new change sets with reversals, as it makes it easier to track the audit trail and keep changes incoming.

Sharing repository workspaces Think of repository workspaces as backups of your work. Use them to work on a set of changes on two different machines. You'll have to reload as you move between machines re-using the same repository workspace. Re-loading a workspace will only load what is new. You will get a warning at the top of the pending changes view that reminds you to reload

Stream structure guidelines Start simple You don't require a stream per component Add them as needed Add a stream per team who needs some isolation Add a stream per team which needs to collaborate Add a stream as a quality gate (eg, dev to GA) Setup of write permissions at the component level

Merging between streams Try not to deliver baselines between streams. If you do, they will be harmonised but don't provide Always merge everything into the latest so that you can keep track of backported changes. We have en enhancement to allow marking change sets as merged, even when the changes aren't incorporated. Signal that merging occurred in other ways.

Ad-hoc collaboration options Jazz Source Control provides several options for collaborating on change sets, each with it's own pros and cons You have changes that you want someone else to try out Ask them to change their flow target to your repo workspace and accept them. They will have to be closed. Attach them to a work item. You can accept back and forth between repo workspaces or with work items. Work items are good because they track the reason for the changes with the changes and allow a conversation to

Having shared files that shouldn't be checked-in There is a pattern in which files are checkedinto the repository but shouldn't be modified and checked-in by accident. Check in the files and close the change set. Add a.cvsignore to ignore the files from now on, check it in and deliver all the changes. From now on changes to those files will be ignored, so they can't be accidentally checked-in.

Deleting repository workspaces and streams When you delete repository workspaces and streams we don't actually delete the contents. Baseline before you delete so that you can always go back to the components. Streams can't be deleted if they have snapshots associated with them. You can move the snapshots to another stream. Instead of deleting you can also repurpose streams by taking stable streams and replacing their contents with component other

Binary Files Check in considerations No limit on binary file size Binary files are delta compressed and similar content is shared Currently can't delete source controlled content from the repository, is being considered in the future. Build output Output of builds can be stored with the build result Builds when deleted will clean-up their content However, large build results (eg, over 1GB) can affect server performance on upload. Instead, you can keep the large build results on shared storage and keep links in the build result.

Thanks This was just a sneak peak Many great articles and videos at jazz.net http://jazz.net/projects/rational-teamconcert/learnmore/ For an introduction to Jazz Source Control see http://jazz.net/library/presentation/20