Who we are

We are the developers of Plastic SCM, a full version control stack (not a Git variant). We work on the strongest branching and merging you can find, and a core that doesn't cringe with huge binaries and repos. We also develop the GUIs, mergetools and everything needed to give you the full version control stack.

If you want to give it a try, download it from here.

We also code SemanticMerge, and the gmaster Git client.

Plug-in for Atlassian Bamboo CI Server 4.2 with Plastic SCM

Wednesday, August 29, 2012 Amalia , 0 Comments

Bamboo is a continuous integration (CI) server that can be used to automate the release management for a software application, creating a continuous delivery pipeline. Plastic SCM has implemented a new Bamboo 4.2 plug-in.

A Bamboo plug-in is a single JAR containing code. This new plug-in automatically detects and builds child branches off of the main tracked branch. The child branches (AKA Bamboo plan branches) inherit the main plan configuration to perform the builds.

0 comentarios:

Who we are

We are the developers of Plastic SCM, a full version control stack (not a Git variant). We work on the strongest branching and merging you can find, and a core that doesn't cringe with huge binaries and repos. We also develop the GUIs, mergetools and everything needed to give you the full version control stack.

If you want to give it a try, download it from here.

We also code SemanticMerge, and the gmaster Git client.

Laws of Simplicity

Tuesday, August 28, 2012 Amalia 1 Comments

Lately, we have thinking about how to explain Plastic SCM as an Enterprise DVCS.
The latest article "Plastic SCM - DVCS at Enterprise Level" written by Pablo and published in InfoQ helped me. But I keep on reading, thinking, studying and writing about it. Recently I realized how important these actions are in my life.

How do I explain Plastic SCM in easy way?

I discovered "The Laws of Simplicity" by John Maeda. It was published in 2006.
The book is about his thoughts on simplicity. John Maeda explores how we can redefine the notion of "improved" so that it doesn't mean something added on.
So, why do not try to explain Plastic SCM through The Ten Laws of Simplicity?


Impossibly complex applications are the default deliverable for new programmers. Simplicity isn't achievable as a passive goal; it's a force that must be actively applied.
And Plastic SCM has it

1 comentarios:

Who we are

We are the developers of Plastic SCM, a full version control stack (not a Git variant). We work on the strongest branching and merging you can find, and a core that doesn't cringe with huge binaries and repos. We also develop the GUIs, mergetools and everything needed to give you the full version control stack.

If you want to give it a try, download it from here.

We also code SemanticMerge, and the gmaster Git client.

Context Switching

Tuesday, August 21, 2012 Amalia 0 Comments

Context switching is considered harmful

Context switching is considered harmful. No matter who is talking about it, it is clear that forcing people to change from one task to another is an extra overhead that we all face during development. A human brain is not a CPU. For developers(for humans in general) a Context Switch can be extraordinary hard (and expensive).

Unfortunately, in a a software development environment there are external events that do their best to prevent the developer from maintaining this high concentration level. Changing from one task to another due to a more urgent problem, a client request or an important bug seems to be unavoidable. If you are a programmer working on some code and you are forced to change to something else, how would you proceed?

Researches have found that switching context requires a high level of concentration. It may cost up to 15 minutes until the same level of productivity and concentration compared to before the switching context can be achieved.

I remember a Peopleware's chapter talking about the huge amount of time wasted changing tasks. There are a lot of references about this topic.

For example: Joel Spolsky: "Human task switches considered harmful" or Jeff Atwood:"The multi tasking myth" .

Is there any way to minimize the impact of the context switch?

We are going to focus on how the version control can help handling context switching. Task switching causes you to have to “relearn” where you were before you can begin to be productive again. You suspend the current task and move onto something else. There is waste: you will probably end up copying the files to somewhere else, then preparing your working area for next task.

There are two posibilities:

  1. Branch per task pattern
  2. Shelving, your changes and applying them later

The branch per task pattern

Why does not everyone use this pattern? There is no manual copying, no extra risk, no extra time.

Most of the version control systems out there have big problems dealing with branches. If make a branch is a painful task you will never do it.

