Jump to content

Search the Community

Showing results for tags 'plastic'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Plastic SCM
    • General
    • Installation and configuration
    • Unity 3D
    • Plastic SCM on Mac
    • Plastic SCM on Linux
    • Gluon
    • Git interop
    • Integrations
    • Community Edition
    • Branching and merging
    • Announcements
  • Plastic SCM 4.0 Beta (Closed)
  • Plastic Cloud
    • General
    • Configuration
  • SemanticMerge
    • General
    • License
    • SCM's configuration
    • Share your experience!
    • External Parsers
  • GitJungle
  • Method History for Subversion

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start





Website URL







Found 14 results

  1. Hi Everyone, In my company, we are on a process to slowly migrate from ClearCase to Plastic SCM. They have devised a lot of methods to work with ClearCase over the years, and I am currently trying to "migrate" a specific procedure from CC to Plastic. What we do in CC: 1- We have a common view, let's call it common_view. It has its config spec set to retrieve the correct version of some files using a specific label. 2- Every user has a bat file on their startup configuration (we are using windows) 3- This batch file: Starts common_view from CC server using cleartool (and maps it to X:\common_view\ ) Copies (overwrites certain files (mostly perl scripts and batch files) from the CC view to a specific location (in AppData folder of the user) I would like to do this with plastic. We have already created a repo & workspace with the necessary files and applied the required label to the correct versions of the files. What I need is to download those files to a specific local path (that can be accessed via a script, on all of the users' computers) using a command line interface (I believe cm is the cleartool of Plastic, so to speak). How can I achieve this? Thank you very much for your help in advance.
  2. Hi, everyone, After I download the latest version of PlasticSCM 7.0 and try to install on machine with .exe package. It failed with the message:" Installer initialization failed, Installer initialization failed, the installer will now exit". My current OS is Windows Server 2016 standard. Does it lie in the version i downloaded not compatible to OS version? What else softwares supposed to be installed first or environment should be configured before the installation? Could anyone please tell me, what should i do to fix it? Thanks a lot!!!
  3. Han Cui

    Build Bamboo plan with Plastic SCM

    Hi, all When I built Bamboo(version 6.7.1) plan with plastic SCM( At the beginning, everything works fine when first link SCM to Bamboo and build. Then I made new changesets(2) in SCM and tried to rebuild in Bamboo, error appeared "Plan could not be started. Exception: Changes from 2@*@localhost:8087 to its parent couldn't be retrieved: Error: Input String was not in a correct format." Then I add new changesets(3)(which only add a new line in text file, which should not affect the build progress) in SCM and rebuild, the same issue appears. The error log is below(the changeset number is not consistent, but it does not matter cause the same issue): Could anyone please to tell me, what should I do to solve this? Thanks System Error Details Build he2llo - he2llo_plan 3 : Errors getting changes for HE2-HE2PLAN-3 (com.atlassian.bamboo.repository.RepositoryException : Changes from cs:8@secondrepo@localhost:8087 to its parent couldn't be retrieved: Error: Input string was not in a correct format. ) Occurred: 27 Dec 2018, 10:47:08 AM com.atlassian.bamboo.repository.RepositoryException: Changes from cs:8@secondrepo@localhost:8087 to its parent couldn't be retrieved: Error: Input string was not in a correct format. at com.codicesoftware.plugins.bamboo40.changesproviders.PlasticBaseProvider.getChanges(PlasticBaseProvider.java:115) at com.codicesoftware.plugins.bamboo40.changesproviders.PlasticBaseProvider.getFiles(PlasticBaseProvider.java:80) at com.codicesoftware.plugins.bamboo40.changesproviders.PlasticBaseProvider.buildCommit(PlasticBaseProvider.java:70) at com.codicesoftware.plugins.bamboo40.changesproviders.PlasticBaseProvider.buildCommitList(PlasticBaseProvider.java:56) at com.codicesoftware.plugins.bamboo40.changesproviders.PlasticContinuousIntegrationMode.getChangesSinceLastBuilt(PlasticContinuousIntegrationMode.java:54) at com.codicesoftware.plugins.bamboo40.PlasticRepository.collectChangesSinceLastBuild(PlasticRepository.java:188) at com.atlassian.bamboo.vcs.configuration.legacy.LegacyChangeDetector.collectChangesSinceRevision(LegacyChangeDetector.java:54) at com.atlassian.bamboo.v2.trigger.DefaultChangeDetectionManager.collectionChangesWithRetry(DefaultChangeDetectionManager.java:580) at com.atlassian.bamboo.v2.trigger.DefaultChangeDetectionManager.lambda$createBuildRepositoryChanges$2(DefaultChangeDetectionManager.java:479) at com.atlassian.bamboo.variable.CustomVariableContextImpl.withVariableSubstitutor(CustomVariableContextImpl.java:185) at com.atlassian.bamboo.v2.trigger.DefaultChangeDetectionManager.collectChangesSinceLastBuildInternal(DefaultChangeDetectionManager.java:440) at com.atlassian.bamboo.v2.trigger.DefaultChangeDetectionManager.collectChangesSinceRevisions(DefaultChangeDetectionManager.java:290) at com.atlassian.bamboo.v2.trigger.DefaultChangeDetectionManager.collectChangesSinceRevisions(DefaultChangeDetectionManager.java:223) at com.atlassian.bamboo.v2.trigger.DefaultChangeDetectionManager.collectAllChangesSinceLastBuild(DefaultChangeDetectionManager.java:167) at com.atlassian.bamboo.v2.trigger.DefaultChangeDetectionManager.collectAllChangesSinceLastBuild(DefaultChangeDetectionManager.java:193) at com.atlassian.bamboo.v2.trigger.ManualBuildDetectionAction.performDelayedChangeDetection(ManualBuildDetectionAction.java:154) at com.atlassian.bamboo.chains.ChainExecutionManagerImpl$1.getChainState(ChainExecutionManagerImpl.java:240) at com.atlassian.bamboo.chains.ChainExecutionManagerImpl.tryStartChainState(ChainExecutionManagerImpl.java:315) at com.atlassian.bamboo.chains.ChainExecutionManagerImpl.delayedStart(ChainExecutionManagerImpl.java:232) at sun.reflect.GeneratedMethodAccessor1639.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:197) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) at com.sun.proxy.$Proxy227.delayedStart(Unknown Source) at sun.reflect.GeneratedMethodAccessor1639.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:206) at com.sun.proxy.$Proxy227.delayedStart(Unknown Source) at com.atlassian.bamboo.plan.PlanExecutionManagerImpl$1$1$1.lambda$call$0(PlanExecutionManagerImpl.java:374) at com.atlassian.bamboo.util.CacheAwareness$3.call(CacheAwareness.java:136) at com.atlassian.bamboo.util.CacheAwareness$3.call(CacheAwareness.java:133) at com.atlassian.bamboo.util.CacheAwareness.withValuesOlderThanTimestampReloaded(CacheAwareness.java:162) at com.atlassian.bamboo.util.CacheAwareness.withValuesOlderThanTimestampReloaded(CacheAwareness.java:133) at com.atlassian.bamboo.util.CacheAwareness.withValuesOlderThanTimestampReloaded(CacheAwareness.java:187) at com.atlassian.bamboo.plan.PlanExecutionManagerImpl$1$1$1.call(PlanExecutionManagerImpl.java:373) at com.atlassian.bamboo.plan.PlanExecutionManagerImpl$1$1$1.call(PlanExecutionManagerImpl.java:366) at io.atlassian.util.concurrent.ManagedLocks$ManagedLockImpl.withLock(ManagedLocks.java:293) at com.atlassian.bamboo.plan.PlanExecutionLockServiceImpl.lock(PlanExecutionLockServiceImpl.java:75) at com.atlassian.bamboo.plan.PlanExecutionManagerImpl.doWithProcessLock(PlanExecutionManagerImpl.java:655) at com.atlassian.bamboo.plan.PlanExecutionManagerImpl.access$400(PlanExecutionManagerImpl.java:130) at com.atlassian.bamboo.plan.PlanExecutionManagerImpl$1$1.run(PlanExecutionManagerImpl.java:362) at com.atlassian.bamboo.utils.BambooRunnables$1.run(BambooRunnables.java:48) at com.atlassian.bamboo.security.ImpersonationHelper.runWith(ImpersonationHelper.java:26) at com.atlassian.bamboo.security.ImpersonationHelper.runWithSystemAuthority(ImpersonationHelper.java:17) at com.atlassian.bamboo.security.ImpersonationHelper$1.run(ImpersonationHelper.java:41) at java.lang.Thread.run(Thread.java:748)
  4. ThatGuy

    Gluon and Plastic Workspaces Formats

    I was hoping to run plastic and gluon in a mixed environment. Where users would use gluon for day to day needs and then use plastic when extra functionality was needed. But the two applications use different workspace formats. This makes it less seamless to switch between one and the other. Is using a common workspace format something that is in the roadmap?
  5. Has anyone tried to use Unity's YAML merge tool with older Unity projects? 4.72 specifically. I don't see it in the Unity folder in Unity 4.72, but I could direct it to the Unity 2017 folder.
  6. Marcos Ribatto Crespo

    Changing the plastic.exe.config file

    Hi guys! I have come across the "The path is too long" error in plastic. My art team is using super long paths for their stuff, and when i googled about this error, plastic has a simple solution for Windows 10 users that after changing the registry options, or Group settings, the plastic.exe.config should be edited with the following line: <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false;Switch.System.IO.BlockLongPaths=false" /> When i try to edit this file with the line and save the file, after being opened with either visual studio or notepad, it says i have not enought permisions to save this, and there is no "open as administrator" when i right click the file. We are using the Plastic GUI, but this problem persists for both gui config file and cm config file. Thanks in advance! UPDATE: This was already solved by editing the users windows permisions
  7. Hi, I'm trying to install older version of plastic 5.0.44.X (freshly downloaded from https://www.plasticscm.com/download/ -> Mac OSX -> Server installer) on macOs Sierra 10.12.3. I got a few errors about creating dynamic links during installation but it was only dynamic links. However when I'm trying to run the client I'm getting error: Error running /Applications/PlasticSCM/client/plastic --configure /Applications/PlasticSCM/config/mono_setup: line 12: xmodmap command not found same with line 14 16 18 and later on some unhandled expceptions How can I install plastic on my mac? I managed to install the newest version before, but my server runs on 5.0.44 and I got an error that version is incompatible. EDIT: /Applications/PlasticSCM/config/mono_setup: line 12: xmodmap: command not found /Applications/PlasticSCM/config/mono_setup: line 14: xmodmap: command not found /Applications/PlasticSCM/config/mono_setup: line 16: xmodmap: command not found /Applications/PlasticSCM/config/mono_setup: line 18: xmodmap: command not found Unhandled Exception: System.TypeInitializationException: An exception was thrown by the type initializer for System.Windows.Forms.WindowsFormsSynchronizationContext ---> System.TypeInitializationException: An exception was thrown by the type initializer for System.Windows.Forms.ThemeEngine ---> System.TypeInitializationException: An exception was thrown by the type initializer for System.Windows.Forms.ThemeWin32Classic ---> System.TypeInitializationException: An exception was thrown by the type initializer for System.Drawing.KnownColors ---> System.TypeInitializationException: An exception was thrown by the type initializer for System.Drawing.GDIPlus ---> System.DllNotFoundException: /Applications/PlasticSCM/mono/Versions/2.6.4/lib/libgdiplus.dylib at (wrapper managed-to-native) System.Drawing.GDIPlus:GdiplusStartup (ulong&,System.Drawing.GdiplusStartupInput&,System.Drawing.GdiplusStartupOutput&) at System.Drawing.GDIPlus..cctor () [0x00000] in <filename unknown>:0 --- End of inner exception stack trace --- at System.Drawing.Graphics.FromHdcInternal (IntPtr hdc) [0x00000] in <filename unknown>:0 at System.Windows.Forms.XplatUIX11.Finalize () [0x00000] in <filename unknown>:0 --- End of inner exception stack trace --- at System.Drawing.Color.get_Black () [0x00000] in <filename unknown>:0 at System.Windows.Forms.ThemeWin32Classic..cctor () [0x00000] in <filename unknown>:0 --- End of inner exception stack trace --- at System.Windows.Forms.ThemeVisualStyles..ctor () [0x00000] in <filename unknown>:0 at System.Windows.Forms.ThemeEngine..cctor () [0x00000] in <filename unknown>:0 --- End of inner exception stack trace --- at System.Windows.Forms.SystemInformation.get_MenuAccessKeysUnderlined () [0x00000] in <filename unknown>:0 at System.Windows.Forms.Control..ctor () [0x00000] in <filename unknown>:0 at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:.ctor () at System.Windows.Forms.WindowsFormsSynchronizationContext..cctor () [0x00000] in <filename unknown>:0 --- End of inner exception stack trace --- at System.Windows.Forms.Control..ctor () [0x00000] in <filename unknown>:0 at System.Windows.Forms.ScrollableControl..ctor () [0x00000] in <filename unknown>:0 at System.Windows.Forms.ContainerControl..ctor () [0x00000] in <filename unknown>:0 at System.Windows.Forms.Form..ctor () [0x00000] in <filename unknown>:0 at System.Windows.Forms.MessageBox+MessageBoxForm..ctor (IWin32Window owner, System.String text, System.String caption, MessageBoxButtons buttons, MessageBoxIcon icon, Boolean displayHelpButton) [0x00000] in <filename unknown>:0 at System.Windows.Forms.MessageBox+MessageBoxForm..ctor (IWin32Window owner, System.String text, System.String caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options, Boolean displayHelpButton) [0x00000] in <filename unknown>:0 at (wrapper remoting-invoke-with-check) System.Windows.Forms.MessageBox/MessageBoxForm:.ctor (System.Windows.Forms.IWin32Window,string,string,System.Windows.Forms.MessageBoxButtons,System.Windows.Forms.MessageBoxIcon,System.Windows.Forms.MessageBoxDefaultButton,System.Windows.Forms.MessageBoxOptions,bool) at System.Windows.Forms.MessageBox.Show (IWin32Window owner, System.String text, System.String caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton) [0x00000] in <filename unknown>:0 at Codice.I3.I3MessageBox.Show (IWin32Window window, System.String text, System.String caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton) [0x00000] in <filename unknown>:0 at Codice.I3.I3MessageBox.Show (System.String text, System.String caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton) [0x00000] in <filename unknown>:0 at ce.a (System.String A_0, System.String A_1, MessageBoxIcon A_2, IWin32Window A_3) [0x00000] in <filename unknown>:0 at ce.a (System.String A_0, System.String A_1, MessageBoxIcon A_2, ISynchronizeInvoke A_3, IWin32Window A_4) [0x00000] in <filename unknown>:0 at ce.a (System.String A_0, MessageBoxIcon A_1, ISynchronizeInvoke A_2, IWin32Window A_3) [0x00000] in <filename unknown>:0 at ce.a (System.String A_0, System.Exception A_1, MessageBoxIcon A_2, ISynchronizeInvoke A_3, IWin32Window A_4) [0x00000] in <filename unknown>:0 at ce.a (System.String A_0, System.Exception A_1, MessageBoxIcon A_2) [0x00000] in <filename unknown>:0 at ce.b (System.Exception A_0) [0x00000] in <filename unknown>:0 at xk.a (System.String[] A_0) [0x00000] in <filename unknown>:0
  8. Hi, I'm hoping I can receive some fairly urgent help with this one. I'm having problems syncing to my git repository (where I have paying customers waiting for updates). When I tried to sync this afternoon I received the following error "An error occurred processing your request" but no other information as to what that error might be. I can sync up other plastic repositories to their git equivalents ok. I've taken a look at the plastic log and the only thing that look suspicious is the last line which reads: 2016-06-06 17:41:09,850 (null) NT AUTHORITY\SYSTEM at (null) INFO Channel - Connection 2 from closed I've attached the full log for you to take a look at though. Let me know if you need anything else from me. Thanks, Tom plastic.server.log.txt
  9. sanyavb

    Plastic as a Git server

    Hi all! I saw next video But plasticd don't knows githttp command... Why? if there is documentation? I have not found(((
  10. hunteke

    Use of Plastic without network?

    Hi Plastic Community, I'm new to PlasticSCM, but well-versed in other DVCS tools (e.g., Git, Mercurial, Bazaar). One of the features I really like in those tools is an ability -- indeed an active choice -- to ignore the network unless absolutely necessary. From simple actions, like making a commit and creating a branch, to slightly more esoteric actions like viewing the log or generating arbitrary patches, the DVCS tools to which I'm accustomed do not require network access unless actively sharing code (pushing or pulling). This has huge benefits in terms of speed, but more importantly, allows me to work when, for whatever reason (vacation, coffee shop, restricted ports network), I do not have network access. Does PlasticSCM have this ability? Is it a configuration issue, or perhaps some version of caching I need to implement? Currently, I'm noting that these behaviors seem to require access to our main server (I presume to check the license). Since we currently have a server issue, this is preventing me from making timely commits, and I'd like to work around my administrator's apparent time constraints. Thanks, Kevin
  11. Hello, Is it possible to run Plastic SCM 4 and 5 parallel on one system???
  12. Out of curiosity... I would like to know if its possible to "hook-up" PlasticSCM to use TFS Issue Tracking (PBI's/User Stories) within Plastic? We are a company that was recently acquired and we have a small team of developers (4-5) using the community edition of PlasticSCM. Its been great for our small team and we are pretty reluctant to move away from it. However, the new company uses TFS with a religious use of SCRUM. I dont think they will consider moving away from TFS in favor of PlasticSCM anytime soon, but I would like to attempt to keep our small team using PlasticSCM while our migration / integration happens. So my question is, is it possible to use TFS user stories / product backlog items within PlasticSCM's Issue Tracking ability? Thanks
  13. Hi, all. Where is the PLASTIC SCM REFERENCE GUIDE link? I can find the userguide in the documetation tab. but, I cannot find the referenceguire in the documentation tab. In user guide. (pp.83, see the PLASTIC SCM REFERENCE GUIDE.)... but, I can't find the docs. Help me, please. Thankyou. Wonho Seo.
  14. Hi, This text aims to share my experiences with Plastic so far. They might be useful to the developers and managers at Codice Software who wish to improve Plastic and make it more usable, opening it up to a broader audience. As these 'experiences' seemed to pile up recently, I feel the urge to share them with others, maybe I learn what I did wrong on my side, maybe everything is fixed in Plastic 4. The following text refers to Plastic 3, version 4 doesn't yet work for us. Why Plastic ? The reason we tried to develop using Plastic 3 in the first place was our need to go with the time and get rid of our SVN based repository. We wanted an SCM which allows easy branching and merging. For our purpose, a centralized system is fine, and Plastic does model that natively with its explicit client and server. A decentralized or offline workflow would be nice, but its not required for us by any means. Of course plastic can do replication, yet I always found it too complicated to use so I decided not to get into it. The head of our development team put huge emphasis on a usable graphical user interface, which might boil down to the branch explorer which seemed to have sold plastic to him. He likes GUIs, and for that particular purpose I admit I do like GUIs as well. Other things which seemed nice are the integrated review system and the graphical and built-in merge capabilities. What actually sold me were some blog posts which showed that you guys have a thorough understanding of destributed SCMs. These guys probably knew how to do it, I thought, so I felt comfortable with endorsing Plastic to him with just a few words. When I did that, I didn't really think that we, and I, would ever end up using it, I was seriously surprised. In the first days when I had to use Plastic, I thought there was a certain irony to it, considering I disliked every piece of it, yet I was the one who laid the foundation for its use in the first place. That suffering was self-made, at least I could only blame myself. The Good Things Good things come into my mind easily when comparing Plastic with Subversion, or when comparing the GUI of Plastic 4 with pretty much anything else out there which is not github. Checkouts are very fast (compared to subversion). Branches are easily and quickly created and actually usable (compared to subversion). merging branches back and forth is working well (compared to subversion). The GUI has the potential to considerably lower the learning curve. Things which might need improvement All the things following are an issue with Plastic 3. Some may have already been fixed in Plastic 4. The issues are sorted so that the most annoying are listed first. branch explorer is about 5 minutes behind If you create a branch for instance, you will not see this branch in the branch explorer. Instead, you have to go to the 'Branches' list, search the branch you just created within the 100 ones already there, and switch to it. All this of course is only necessary because there seems to be no way to say "create branch ... and switch to newly created branch". The first time I ran into this I created a new branch and thought something was wrong as I didn't see it show up there. One of my first operations already caused plenty of confusion. GUIs are only production-ready on windows and instable on OSX and Linux Probably due to mono, the open source multi-platform .NET implementation, the GUI on OSX and Linux tends to be very instable. They can crash at any time when handling user input, which gets worse due to the fact that it actually freezes. The freeze is due to gdb which seems to be started automatically, which holds the program in limbo. The only way to get rid of it is to explicitly kill the process. As I work on linux, the shell which starts plastic usually contains a line like "pkill -f -9 plastic && plastic" to forcefully restart it. If I would rip a single hair out each time it crashes, I would be bald. On the other hand, it never crashed on me or anybody else in the team on windows. Once again, I believe this is caused by Mono, as I know another tool with quite the same issues. Relying on .NET for a platform independent GUI driven tool seems to be a bad idea. Just a minute ago I had to swtich between four workspaces in order to create a label, and it crashed three times in the course of this. merges are slow Doing a trivial merge takes a long, long time, and I doubt that it is faster than svn would do it. This burns a lot of my time as I merge quite often. Of course I wouldn't expect it to be anywhere near the performance of git or mercurial as the operation goes through the network. However, its slow even if the server is running locally. You cannot create a new branch AND switch to it right away For some reason, the dialog to create a new branch does not have a checkbox to simply switch to the branch that was just created. Instead, you will have to go to the cluttered 'branches' view and find the newly created one, or wait 5 minutes until the branch explorer shows it to you. branches can never be deleted If there is at least one changeset in a branch, you are not allowed to delete it any more. It seems like a bad joke that you are teased with a 'delete' entry in the branch's context menu, even though the operation will never succeed. Even new branches which have no actual changeset cannot be deleted, as each branch in plastic must have a changeset in order to exist. This 'default' changeset is enough to prevent the delete operation to succeed. This leads straight to the next issue. branches are piling up As branches cannot be deleted, their number will grow continuously, especially if you use feature and hotfix branches. This clutters up the 'branches' view, which is unfortunately needed to switch to newly created branches as the branch explorer display is delayed by a few minutes. rename a branch which you are 'switched to' Its very easy to rename a branch. Its so easy that one might be inclined to think it is a very safe operation which cannot do any harm. However, this is not the case as your workspace is in an invalid state once the branch you are currently on is renamed, either by yourself or by someone else. The next time you want to make a commit, you will see it fail as your workspace still tries to work with a branch of the old name. Plastic fails to update your 'selector' to the changed name, but even if it would do it, everyone else using the renamed branch would still suffer from that problem. by default, the branch explorer doesn't visually indicate which changeset/branch is checked out By default, the only spot where you can see on which branch you are is the top-right of the gui, which is standard and rather small text. The only way to get a visual indication of the checked out branch is to add a 'conditional format' rule explicitly. If one wants to see changeset that the working tree was checked out at, you are out of luck. This would be useful in case you want to see if your branch was advanced in the meanwhile. default preferences check out everything read-only If one doesn't change the preferences, the working tree will be read-only in its entirety. Its quite unexpected mainly because one is inclined to believe that locking/checkouts are not necessary if people are working on their own branches anyway. For people who want to more fluently adjust their code and who don't want to bump their head on each file they want to change, this default setting is very annoying, initially. default preferences enforce a check-in if files are added The first time a new plastic user adds a file to the repository, which of course might be one of many more to come, plastic will show a generically looking dialog which prompts for a commit message. There is absolutely no relation to the add operation the user just performed, leaving him with three question marks above his head. Users who just hit enter because they have no clue will create partial changeset which would not be usable by anyone checking it out, until they are finished adding-and-committing the remaining files. The default setting facilitates changesets which are not usable. checkin/checkout (i.e. file locking) is slow When merging branches, there are easily dozens of files involved, even though they don't actually change relative to the two branches. This causes them to be checked out after the slow merge. When committing the files, plastic detects that there is no change, and allows to automatically undo the check-out of all of these items. This takes a while as each file will be handled individually, instead of all together. cannot delete empty directory in the same changeset if you moved its content away The way plastic works, it is unable to move all files out of a (now) empty directory, and delete that directory in the same changeset. This forces you to split the operation up into two changesets, which makes the operation non-atomic. self merges Assuming two workspaces A and B which are on the same branch and which edit the same file so that a manual merge is required. Branch B commits first, branch A comes in second. Plastic will detect that that working tree of the workspace is out of date and requires a merge with the latest version from the server, right in your changed working tree which is not yet committed ! Once the merge is done, you may commit. Soon after you will notice a merge-destination arrow pointing from your newly created changeset onto itself, a self-merge. If you export this repository using the "cm fast-export ... ", the exported stream will be be invalid as self-merges are not supported by any importer, not even by Plastic 4 itself. Fortunately, one is able to fix the fast export files manually. Another issue is that the merge is done prior to your commit. If you happen to accidentally destroy your file, the changes are gone for good as you didn't yet commit them. Smaller Issues Edit Conflict Dialog: doesn't start at conflict, but at first possibly automatic merge. This is confusing and causes people to edit merges which could already be resolved. Edit Conflict Dialog: When editing a conflict, by default it adds the merge base as well, which makes only sense if you don't want to use either the left or the right side of the 3-way merge. This is the exception though. Edit Conflict Dialog: merge: if you have a file in two branches A and B and set the first line of file in A to "hello" and the first line of file in B to "world", make a commit in both and merge one into another, the Edit Conflict Dialog will display both lines underneath each other in separate lines if A and B are selected. Once the merge is done, you will find "helloworld" in one line, as it didn't add the newline that it previously showed in its merge result pane. Merge Dialog: requires more clicks than necessary when I want to "Merge All" as I have to confirm this choice in another popup. It can take a long time to search the merges. Merge Dialog and Edit Conflict Dialog: full branch names and file paths hard to read and too verbose, e.g. br:/main/some/feature@rep:reponame@reposerver:server:port . Create Branch Dialog: branch base selection is not saved, and always wrong in my case. Preferences Window is not resizable which forces me to scroll through the tabs. All these issues I gathered during one day of work with plastic - most of the most annoying ones are hard to overlook, the other ones become over obvious if you stop a moment and think about it. By now, even the greatest plastic advocate in our team as trouble backing Plastic SCMs performance, some find Plastic an impediment for their work. Under normal circumstances, I might not care that much, but maybe I feel betrayed by all the nice advertisements and blog posts which made Plastic something that it simply is not: A good and usable SCM. I expected too much, which probably is why I am so disappointed. Sebastian