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

51
1 Copyright © Serena Software 2015 Federal User Group Track 1 Overview and Demonstration of New Features in Dimensions CM 14.2 Felix Dowuona April 6th, 2016

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

Page 1: 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

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

2

Agenda

Developer Usability

Stream Merging

Changesets and Stream Versions

Dimensions CM Bridge

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

3

15 minute break at 10:30am

Schedule

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

4

Agenda

Developer Usability

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

5

• Personal Streams

• DEMO

• Shelving

• DEMO

• Stream organization

• - Hiding streams

• - Favorites

• - Recent streams

• DEMO

Developer Usability

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

6

• Personal streams

• Sandbox to isolate work from others

• Can be merged into a stream when ready

Developer Usability

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

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

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

8

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

9

• Shelving

• Enables developer to quickly switch context

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

Developer Usability

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

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

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

11

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

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…

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

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

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

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

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

15

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

16

Agenda

Stream Merging

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

17

Stream Merging

• Cherry pick merge

• 3-way Merge Overview

• Key Benefits

• Behavior changes & dropped functionality

• Limitations, hints & troubleshooting

1

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

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

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

19

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

20

Stream0

Dim_CM

Why 3-way merge?

2

StreamA

Dim_CM

StreamB

Dimensions

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

21

SERENA 21

3-way Merge Intro

#0

#0

#1

#1

#2 #3

#2

Changeset #2

changes only

Branch point

Merge point

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

22

SERENA 22

2-way Merge

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

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

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

24

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

25

• 15 min BREAK

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

26

Agenda

Changesets and Stream Versions

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

27

Changesets

• Overview

• Benefits

• Stream & Baseline Creation

• Branch from Stream version

• Operations and Commands

• Lock-free Deliver

• Behavior Changes

• Dropped Functionality

• Limitations

• Troubleshooting2

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

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

Page 29: Overview and Demonstration of Dimensions CM 14.2 (FUG presentation track 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

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

30

Overview – Change Types

• Addition

• Modification

• Move (also stands for renames)

• Deletion

• Import

• Promotion*

• Demotion*

* CLI visibility only (LOG command)

3

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

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

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

32

Stream & Baseline Creation

3

• Copy Reference

• Values IDs

• Minutes Seconds

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

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

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

34

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

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

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

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

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

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

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

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

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

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

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

40

Agenda

Dimensions CM Bridge

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

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

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

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

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

43

Change management via CM Bridge

[QLARIUS_CR_21]

•In square brackets

•Any place in the comment

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

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

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

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

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

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

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

47

Update from Dimensions repository

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

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

48

Update from Dimensions repository:

git svn rebase

Update from Dimensions repository

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

49

To see stream history user log sub commnd:

git svn log -v

Log

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

50

• Remote branches

• Few remote repositories

• Merge

Limitations

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

51

Thank you

www.serena.com