Overview and Demonstration of Dimensions CM 14.2 (FUG presentation track 2)

Post on 19-Jan-2017

463 views 0 download

Transcript of Overview and Demonstration of Dimensions CM 14.2 (FUG presentation track 2)

1Copyright © Serena Software 2015

Federal User Group Track 1

Overview and Demonstration of New Features in

Dimensions CM 14.2

Felix Dowuona

April 6th, 2016

2

Agenda

Developer Usability

Stream Merging

Changesets and Stream Versions

Dimensions CM Bridge

3

15 minute break at 10:30am

Schedule

4

Agenda

Developer Usability

5

• Personal Streams

• DEMO

• Shelving

• DEMO

• Stream organization

• - Hiding streams

• - Favorites

• - Recent streams

• DEMO

Developer Usability

6

• Personal streams

• Sandbox to isolate work from others

• Can be merged into a stream when ready

Developer Usability

7

• Personal streams are private development branches in a repository that are only visible to the originator.

Personal streams enable you to:

• Isolate work from an existing public stream.

• Work in a dedicated personal stream until your changes are ready to be merged back into a public

stream.

• Create a new stream based on a work area.

Personal Streams

8

9

• Shelving

• Enables developer to quickly switch context

• Shelve an in progress change to be picked up at a later date

Developer Usability

10

• Shelving enables you to store local changes in a personal stream and optionally remove the changes

from a work area.

• Shelve changes and reset a work area

• You can remove changes from a work area that you do not want to deliver to the associated stream. For

example, the changes are not complete but you need to interrupt your current work, set aside the

changes, and switch to a different task using the same work area. After the shelving operation is

complete you reset the work area so that it is identical to the latest repository content.

• Backup changes

• When you are sharing a stream with other developers but are not ready to deliver your local changes,

you can backup your work by committing it to a personal stream. This creates a snapshot of the work

area at that point in time. When creating backups you keep the local changes and do not reset the work

area. When you are ready to resume work on the shelved changes you can restore them by merging the

personal stream back into the work area.

Shelving

11

12

• Hiding streams• Hide streams that are no longer in use, reduces clutter

• Favorites & recent streams• Organize the streams into your favorites

• Makes finding/opening/picking streams easier

Developer Usability…

13

• Example

• HIDE /STREAM=QLARIUS:MAINLINE_JAVA

• Hides a stream with the specification QLARIUS:MAINLINE_JAVA.

• HIDE /PROJECT=QLARIUS:MAINLINE_JAVA

• Hides a project with the specification QLARIUS:MAINLINE_JAVA.

HIDE - Hide Unused Streams and Projects

14

Examples

• SF /STREAM=QLARIUS:MAINLINE_JAVA

Adds the stream QLARIUS:MAINLINE_JAVA to your favorites

• SF /STREAM=QLARIUS:MAINLINE_JAVA /OFF

Removes the stream QLARIUS:MAINLINE_JAVA from your favorites

• SF /USER_WORKSETLIST=C:\my_stream_list.txt

Adds all streams or projects in the specified file to your favorites.

• SF /USER_WORKSETLIST=C:\my_stream_list.txt /OFF

Removes all streams or projects in the specified file from your favorites

SF - Set Favorites

15

16

Agenda

Stream Merging

17

Stream Merging

• Cherry pick merge

• 3-way Merge Overview

• Key Benefits

• Behavior changes & dropped functionality

• Limitations, hints & troubleshooting

1

18

• Cherrypicking Requests

• When you merge changes between streams you can select changes that are related to specific requests.

This is commonly known as cherrypicking or backporting. For example, you have delivered multiple sets

of changes to a stream but only want to merge one specific set of changes into a different stream.

Cherrypick Merge

19

20

Stream0

Dim_CM

Why 3-way merge?

2

StreamA

Dim_CM

StreamB

Dimensions

21

SERENA 21

3-way Merge Intro

#0

#0

#1

#1

#2 #3

#2

Changeset #2

changes only

Branch point

Merge point

22

SERENA 22

2-way Merge

23

Key benefits

SEREN2

• 3-way

• Stream versioning and enhanced pedigree

• Changesets

• Branch & merge points

• Folder refactoring

Great reliability and performance

• Dedicated Merge operation

• Consistent across clients new graphical Merge Wizard

• Streamlined tool-driven merge process

• Araxis Merge tool

• Reduced user input required

User experience

• Merge from a Stream or its older version

• Review results interactively or make it as silent as possible

Flexibility

24

25

• 15 min BREAK

26

Agenda

Changesets and Stream Versions

27

Changesets

• Overview

• Benefits

• Stream & Baseline Creation

• Branch from Stream version

• Operations and Commands

• Lock-free Deliver

• Behavior Changes

• Dropped Functionality

• Limitations

• Troubleshooting2

28

Overview – Changesets and Versions

• Grouping the list of Delivered/Uploaded changes in one operation

• Created automatically

• Immutable – can never change

• No lifecycles or other configuration

• Introduce a stream/project version

• Linked (1:1) to the changeset which introduces the version

• Represents the whole stream/project state (content)

after a changeset is applied

• Changeset changes are linked to Request(s)

• 1…N Changeset(s) 0…N Request(s)

2

29

Overview – Changeset Types

• Creation – always #0 and represent a stream or a project created:

• Empty

• Based on another stream or project

• Or even sometimes its earlier version

• Baseline

• Deliver – any generic changes delivered, uploaded or checked in

• Merge – changes merged from other streams

• Not applicable to projects so far

• Promotion – CLI visibility only (LOG command)

2

30

Overview – Change Types

• Addition

• Modification

• Move (also stands for renames)

• Deletion

• Import

• Promotion*

