Jump to content

Misc. problems and integration with PowerBuilder


restrict

Recommended Posts

Hi,

I'm trying since two months the software and I think that it is great software. Most of things work very well and it is correctly documented. But, I'm facing two problems using it with PowerBuilder, one thing that is related to PB, and two others that I see the problem even without using PB.

1- From PowerBuilder, if I :

- checkout a file

- modify it

- checkin the file

- do a "Show Difference", it compare the wrong versions ...

It says that left file is from the repository, but revision #7 (and file is at revision #8 if I check the history)

The local file contain the good version and so, PowerBuilder doesn't see that file has changed (which is OK)

2- From anywhere, if I :

- checkout a file from user A

- go on workstation of user B, I don't see the checkout from PB

- from the Plastic SCM UI, I see that user A has checkout on file, but it is "not on workspace"

- both user use same branch (/main, which is the only branch in the repository), both user use the same local workspace path

I've tried a lot of things but nothing seems to work. Documentation doesn't say a lot about "not on workspace" except that it occurs when users do a checkout in a different branch ... If (from plastic UI) I do an "Exclusive checkout" from user A, user B cannot checkout it, so it also says it really use the same branch.

You can see the attached file to see the "problem" (or something that I just don't understand)

Problem with this is that I cannot see from PowerBuilder or from the PlasticUI that someone else has checkout the file

3- From anywhere, if : a file is modified from user A, user B doesn't see that is has been modified. The icon stay green, even if I refresh in the Plastic UI. If I do an update, I now see the modification in the files. Problem is present in both PowerBuilder and Plastic UI. Also, I tried to do a "refresh status" from PowerBuilder, without success.

Note that I didn't add the PBL files to PlasticSCM. To start a project I use empty PBL and do a "Get Lastest Version" from PowerBuilder. I use the latest Plastic SCM version (PlasticSCM-3.0.187.26-windows-client-installer) with the same for the server. I use PowerBuilder 11.5.

Do you have any clue about this problems ?

Thanks for you help !

Benoit Provencher

post-299-131480816295_thumb.png

Link to comment
Share on other sites

Hi:

First of all, thanks for your feedback and for using Plastic SCM :-)

Regarding your questions:

1.- I couldn't reproduce this. When showing the differences, the tool shown is the Plastic SCM's Diff Tool, so it works the same way from the GUI and from Power Builder. You can show the differences of a certain item by selecting it in the Items view and pressing Ctrl+D or right clicking on it and selecting Diff->Diff with previous. Please, could you attach the Diff tool of the affected item and the 3D version tree of the same item (from PowerBuilder, right click on the item and select "Show History...")?. Maybe this way we can see the problem.

2.- From Plastic SCM 2.9 on the workspaces are managed locally, so user A cannot see the workspaces of user B; thus, he won't be able to see B's changed items or checked out items from the Items view. You can see the checkouts performed by all users opening the "All checkouts" view, but this view is only informative and it will be removed shortly. There is an alternative: shared workspaces. You can share a workspace between machines by placing it in a shared location.

I would like to know why do you want to see other users' checkouts; this way I could recommend you something more suitable to your case. Nevertheless we encourage you to use a task per branch pattern, task per changeset or even task per developer.

3.- I think this is related to point 2 as you cannot see other user's changes in your branch (until he/she check them in and you update your workspace).

So, to summarize, this is the normal workflow when there are several users working on the same branch, then:

1.- Users check out the files they want to work on or change them manually (these files will appear as changed in the "Pending changes" view.

2.- Once they are done with their work, they'll try to checkin their changes; if there are files that have been modified by other users since the last update they did, a merge will be purposed before checking in the files.

Please, let us know if all of this answers your doubts and don't hesitate to give us more feedback!

Best,

Luis

Link to comment
Share on other sites

Hi,

Thanks to you to give a free version of this great software to small teams ;)

