It's all about the answers!

Ask a question

Code sharing between developers


Rich Cumbers (2684) | asked Feb 26 '09, 11:02 a.m.
Hi all,

Today my team went live with Jazz SCM, we have been using the project management side of Jazz and have now fully migrated. Things are going well.

This post is more a howto question, I have trawled docs on streams and workspaces and not really found the answer to my question, so here goes.

We have a single team, working on a single Stream, and as default each team member wishing to use the stream has their own workspace. When change sets are to be delivered to the stream, we require that at least one person reviews the work that they want to deliver.

We have two developers within the team that are working on a Story together, and want to share code between each other. The code might not be ready for going into the stream, and therefore the ChangeSet associated with a task is not to be completed yet, but the code is suitable for the other developer to be working on.

I have not found a way to solve the two developers sharing code that is not checked in yet. Some solutions I have looked into are as follows:

1) Create a new stream, and a new team associated with that stream. Change the process so that Code Reviews are NOT required for that stream. The problem here is that then the code is flowed from the newly created Stream to the central stream, the code will not have been reviewed which is not acceptable

2) Developer Frank creates a new files called Manifest.xsd, and associates it with a task as a changeset. Developer Sally goes to the task and accepts the changeset as a patch. This is more acceptable, though it's clunky as changes made by Frank will require manual steps for Sally to be 'up-to-date'.

3) Developer Frank creates a workspace with a target of the central stream. Sally also loads that same workspace. Frank makes a change, and checks in the code. Sally can see that the code has been checked in because it is shown in her Pending Changes tab for the workspace that Frank created, but she cannot load that file into her copy of the workspace, only see that there is a pending change. This is pretty useless as Sally cannot have the file in her local workspace, but she can see that it's a change!

This problem could be viewed as a development practice issue, you could say that Frank should only deliver code that is ready to be shared, but what if the code produced is a rough interface that the other developer will use to start his tasks? Ideally a scenario where Frank and Sally have a shared workspace that files are viewed etc would be great.

Anyone else come across this problema and have a solution or workaround? Am I doing something obviously wrong?

Cheers

Rich

3 answers



permanent link
Jean-Michel Lemieux (2.5k11) | answered Feb 26 '09, 4:00 p.m.
JAZZ DEVELOPER
Hi Rich,

These are all excellent questions. We've used several of the approaches you've mentioned and each has it's pros and cons. There are two practices that may help you out a bit that you haven't mentioned that we use a lot here:

1. We have a team area for "experimental" work. This team area owns our "experimental" streams and has a relaxed process. When a longer term collaboration between 2 developers is needed, then they work from one of these streams, possibly create their own build definitions to ensure they get continuous integration of the new work. When it's ready, the change sets are reviewed and deliver back into the main stream with a more strict process. The process on our main stream doesn't have to change.

2. For shorter collaborations, you can always set your flow target to your friends repository workspace and accept their change sets. The flow is, when the change sets are ready the developer closes them and this means that the other person can accept them. At some point, someone delivers them all to the stream.

We've used both approaches and I'd recommend you select the option based on the duration and complexity of the changes being made. If it's simple, a couple of change sets, then flowing between workspaces/and/or/work items is easy, but otherwise use a new stream. You can also delete the stream when you are done.

Cheers,
Jean-Michel
Jazz Source Control Team

permanent link
Geoffrey Clemm (30.1k33035) | answered Feb 27 '09, 12:58 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Hi Rich,

I've periodically wanted this functionality as well. I've submitted
workitem 72676, asking for a mechanism to deliver change-sets to some
kind of "pending list" on another workspace, for this kind of impromptu
sharing.

Cheers,
Geoff


cumbers wrote:
Hi all,

Today my team went live with Jazz SCM, we have been using the project
management side of Jazz and have now fully migrated. Things are going
well.

This post is more a howto question, I have trawled docs on streams and
workspaces and not really found the answer to my question, so here
goes.

We have a single team, working on a single Stream, and as default each
team member wishing to use the stream has their own workspace. When
change sets are to be delivered to the stream, we require that at
least one person reviews the work that they want to deliver.

We have two developers within the team that are working on a Story
together, and want to share code between each other. The code might
not be ready for going into the stream, and therefore the ChangeSet
associated with a task is not to be completed yet, but the code is
suitable for the other developer to be working on.

I have not found a way to solve the two developers sharing code that
is not checked in yet. Some solutions I have looked into are as
follows:

1) Create a new stream, and a new team associated with that stream.
Change the process so that Code Reviews are NOT required for that
stream. The problem here is that then the code is flowed from the
newly created Stream to the central stream, the code will not have
been reviewed which is not acceptable

2) Developer Frank creates a new files called Manifest.xsd, and
associates it with a task as a changeset. Developer Sally goes to the
task and accepts the changeset as a patch. This is more acceptable,
though it's clunky as changes made by Frank will require manual steps
for Sally to be 'up-to-date'.

3) Developer Frank creates a workspace with a target of the central
stream. Sally also loads that same workspace. Frank makes a change,
and checks in the code. Sally can see that the code has been checked
in because it is shown in her Pending Changes tab for the workspace
that Frank created, but she cannot load that file into her copy of
the workspace, only see that there is a pending change. This is
pretty useless as Sally cannot have the file in her local workspace,
but she can see that it's a change!

This problem could be viewed as a development practice issue, you
could say that Frank should only deliver code that is ready to be
shared, but what if the code produced is a rough interface that the
other developer will use to start his tasks? Ideally a scenario where
Frank and Sally have a shared workspace that files are viewed etc
would be great.

Anyone else come across this problema and have a solution or
workaround? Am I doing something obviously wrong?

Cheers

Rich

permanent link
Rich Cumbers (2684) | answered Feb 27 '09, 3:11 a.m.
Hi Rich,

I've periodically wanted this functionality as well. I've submitted
workitem 72676, asking for a mechanism to deliver change-sets to some
kind of "pending list" on another workspace, for this kind of impromptu
sharing.

Cheers,
Geoff



Thank you for that Geoff, and thank you to Jean-Michel for his answer also.

Cheers

Rich

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.