• Demotion*

* CLI visibility only (LOG command)

3

31

Benefits – Changesets & Versions

Changesets

• Great for identifying and merging differences across streams

– Packaging changes together

– Immutable (reliable)

• Traceability

– Grouping

– One owner, comment, timestamp

• Well understood by users migrating from other systems

• May be used instead of Requests

– More operations in the future

Stream Versions

• Cheap replacement of tip baselines

– Performance

– Space

• Reference at any time

– Create new streams or projects

based on stream version

– Get or Update from Version

– Intensive usage in Merge

• Track stream status/health

– Peer review, build, unit tests,…

• More operations in the future

31

32

Stream & Baseline Creation

3

• Copy Reference

• Values IDs

• Minutes Seconds

33

Operations and commands

• Get a stream version or Update from a stream version (N)

• UPDATE /STREAM=ID;N

• Merge from a stream version (N)

• MERGE /STREAM=ID;N

• Create a stream or a project basing on a stream or a project version

• CS /STREAM=ID;N

• DWS /WORKSET=ID;N

• Changesets dialog

• LOG command

• Changes:

• Compare

• History

• Pedigree

• Open/Browse

3

34

35

Lock-free Deliver

• No stream or folder locking for the whole Deliver operation

(Unlike 2009R2 and 12.2)

• Brisk changeset commit lock

• Changesets in flight conflict check

• Both streams (DELIVER) and projects (UPLOAD)

3

36

Behavior changes

• A stream based on another contains all revisions now

• UPLOAD to projects is atomic now (1 changeset)

• Including Deliver/Upload/Synchronize to Project in GUIs• Still many changesets by pre-14 clients

• AIWS with /WS_FILENAME=new_file_name does rename

3

37

Dropped functionality

• Text metadata (.metadata) used by pre-12.2.1 clients

• Automatically converted on the 1st Update/Get

• UPDATE /NOEXECUTE /VERBOSE mode

• /SCRIPTFILE mode for both DELIVER and UPDATE

• Dropped DM.CFG symbols:

• DM_CONCURRENT_DELIVER_LOCK_MODE (lock-free deliver now)

• DM_USE_OLD_CRB

3

38

Limitations

• Project item operations for multiple selection generate a command per each

selected item and as many changesets

• Upgrade changesets – just for history visualization

• Certain operations may differ from client to client, say:

• Desktop: Open item or request in new window

• Explorer: Browse item or request

• Baseline cannot be created from a stream version, but

• You may create a stream or a project and then a baseline

• Not available in DM utility and ISPF client

• Less functionality for Project Changesets (comparing to Streams)

• No Get, Update and Merge operations from project version

3

39

Troubleshooting

• Performance

• Relies on DB more than before

• Hungrier for memory

• Update Oracle statistics (compute)

• Scalability: pagination, navigation & scrolling

• Changeset filters

• LOG command as alternative to GUI

• Seeing hidden in GUI changesets

• Even for baselines (revising changesets)

• Changeset (Changes) Item Request links & relationships

3

40

Agenda

Dimensions CM Bridge

41

• What is CM Bridge

• Allows clients and IDE’s that integrate with SVN to connect directly to Dimensions CM

• Provides easy way to migrate SVN teams to Dimensions while keeping them in familiar development environments.

• TortoiseSVN Repository Browser

• SVN command line

• Xcode

• IntelliJIDEA

• Xamarin

• etc

CM Bridge and Git SVN

42

• Java-based web application

• CMBridge.WAR

• Deployed to Tomcat by default Dimensions CM installation

• Web interface accessible at http://<localhost>:8080/cmbridge/

• Implements Subversion HTTP v1 protocol

• Converts SVN HTTP requests into Dimensions CM

• No svnserveprotocol support (svn://)

• HTTPS support

• Authentication

• HTTP Basic authentication

• Credentials caching depends on the client

How does it work

43

Change management via CM Bridge

[QLARIUS_CR_21]

•In square brackets

•Any place in the comment

44

• Working with top-level folders as streams or projects

• Repository URL with Product and Stream ID may be used

• Merge across branches (streams)

• Create a branch (child stream) using “svncopy”

• No “copy” support inside a stream or project

• SVN tagging

• Specific SVN commands

• merge, mergeinfo

• switch

• Admin’s commands

• Item header substitution

• Directory items

Limitations

45

• git svn is a simple conduit for changesets between Subversion and Git. It provides a bidirectional flow of changes

between a Subversion and a Git repository

• User can work with git and Dimensions CM using git svn through the CMBridge

• To start working with git and Dimensions CM we need to create stream using any Dimensions client or svn:

svn mkdir http://stl-ta-vcw8-03:8080/cmbridge/PROD1/STREAM1 -m "stream creation“

• Then we need to clone Dimensions stream to local git repository:

git svn clone http://stl-ta-vcw8-03:8080/cmbridge/PROD1/STREAM1 F:/wa1

After this your local repository refers HEAD of remote branch origin/master

• Now we can add files to work area and commit them to local git repository:

git status

git add *

git commit -m "init commit“

Push changes from local git repository to Dimensions repository:

git svn dcommit

Git svn create stream and clone

46

• git recommends to create local branch for each code changes:

git branch somefix1

git branch

• Switch to somefix1 branch:

git checkout somefix1

• Merge changes from local git branch to master:

git merge somefix1

Work with local branch

47

Update from Dimensions repository

git recommends to use rebase when work with git svn to make history linear

48

Update from Dimensions repository:

git svn rebase

Update from Dimensions repository

49

To see stream history user log sub commnd:

git svn log -v

Log

50

• Remote branches

• Few remote repositories

• Merge

Limitations

51

Thank you

www.serena.com