1- Sorry, I was wrong. Doing the screenshots, I realized that the show diff use what is in the workspace (which is in reality, says rev. #1) and compare it to the previous (rev. #0). Just a misundertanding on my side ;)

2- I must admit that I'm not really familiar with the process of the multiple user checkout and merge. In fact, I'm even afraid with this concept. Let me explain :

- User A modify a file, remove a lot of stuff and add a new "do all" functions which is the one to keep !

- While user A is modifying the file, User B modify the same file, but instead of the "do all" functions, optimize the old functions

- User A commit his changes

- User B commit his changes, doesn't realize that user A has done something better and replace things with his own version

Using an exclusive lock and seeing that someone else has the file in checkout, would prevent this... And for now, if I try to checkout a file that is already checked out by someone else, PowerBuidler crash... Also, when working with peoples that would take the time to resolve the "merge" it would be ok... but, I must convince two old programmers to use SCM and if I enter in this type of detail, I'll surely loose them ... In fact, I would like to begin with the most simple setup and gradually "upgrade" to more features available (eg; one branch for now, but split between dev and prod later).

If you convince me that there's no risk of data loss in a merge than, I'll understand why we don't need to see other user checkouts and that files has been modified ... even if I find it strange. Why not let see someone found which files are checkouts / modified in a branch by other people, as it will end with a merge issue anyway ?

I used Visual Source Safe some years ago with PowerBuilder, and each programmers has their own workspace and was able to see other checkouts and modified files. I have some difficulties to understand why Plastic SCM doesn't support it, even if it is task driven, multi-checkout, ... These basic features are usefull even with these new things no ?

While this time, I'll try the shared workspace solution.

Thanks for your answer!

Yours,

Benoit Provencher

Link to comment
Share on other sites

Hi,

I've just tried a shared workspace and it is not appropriate. Even if I'm connected with two different user, I'm able to modify file checked out by others in the workspace (note that it is also more slow as there is more dependencies on the network). We don't want to allow this... as I see that someone has the file in checkout, but I can also modify his data while he's working... loss of data will certainly occurs.

And to correct my previous post, the meaning of "old programmers" was more "don't like change in the environnement" than "old". ;)

Thanks !

Benoit Provencher

Link to comment
Share on other sites

Hi,

- Shared workspaces work for a certain user only; the idea is that a user can access his/her workspace from different machines.

-

as I see that someone has the file in checkout, but I can also modify his data while he's working... loss of data will certainly occurs.

There are two annotations here:

* First, if you want to prevent that several people change the same file you can use the "Checkout exclusive" option (right click on an item and select the option). This way any other user will be able to checkout that file.

* In any case, no loss of data will occur, absolutely. You can test the case manually:

User A and User B have their workspaces up-to-date.

1.- User A checks out a file and do some changes.

2.- User B checks out the same file and do some changes.

3.- User B checks in his changes. Everything works fine.

4.- User A tries to check in his changes. A merge needed dialog will appear.

5.- User A merge his changes with B's. He eventually would have to use mergetool to resolve the conflicts.

6.- Once the conflicts have been resolved, User A tries again to checkin.

7.- All the changes are commited to the repository.

This is a normal "several users working on the same branch" cycle.

Cheers,

Luis

Link to comment
Share on other sites

Hi,

I forget the idea about the shared workspace ;)

I found why my PowerBuilder crashed if I check out on a file that someone else has the file checked out.

SccMaxArraySize=2500

SccUCImport=full outofdate

SccCOImport=full outofdate

SccExtensions=1

SccLogLevel=3

SccMultithread=0

SccCheckoutNoLock=0

Need to put 1 for this option, so multiple user can checkout a file (and even if I would prefer not to use it, we don't have the choice since the status of an object is not reported (outdated or already checked out). Leaving it at 0 did an exclusive lock (what I would like but not pratical). While I'm there, note that I'm not sure that the SccMaxArraySize parameter function because a changeset is created each 25 files even with this value...

Also note (just for your information) that using these import options is really more fast than leaving them to the default values. It seems to work fines.

I tried to modify file on one workstation with one user, and same file on another workstation with another user. It seems to works well, but I need to get more information on the "merge process" to get further at this point, I'll read the documentation about it.

I know that you'll probably doesn't put effort in it, but it would be great to support a "legacy" style of source control, with exclusive lock (supported, but it need to detect when someone else has the file so it doesn't crash) and (network) status of item correctly displayed through SCC (would just add somes icons, solve the previous problem and not use the path (but branch + item) to detect if in workspace or not), per-branch - for SCC only (which contain anyway only simple features). The merge system is great, but complex for basic needs and loss could occurs if we don't care. So, only advanced users would be able / allowed to use it, through the Plastic UI / Windows Explorer.

Thanks for your time and explanation !

Benoit Provencher

Link to comment
Share on other sites

Thanks to you for the information you've provided about Power Builder; I'm pretty sure that some users will find this quite interesting.

The "Checkout exclusive" should be good enought to your deployment, I think.

Finally, we'll try to improve the merge process to do it as intuitive as possible. The upcoming Plastic SCM 4.0 will include more features regarding change control (files added, moved, deleted, changed and so on) and merge. I really hope that you'll enjoy them.

Thanks for all your feedback and enjoy Plastic SCM,

Luis

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...