1

At 'Project Area' level on RTC under 'Team Configuration' -> 'Operation Behaviour' there are two deliver options :

enter image description here

What is the differnence between the two ? Are they both not delivering to the server ?

blue-sky
  • 51,962
  • 152
  • 427
  • 752

1 Answers1

1

Those are for hooks:

  • executed on the client, that is before the deliver,
  • executed on the server, that is at the reception of the deliver.

It is on the client side, for instance, that I set the hook requiring that a Work Item is associated to a change set before said change set can be delivered (as illustrated in your previous question "Can I associate a change set with a work item after it has been delivered?").
I could check it on the server, but why use network traffic if the deliver is rejected anyway?

More precisely, As mentioned in this thread:

In general, you want all preconditions to run on the server, so the server (including the web server) can ensure those preconditions have been executed.

But there are some preconditions that must be run on the client, namely those that need to look at the local state of the client.
This is illustrated by the list of predefined preconditions.
In particular, most of these preconditions refer to the build/compile state of the workspace (information not available on the server), such as: "prohibit unused imports" and "prohibit workspace errors".

Note that there are three client-side preconditions that do not require client-side information ("require work item approval", "require work item and comments", "descriptive change sets").
These are included for backward compatibility, since they were made available in the first release of RTC, but have since then made available as server-side preconditions as well, so you should always use the server-side form of them.
I've submitted work item 209427 to get these client-side preconditions marked as "deprecated" with a pointer to the server-side preconditions that replace them.

Community
  • 1
  • 1
VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
  • So the only difference is when/where the condition takes place, at the client or server ? Why even differentiate this, should it not always occur at the server, a possible reason is to reduce server load ? – blue-sky Nov 28 '12 at 17:23
  • 1
    @user470184 It is to reduce the network traffic. No need to deliver something if the conditions are not met? And yet, the example I use would be better set on the server. See my edited answer. – VonC Nov 28 '12 at 17:58