Jump to content


  • Content count

  • Joined

  • Last visited

  • Days Won


psantosl last won the day on April 20

psantosl had the most liked content!

Community Reputation

33 Excellent

About psantosl

  • Rank
    CTO - Plastic SCM

Contact Methods

  • Website URL

Profile Information

  • Gender
  • Interests
    plastic plastic plastic...

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hi, We recently released a few changes on the locking strategy, and yours sounds quite related. Can you double check you are on the latest release? (or very close to) Thanks, pablo
  2. psantosl

    GitSync and trial license

    Hi Travis, GUI support is Windows-only at this point, since most Linux users are hard-core CLI-only folks. You must use cm sync instead, I'm afraid :-S pablo
  3. Hi Travis, Short answer: you are good with Jet. It is the fastest. Long answer: * For years we developed SQL-based backends. We developed a SQL Server layer, MySQL, SQL Server CE, Firebird, Firebird Embedded (was the default for years), SQLite (quite good performance in almost every scenario except heavy load), even Postgres (never optimized it) and Oracle (the connector we used was super bad and we ended up removing support for it, although the code is still there). Why we did this? Well, when we started coding Plastic back in 2005 we didn't think like reinventing the wheel. We were busy enough coding merge algorithms, GUIs, merge tools, diff tools and so on. And working on storage too was like too much. We performed tests, tweaked things here and there, and decided a stable database layer was going to be the way to go, building on top of rock solid software. Also, it was hard enough to convince companies they could trust a new version control player, so telling them their data was safe on a standard SQL storage seemed like a good idea. * We never stopped optimizing database code. Things like bulk inserts in SQL Server, the equivalent on SQLite, better use of transactions, grouping inserts, temporary tables when doing many lookups... you know, everything we knew how to do or we learned in the way, we applied it. * Years later we denormalized some data in the database. We stopped storing "trees" (directory structures) in tables as such but as blobs, like regular data. Doing 100k inserts to do a checkin of 100k files wasn't fast enough. Blobs were much better. * Plastic was super fast already and we were able to consistently beat most version control competitors, specially under heavy load. * But at one point we started thinking: hey, how long does it take to save 500k revisions to disk? Nothing. If you serialize the data correctly it takes nothing. And it was nothing compared to several seconds in a database. And what about reading? If we read using "pointers" (we do C#, but we use pointer-based code for this) we achieved super fast speeds. I mean, nothing new under the sun, of course reading/writing to disk is faster than doing the same on a database. But the database is reliable, rock solid, transaction aware, generic for all kinds of data... * Finally some of our biggest customers in games had huge repos with 5-8TB in size, hosted in MySQL, and it started to say "enough". Some small issues here and there in MySQL, random slow downs. * So we said: ok, we have been around for 11+ years, we covered the basics, we developed a bunch of tools, it is not 2005 anymore, we are not starting... let's go for our own ad-hoc storage. And we did it. And those 5-8TB repos were now handled like nothing. Literally nothing. * Then we started moving all our major customers to Jet. Some of them have +1000 users on Plastic/Jet. They are much happier than when they used SQL Server. Easier admin, much faster performance, much faster backups. * So we decided to make Jet the default. So, did we discontinue SQL-based backends? No. We'll we do it in the future? Likely. Reducing the code base is always good, and focusing our performance efforts on Jet is better than trying to make 7 different database backends faster. Ok, hope I answered your question 😉 pablo
  4. psantosl

    making sure artists checkout files

    Hi! Yes, you can configure plastic to set all files as readonly on your working copy (they can always override that, but it helps). How: Or: configure writable.conf or readonly.conf: https://www.plasticscm.com/documentation/gui/plastic-scm-version-control-gui-guide.shtml#TheOtherOptionsTab pablo
  5. psantosl

    checkout/locking in cloud not working

    Hi, You can download (update in Plastic terms, checkout in git terms) your repo in as many workspaces as you want. What do you mean by seeing the checkout on a different machine?
  6. psantosl

    Visual Studio Team Services integration

    We don't have support for GitServer on Cloud yet, I'm afraid. What do you exactly need? Issue trackers? What?
  7. psantosl

    How to verify workspace integrity?

    Hi, There is an update option to force checking hashes. Plastic trusts the modification bit as a way to know the file wasn't changed. Otherwise update would be super slow (if it had to hash everything all the time). So, in the event someone played with the timestamps manually, he could break the workspace. By default Plastic doesn't set repo timestamps on disk, but time when they were downloaded. This is because build systems expect it this way. To force the update, you can try: cm update . --forced pablo
  8. psantosl

    Server Errors Log ERROR Channel

    We'll double check, but it can be simply a log issue, I believe.
  9. psantosl

    Server Errors Log ERROR Channel

    Hi @SilverKnight If I'm not mistaken, the new plasticprotocol started being default in 6.0. Now, the old remoting protocol is only the default if your clients are too old, or if they have a plasticpipeprotocol.conf file, which I doubt. Check the debug log to see more info of these errors, let's see if we find out what is going on. pablo
  10. psantosl

    cm find ordering or sort?

    Hi, But if you look here you'll see a few examples of how to post-process the query results with sort or powershell 🙂 https://www.plasticscm.com/documentation/cmfind/plastic-scm-version-control-query-system-guide.shtml#Branchesnotfullyintegrated
  11. @Borja Any idea why this can be happening?
  12. psantosl

    The new tree cannot be built

    Hi, Let's try to focus on the initial issue, since I'm sure Office is not related. You can send the log of your server. pablo
  13. psantosl

    The new tree cannot be built

    Hi Reiner, We are going to need the stack trace in order to debug this. I talked to the team and we don't have a clue of what can be going on. Thanks! pablo
  14. psantosl

    The new tree cannot be built

    Hi Reiner, We're going to look into it. pablo
  15. Hi, Yes, as manu explained, we can't actually decrypt your data. Your data leaves your server encrypted, is stored encrypted in the cloud, and is only decrypted when it returns to your server. In case you DO have the cryptedservers.conf file and the .key files in one of the machines locally, we can help you recovering the password in plain text, but this password is never in our Cloud server. Hope it helps, pablo