Jump to content

SCM Evaluation - Open questions


aw

Recommended Posts

My associates and I are evaluating various SCM software with the intention of replacing our current SCM software (we currently have multiple in use :/), we've looked at a few tools so far, and I'm now evaluating Plastic SCM to see if it ticks any of the boxes the others have missed. Our main points of interest are:

> Task branches (and creating a branch needs to be as quick as possible, no extensive 'boiler plate work')

> Flexible server admin controls (Access control, domain authentication)

> Simple non-intrusive work-flow (a lot of users are used to the CVS and Merc/git way or working - no explicit check out)

> Strong support for branch merging

> Good file history tools, blame tracking, identifying all branches containing a change or a particular set of defective lines of source code.

> Good GUI tools, and equally usable CLI tools

> Bug tracker integration

Now from what I've gleaned so far, PlasticSCM does indeed cover more of these than the other systems we've evaluated, but one usage scenario we've had trouble with during our evaluation is working 'offline', and similarly related 'after the fact' submission of changes, i.e.

> Working from laptop with no internet connection, then checking in those changes when back at the office, preferably doing the check in without checking out files and merging manually.

> Applying a linux .patch file to the workspace without prior checkout of files - the patch could cover a lot of files, doing this as a manual operation would be time consuming

> Editing files without having done 'cm co [file list]' first (the CVS/Mercurial/Git way of working) and just letting the 'submit' sort it out.

Is there any way of doing this process in Plastic SCM? We have tried this in Perforce and it is possible by running a set of commands (p4 diff -se | p4 -x- edit, etc), its pretty slow going out to the server to do a _complete_ tree diff so not ideal - and we'd rather not force too harsh a change on our developers established work-flows unless we have to.

Thanks,

Alex

Link to comment
Share on other sites

Hi Alex,

> Task branches (and creating a branch needs to be as quick as possible' date=' no extensive 'boiler plate work')[/quote']

Sure, this is one of Plastic's strengths, creating a branch doesn't make any "light copy" of files or anything like that. From the user's perspective, just right click on the parent branch, and select "create child branch". That's it.

We support thousands of branches without problem, the whole system was designed around the branch-per-task pattern.

> Flexible server admin controls (Access control' date=' domain authentication)[/quote']

Plastic has a very granular ACL-based permission system and integrates with Active Directory, LDAP or its own user/password database.

> Simple non-intrusive work-flow (a lot of users are used to the CVS and Merc/git way or working - no explicit check out)

Although it's not so evident' date=' Plastic supports working without the needs for checking out the items before editing. You have to go to Preferences, Other options, and un-check "Update and checkin operations set files as read-only". Then, in the pending changes view, just check "find changed" and it'll detect the items that have been changed. This is effectively the same model as used by svn/git.

> Strong support for branch merging

The key to use branch-per-task is actually good merging more than branch creation. Plastic has merge tracking and versions both files and directories, so it's guaranteed that file rename/move/deletion is correctly handled by the merge and that you don't repeat a merge you already made.

In addition to that, 3.0 introduces Xmerge, which is capable of detecting moved code (p.e. as the result of a refactor) and simplifies otherwise complex merges.

> Good file history tools' date=' blame tracking, identifying all branches containing a change or a particular set of defective lines of source code.[/quote']

History, blame and a 3D version tree is there for both files and directories.

> Good GUI tools' date=' and equally usable CLI tools[/quote']

CLI is fully capable and the GUI tools, well, check some screenshots on the website or try for yourself!

> Bug tracker integration

Given the branch-per-task approach' date=' tasks are tied to task branches, and Plastic displays task information by integrating with several systems. You can check the website for more details on the supported systems and specific versions here.

Now from what I've gleaned so far' date=' PlasticSCM does indeed cover more of these than the other systems we've evaluated, but one usage scenario we've had trouble with during our evaluation is working 'offline', and similarly related 'after the fact' submission of changes, i.e.

> Working from laptop with no internet connection, then checking in those changes when back at the office, preferably doing the check in without checking out files and merging manually.[/quote']

This is possible with the 'find changed' approach. You can also, however, install a Plastic server on your laptop (it's very lightweight) and replicate the branches you need to work. Then perform any operations as you'd do if you were connected. When go back to the office, just replicate the branches with your changes to the office server (specially easy if the are task branches).

> Applying a linux .patch file to the workspace without prior checkout of files - the patch could cover a lot of files' date=' doing this as a manual operation would be time consuming

> Editing files without having done 'cm co [file list']' first (the CVS/Mercurial/Git way of working) and just letting the 'submit' sort it out.

Is there any way of doing this process in Plastic SCM? We have tried this in Perforce and it is possible by running a set of commands (p4 diff -se | p4 -x- edit, etc), its pretty slow going out to the server to do a _complete_ tree diff so not ideal - and we'd rather not force too harsh a change on our developers established work-flows unless we have to.

Plastic detects changed files (non-checked out) and allows you to check them in as you'd expect. Just apply the patch and find the changed items. You can check them in directly.

Enjoy!

Link to comment
Share on other sites

> You have to go to Preferences' date=' Other options, and un-check "Update and checkin operations set files as read-only".

How would one achieve this with the command line tools?

[/quote']

CLI rules :) In the client.conf file, find or add the entry:

<SetFilesAsReadOnly>yes</SetFilesAsReadOnly>

replace 'yes' with 'no'.

The client.conf file is located in c:\users\username\appdata\local\plastic on Windows systems or ~/.plastic/ on Linux / Mac.

Cheers,

Dave

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...