If you are a programmer working on some code and you are forced to change to something else, how would you proceed? Normally you would have some files you are working on, and most likely your changes are not yet done. So what would you do with your "in progress" work? You are probably using some sort of version control, but submitting unfinished changes to the server doesn't look like a very good idea.

So, what to do? You will probably end up copying the files to somewhere else, then preparing your working area for the next task.

The figure shows the situation. Even having a source control system, the programmer ends up manually copying files.

It doesn't look very good. Besides, all these changes are outside the version control for a certain period... who knows for how long?

No branch per task pattern


The branch per task pattern is really helpful on task switching: commiting to the branch associated to the current task, then you just move to a new one.

You create a branch each time you have to work on something, whatever it is, for an small change to a task that will last several days. Always having your own branch!

You protect your changes: checking in to the version control system) as many times as you need to. Intermediate changes are saved: all developer's work is stored on the central repository.

Your team can even avoid making backups of the developer's workstations), so no more I guess the right code was at your computer.

And it is really helpful on task switching: you check everything in, commiting to the branch associated to the current task, then you just move to a new one. No manual copying, no extra risk, no extra time. You just use the tool.

Branch per task pattern

Shelve

The purpose of shelving is to save your pending changes when you are not ready to or can not check in a set of pending changes.

Shelving (or stashing) is a group of source file revisions, check-in notes and comments... In a familiar language: shelve the changes in a dirty working directory away

Context switching or interruptions, are one of the scenarios you can use shelve

  1. Interrupt: When you have pending changes that are not ready for check in but you need to work on a different task, you can shelve your pending changes to set them aside.
  2. Share: When you need to share changes with another team member, you can shelve your pending changes and ask your team member to unshelve them.
  3. Review: When you have to code-review, you can shelve your changes and inform the code reviewer of the shelves.
  4. Handoff: When you have work in progress that is to be completed by another team member, you can shelve your changes to make a handoff easier

Context Switching can really damage your bottom line by taking time away from actual progress on the tasks at hand. Use the branch-per-task working pattern and shelving to your advantage and your company's advantage. don't save changes to your own workstation anymore when you need to switch among different tasks. Let your version control system, like Plastic SCM, work for you, not against you.

Enjoy!

0 comentarios:

Who we are

We are the developers of Plastic SCM, a full version control stack (not a Git variant). We work on the strongest branching and merging you can find, and a core that doesn't cringe with huge binaries and repos. We also develop the GUIs, mergetools and everything needed to give you the full version control stack.

If you want to give it a try, download it from here.

We also code SemanticMerge, and the gmaster Git client.

Plastic SCM 4.1.10.335 has been released

Monday, August 20, 2012 Amalia 0 Comments

A new release of the 4.1 version is out: Plastic SCM 4.1.10.335 has been released.

The features of each Plastic SCM release, up to and including the latest version, can be found in the release notes page.

Besides the full release notes, this blogspost will highlght some of them. Just in case you haven't downloaded this version yet you can do that here.

Features

RSS view: Avatars small users

Now, the avatars are stored in the plastic4 local folder instead of the Temp local folder. Also, the image file resource is immediately released after it's loaded in memory. Finally, a better mechanism for non-available images has been implemented.

Bugs

Renames

The locally moved operations could not be applied when a directory was renamed to its old name plus some new characters and it contained other directory inside. Fixed.

Recent items show lots of empty lines

The recent items list might became a mess if it stored more than 5 items because the separators were taken into account as normal items, and when restarting the GUI new separators were introduced every 5 items... Fixed

Enjoy it!!

0 comentarios:

Who we are

We are the developers of Plastic SCM, a full version control stack (not a Git variant). We work on the strongest branching and merging you can find, and a core that doesn't cringe with huge binaries and repos. We also develop the GUIs, mergetools and everything needed to give you the full version control stack.

If you want to give it a try, download it from here.

We also code SemanticMerge, and the gmaster Git client.

Plastic SCM External Release 4.1.10.333

Monday, August 13, 2012 Amalia 0 Comments

A new week, a new release: this time we're announcing 4.1.10.333 (BL333 as we name it internally).

It is a new release of the 4.1 version, including a number of bug fixes.

While you can read the detailed release notes, this blogpost will highlight the most relevant bugfixes.

Remember you can find the latest installer here

Bugs

Fast-import fails because it found duplicated items id

In the fast-export/fast-import process you could read this message: “An element with the same key already exists in the dictionary” while importing to Plastic. An assert has been added to detect if a path is not used and we generated unique names. So fixed it!

Pending changes: Search manually moves

Pending changes view could show a file locked exception when calculating locally moved items and at least a private item was locked by external application. Fixed it!

Wrong conflicts protection when renaming items

Now, the merge process, on a case-insensitive filesystem, supports case-rename operations (when the name is changed only from lower-case to upper-case or vice versa). Great!

Pending changes: Search manually moves over locked file

Pending changes view could show a file locked exception when calculating locally moved items, and at least a private item was locked by an external application. Fixed!

Enjoy it!

0 comentarios:

Who we are

We are the developers of Plastic SCM, a full version control stack (not a Git variant). We work on the strongest branching and merging you can find, and a core that doesn't cringe with huge binaries and repos. We also develop the GUIs, mergetools and everything needed to give you the full version control stack.

If you want to give it a try, download it from here.

We also code SemanticMerge, and the gmaster Git client.

Plastic SCM 4.1.10.330 is out!!

Tuesday, August 07, 2012 Amalia 0 Comments

Release

Plastic SCM 4.1.10.330 has been released.

We produce new versions on a daily basis, but we announce once a week. The last one we made public includes a few bug fixes you might be interested in.

The features of each Plastic SCM release, up to and including the latest version, can be found in the release notes page.

Just in case you haven't downloaded this version yet you can do that here.

Bugs

TreeCache

There could be multiple instances of the same revision in TreeCache. The RevisionInfo references got inconsistent when merging a copy of a directory and file inside. Now, the instances will be unique.Fixed it!

Moved Item

A moved item from a copied structure to outside it could be left loaded twice on the workspace under some special conditions. Fixed it!

Checking in files after a merge

There could happen an error if checking in files after a merge that involved a repository with xlinks and the changes inside some xlinks are debt only by a rebase, but not for real changes. In addition to this, this issue only happened if there were after-checkin triggers configured on the server. Fixed it!.

0 comentarios:

Who we are

We are the developers of Plastic SCM, a full version control stack (not a Git variant). We work on the strongest branching and merging you can find, and a core that doesn't cringe with huge binaries and repos. We also develop the GUIs, mergetools and everything needed to give you the full version control stack.

If you want to give it a try, download it from here.

We also code SemanticMerge, and the gmaster Git client.

Diff and Merge for Microsoft Office Documents

Monday, August 06, 2012 Amalia 1 Comments

We've just released new changes in Plastic SCM integration with several Microsoft Office tools: Word, Excel and PowerPoint.

You'll now be able to diff Word docs, Excel sheets and even PowerPoint presos (restricted to old versions which had support for it).

Now you'll be able to merge Microsoft Word files too... out of the box!

What the new changes are about

When several people are updating and making copies of the same files, multiple versions easily blossom out of control.

Plastic SCM can now compare proprietary file formats including Microsoft Office files.

We released integration with Office in Windows to perform diff and merge for Office documents.

As stated above, now you can use Plastic SCM (default installation) to Microsoft Word document merge.

The new release is also adding diffing capabilities for:

  1. Excel - Microsoft Excel 2003 and later
  2. Word - Microsoft Word 2003 and later
  3. Power Point - Microsoft Power Point 2003 (Microsoft dropped support for diffing after the 2003 release)

How does it look like?

Word Diff

The new diff support for Word files can be applied to the following file types: .doc and .docx files, .rtf files, .txt, and any other format supported by word.

In order to make it run, follow the following steps (don't forget to check the setup steps described below if you're not running a fresh installation):

Select the document that you want to compare (make sure it's been added to source control) and select Plastic SCM Diff Tool on the context menu (alternative just run "diff with previous").

Look at this picture: you can see the changes on the doc.

Excel Diff

We tested it with .xls and .xlsx files. The following example will show you how the Excel diff looks like:

If you want to watch a complete workflow, take a look at the complete flickr gallery. We've added a bunch of screenshots there so you can see it in action.

The following screencast shows how to run a merge of Word files with Plastic SCM.

Setting up Office diff in Plastic SCM

There are several options depending on whether you're just installing Plastic SCM from scratch or updating an existing installation.

New Plastic SCM installations

You're the lucky one. Plastic SCM comes with everything pre-configured, so just start diffing your office files.

Existing Plastic SCM setup

Since your diff and merge tools are already configured, Plastic won't overwrite any configurations to prevent altering manually introduced adjustments.

In case you didn't modify anything on the default diff/merge setup (which is very likely if you're not using any external diff tool), then you'll need to go through the following steps:

  1. Close Plastic SCM
  2. Delete client.conf. (Remember it is located on your user's directory, in my case here: C:\Users\pablo\AppData\Local\plastic4\client.conf).
  3. Launch the configuration wizard again: you can type plastic --configure

Existing Plastic SCM setups with tuned merge scripts

In case you modified your merge or diff configuration, then don't reset your client.conf but instead follow the instructions below:

Go to preferences, then 'diff and merge tools' in the Plastic SCM GUI. Then, you'll have to add new 'rules' for your files. Remember to move them up so they're the first rules on each category (otherwise the generic tools for binary files will take preference).

Word diff: add the following diff tool as external tool:

Suffix: .doc;.docx

wscript.exe "[plasticdir]client\diffscripts\diff-doc.js" "@sourcefile" "@destinationfile" //E:javascript

Excel diff: add the following diff tool as external tool:

Suffix: .xls;.xlsx

wscript.exe "[plasticdir]client\diffscripts\diff-xls.js" "@sourcefile" "@destinationfile" //E:javascript

PowerPoint diff: add the following diff tool as external tool:

Suffix: .ppt;.pptx

wscript.exe "[plasticdir]client\diffscripts\diff-ppt.js" "@sourcefile" "@destinationfile" //E:javascript

Word Merge: add the following diff tool as external tool:

Suffix: .doc;.docx

"[plasticdir]client\diffscripts\merge-doc.exe" "@destinationfile" "@sourcefile" "@output"

Note: [plasticdir] will be replaced by your own Plastic SCM path

1 comentarios:

Who we are

We are the developers of Plastic SCM, a full version control stack (not a Git variant). We work on the strongest branching and merging you can find, and a core that doesn't cringe with huge binaries and repos. We also develop the GUIs, mergetools and everything needed to give you the full version control stack.

If you want to give it a try, download it from here.

We also code SemanticMerge, and the gmaster Git client.

Integrate PlasticSCM with TeamCity CI Server

Wednesday, August 01, 2012 Amalia 0 Comments

Installation

The Plastic SCM Team City plugin extends the capabilities of the TeamCity server, enabling it to manage continuous integration operations using source data that is under Plastic SCM control.

To install the Plastic SCM Team City plugin:

1. Download the PlasticSCM plugin for TeamCity and copy the file com.codicesoftware.plugins.teamcity.PlasticSCM.zip file into your TeamCity plugins directory.

<homedir>/.BuildServer/plugins.

<homedir> is your operating system home directory, a subdirectory of Users (Windows 7, Windows Vista), or Documents and Settings (Windows XP), or $HOME (Unix-based systems).

Note: It is recommended to restart the Team City server so that it automatically unzips and loads the plugin.

2. (Windows systems only) The plugin performs Plastic SCM commands with the user identity of the TeamCity Build Agent Service. By default, this identity is the SYSTEM user account. We recommend changing this to an actual user account.

  • Go to Control Panel, Administrative Tools, Services.
  • Right-click TeamCity Build Agent Service and select Properties.
  • Go to the Log On tab and specify another user (who must have Administrator rights).

 

 

3. Restart the TeamCity Server service, so that it recognizes the Plastic SCM plugin.

Configuration

To create a Plastic SCM build configuration in TeamCity, you must first configure a VCS root:

1. Open the TeamCity web application and select your project.

2. Select "Create build configuration" (or edit an existing build configuration).

 

 

3. Fill in the general settings for the build configuration.

4. Select "VCS Settings".

 

Set Plastic SCM as the VCS type

5. Select "Create and attach new VCS root".

 

Create a new VCS root

6. In the "New VCS Root" dialog, set the Type of VCS to Plastic SCM. Then fill in these fields:

  • VCS root name: Any descriptive name, such as "Plastic SCM root".
  • Plastic command line executable: Set to "cm" or to the full pathname of the cm program.
  • Selector: In this field, copy the selector of the Plastic SCM workspace in which builds are to take place.
  • Workspace directory: The full pathname of the Plastic SCM workspace in which builds are to take place.

 

 

7. Click "Test Connection" to make sure that TeamCity can perform Plastic SCM client commands.

8. Click Save.

 

Plastic SCM has been established as VCS root. Save changes.

9. (Optional) Back in the "Version Control Settings" dialog, enter a VCS Labeling specification.

 

Labeling Specification

Now, you can run a build to start working with Plastic SCM from the Team City environment.

Note: When installing Team City on Windows systems, it normally uses the SYSTEM user account. We recommend changing the user that executes the Team City application. To do that, go to Control Panel, Administrative Tools, Services, right click on the Team City services, go to the Log on tab and select another Administrator user. The user that runs the Agent will be the user that runs Plastic SCM. We do not recommend running applications with the SYSTEM user account.

0 comentarios:

Who we are

We are the developers of Plastic SCM, a full version control stack (not a Git variant). We work on the strongest branching and merging you can find, and a core that doesn't cringe with huge binaries and repos. We also develop the GUIs, mergetools and everything needed to give you the full version control stack.

If you want to give it a try, download it from here.

We also code SemanticMerge, and the gmaster Git client.

Plastic SCM release 4.1.10.326 is out!!

Wednesday, August 01, 2012 Amalia 0 Comments

A new week, a new release: this time we're annoncing 4.1.10.326 (Build 326 as we name it internally). It is a new release of the 4.1 version, including a number of new features and bug fixes.
While you can read the detailed release notes, this blogpost will highlight the most relevant features and bugfixes.

Remember you can find the latest installer here

New Features

120dpi support

As developers, we spend quite an amount of time staring at our screens on a daily basis. Increasing the dpis is becoming more and more common and that's why we're focusing on the basics here. The latest Plastic SCM release includes several improvements to deal with 120 dpi resolution, focusing on control resize and font sizes.
The following controls scale now correctly:
  • TreeListView control: the one you see in the items view, branch list, changeset list... all lists
  • I3Tab control: the tabs used to switch workspace or views
  • TreeToolBar control: the toolbar in the top of the GUI
  • QueryView control: the one in the "advanced query"
image_120dpi


Diff and Merge for Office files

We will cover this feature in detail on an upcoming blog post. What we've implemented is:
  • Diff support: MS Word, MS Excel, MS Power Point (version <= Office 2003)
  • Merge support: MS Word
We've implemented our own tool to drive the merge (of course based on Word Automation) and this way we can control events such us the user correctly resolving all bugs prior to close the tool.


More information in the checkin triggers

Now the checkin triggers will receive the list of files being checkedin, but with additional information to know whether a file has been added, deleted, modified or moved. We will be posting a complete example later on this week.

Bug Fixed

  • Shelve on label: "No checkout branch found" The big picture was: workspace pointing to a label. If you have pending changes and try to shelve them, you are request to apply local changes. Clicking on the apply local change option, the "No checkout branch found" error appears. Now it was finally solved.
  • Xlinks: Replaced items are lost after undo changes. Now, fixed undoing changes result of a replaced operation in an xlinked repository.
  • Issues with left context menu option, under Linux and Mac OS X. The "Diff with branch· and the "Diff with changeset" context menu option shows the {0} string instead of the real branch / changeset name.
  • Audit log file at system32 directory; the ServerCong has been modified to get the audit log path correctly. Now, it supports absolute and relative path to the Plastic SCM server directory


0 comentarios: