Quantcast
Channel: Plastic SCM blog
Viewing all 258 articles
Browse latest View live

Plastic SCM 4.1.10.372 Release is out!!

$
0
0

A new week, a new release: this time we're announcing 4.1.10.372 (Build 372 as we name it internally). It is a new release of the 4.1 version, including a big number of bug fixes and new features!!

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

Features

Visual Studio Package: Create a Visual Studio toolbar

Now the Visual Studio plugin includes Toolbar showing the most common views available in Plastic SCM GUI: Pending changes under solution, Branches, Branch Explorer, Labels, Changesets, Repositories,Synchronization, Workspace explorer, and Pending changes in the workspace., Repositories,Synchronization, Workspace explorer, Pending changes in the workspace.

By clicking on these buttons the corresponding Plastic SCM view will appear, the same behavior as clicking on View -> Plastic SCM menu.

Visual Studio Toolbar

In addition to that, shortcuts have been added to open these views:

  • Pending changes view -> Alt+Shift+P
  • Branches view -> Alt+Shift+B
  • Branch Explorer view -> Alt+Shift+E
  • Labels view -> Alt+Shift+L
  • Changesets view -> Alt+Shift+C
  • Repositories view -> Alt+Shift+R
  • Synchronization view -> Alt+Shift+S
  • Workspace Explorer view -> Alt+Shift+I (Items)
  • Pending changes on workspace view -> Alt+Shift+W (Workspace)

Notes:

  • From VS2005 to VS2008, toolbar can float, but in VS2010 and VS2012 toolbar appear docked in the main toolbar section.
  • The first time that the plugin is loaded (open a project in Visual Studio) after Plastic SCM installation the toolbar will appear automatically, so that users will notice it. Then you can dock it somewhere or hide it.
  • You can customize the toolbar to show only the buttons that you prefer, as usual with other toolbars.

Thanks all for suggest this new feature in Plastic SCM user voice. Enjoy it!

Bugs

Diff View

The Diff View was suddenly closed issuing the following commands: --showbranch=full_branch_spec --showchangeset=full_changeset_spec

Show changeset example, “Show Diff View of changeset number 7”

'plastic.exe -- changeset =cs:7@tools@localhost:8087

After you enter the command, the below figure will show up:

Diff View of changesets


Show changeset example, “Show Diff View of branch SCM001”

'plastic.exe -showbranch=br:/main/SCM001@tools@localhost:8087'

Diff View of branch SCM001


GUI: increase the progress dialog size

GUI: Update progress dialog size increased to avoid cut texts.


Eclipse plugin

Eclipse plugin: localization issue in the changesets view fixed.


Web UI (beta version): empty branches and changesets view

On the web client, the Branches View and the Changesets View were not showing information due to the regional settings. Fixed!


Web UI(beta version): show information with special characters

On the web client the Charts didn't show because the repository name contained some speciall characters. Fixed.


Remind Plastic SCM Web UI is a beta version. In Plastic SCM forum, brave testers share their experience with us: Web UI client set up problems. Thanks all

Enjoy it!!


Plastic SCM 4.1.10.376 Release is out!!

$
0
0

A new release of the 4.1 version is out: Plastic SCM 4.1.10.354!!!

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 blog post will highlight some of the new features. Just in case you haven't downloaded this version yet, you can do that here.

Features

Move Detection

This new feature was suggested on User Voice: Improve file move detection (compare only same extensions)

Now, the move search by similar content can be restricted to the same file extension for text files, binary files or both. By default, the binary files are restricted to process only the files with same extension.

On the GUI, this behaviour can be configured using the commit preferences. Looking the following figure:


On the CLI, this behaviour can be configured on the status command using the following parameters:

  • --txtsameext: Only those text files that have the same extension will be taken into account by the similarity content matching process during the moved items search. By default any text file will be processed.
  • --binanyext: Any binary file will be taken into account by the similarity content matching process during the moved items search.

By default, only those binary files that have the same extension will be processed.


Bugs

Branch Explorer: wrong key navigation with relevant changesets

On Branch Explorer View, navigation keys did not work properly when the "Display only relevant changesets" option was enabled. Fixed.

WebUI: remove repository description

The repository description has been removed so it was pointless.

WebUI: raw data

When downloading raw data of a .zip or .dll file, the name suggested by the Internet browser was "Raw" instead of the item name. Fixed: the name was only set if the content type was octet-stream, which was not correct.


Enjoy it!!

Checkin changes to a different branch

$
0
0
You have been working hard during all the afternoon, suddenly you realize that your workspace is not switched to the correct branch! The pending changes view is plenty of changes that should be committed in a different branch. How Plastic SCM can deal with this typical developer situation?.

Want to move your changes elsewhere?

You may know that we have two ways to avoid committing changes in the wrong branch.
The first one is the "Checkin changes to a different branch...", with this option you can commit your changes in a new branch, keeping the current one clean.

The second is the shelve operation, with this feature you can save the workspace changes in the Plastic SCM server and apply them later in any branch you want.

Check-in sub menu options

Already committed the changes?

If your changes are already committed in a wrong branch you can use the subtractive mergeto "revert" the changes and keep the head branch as it was before committing the wrong changeset.

Now, the cherry pick merge is the key in order to place the changes to the right branch. Use the cherry pick to propagate the changeset content into the destination branch. Here you have an example of how the operation looks like:

Usage of the subtractive and cherry pick merge


The changeset #1 is the one we want to "move", the changeset #2 is the result of the subtractive merge (red merge link) and finally the changeset #3 is the the result of the cherrypick (purple merge link).

As you can see Plastic SCM has all the tools to save the day.

Plastic SCM 4.1.10.378 Release is out!!!

$
0
0

We have removed this release from the downloads web page because we have detected a performance problem in the merge operation that could be noticeable when there are lots of items involved.

Sorry for the inconvenience.


We start new week, and we launch new release: this time we're announcing 4.1.10.372. It is a new release of the 4.1 version, including a big number of bug fixes and new features!!

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.

Features

Update Merge Operation

The update merge was not handling the scenarios with changed xlinks or under the xlinked repositories.

Now, the update-merge operation can also work with writable xlinks when there are not conflicts in any of the involved repositories.

Bugs

Checkin Comments

This small bug was share in our forum. Thank you very much to our active forum members, who are always starting interesting threads.

The checkin recent comments were not being read correctly (from the disk file) when the comments contained the '_', '#' or '@' characters.

Diff View on Linux

Some lines that contain some special characters that can be handled as prefixes (such as: &) were not being drawn properly on Linux by the Differences Tool and the Merge Tool. Plastic SCM team discovered it was mono's issue. Fixed!

The Folder Icons on Repository Browser View

The folder icon was wrongly draw as an special icon, under some especial conditions, : unit icon, special folder icon, custom icon... Now the folder icon is always the default folder icon.

Shelve and Locks

When a shelve was applied the locks were not taken into account.Fixed!

Shelve and File Attributes

Thanks for reporting this bug and share it in Plastic SCMforum.

When a file is left as checked out by the shelve operation the readonly permission is properly removed.

Plastic SCM Documentation

We supply documentation for the latest version and previous versions of Plastic SCM, in both online and offline (downloadable) form. This page provides links to all our documentation.

The following online guides has been updated:

Admin Guide

Database Prefix: Plastic SCM permit to create prefixes for your database as with the suffixes. (Chapter 8)


RepliKate

$
0
0

After accidentally cloning a sexy repository, two college grad students decide to educate the newly created script and turn it into the perfect Plastic SCM replication command. (Source: Repli-Kate)


CmdRunner background

Using the CmdRunner library we have created a small application for replicating a complete PlasticSCM repository. You can find the RepliKate code here.


What RepliKate does

You can use repliKate for two purposes:

  1. Replicate a complete repository from one server to another.
  2. Replicate all the changes done inside a repository in a period of time.

Replicate a repository from zero

You can use the following command to migrate all the source repository content into a new one, all your branches, changesets, permissions, labels and so on will be replicated to the destination repository.

"replikate srcrepos@srcserver dstrepos@dstserver"

Remember that if you are a GUI guy you can always use the "Sync view" to achieve the same result.


Keeping your repositories synced

Here is where RepliKate can help you more, let's work with an example.

I have my central code repository in my "OmicronPersei8" server and I want to push periodicaly my new changes to my "Amphibios9" server, in order to keep "Amphibios9" server as a mirror/backup server.

First I need to replicate all the "OmicronPersei8" code repository to the "Amphibios9" server using repliKate, just like we did up there.


Now that I have the repository synced I need to replicate everyday all the new changes made into the "Amphibios9" repository, it's easy using the "Sync view" but it's also too much manually.

With repliKate you can use a Windows scheduled task (or Linux cron) to issue the following command every night:

"replikate srcrepos@srcserver dstrepos@dstserver --syncdate=yesterday"

As you can imagine this command will replicate all the branches with changesets created since yesterday. Running this command everyday will keep my mirror server updated.

Instead of the "yesterday" key word you can use a certain initial date, for example:

"replikate srcrepos@srcserver dstrepos@dstserver --syncdate=initialdate(Month/Day/Year)"

Run "repliKate.exe" to get the full help.


RepliKate log

You can use this log4net configuration file to get the log info from the repliKate application, you need to place it in the same location as the replikate.exe file, it will generate a replicate.txt log file.

In a future blogpost I will explain you how to configure it to reveive email notifications when repliKate is not able to push the new changes.


Enjoy and customize it!

Plastic SCM 4.1.10.382 Release is out!!

$
0
0

A new release of the 4.1 version is out: Plastic SCM 4.1.10.382 has been released. All the new features and bug fixes of each Plastic SCM release can be found in the release notes page

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

Bugs

Exclusive checkout is done on a non-matched item

When multiples items were checked out, and some of them had to be locked, all of them were locked wrongly. Fixed!


Directory differences is not showing anything

The directory differences for an checked out directory was showed an empty content on Plastic SCM 4.1.

Now, some issues have been fixed for the directory differences:

  • "Index was outside the bounds of the array" error. It happened under some special conditions. Fixed
  • The xlinks are properly handled on the differences. They are not shown as a file any more.
  • The checked out directories were showing an empty content. Fixed

Performance

Merge Performance

Repair merge performance. It has been broken on BL378. Merge performance has been restored.


Plastic SCM Documentation

We supply documentation for the latest version and previous versions of Plastic SCM, in both online and offline (downloadable) form. This page provides links to all our documentation.

The following online guides has been updated: Office guide


Take care of your tasks!

$
0
0
As probably most of you already know, we at Codice Software use the Branch per Task development pattern. This has a lot of advantages for us; one of those is deciding what to integrate and where. This gives us a very flexible way to build new releases; it's like building customized releases, à la carte.

What I want to explain now is what a task means for us. The picture below depicts the task life-cycle:



So, at the beginning of every Sprint we decide the Sprint Backlog, and assign tasks to the team. Then, when a developer starts working on a task he / she opens it. When the task is done the developer change the status to Resolved, and our internal testing system picks the task, run all our automatic tests suite and if anything fails the task is reopened.

In the meantime, a different assigned developer reviews the task. Again, if he / she finds some kind of code smell or a potential bug he / she reopens the task.

When the task is reviewed then other developer validates the task, testing manually the issue. If a bug related to the changed code is found he / she reopens the task. Otherwise, the task is verified and ready to be integrated in the mainline.

As you can see this is a complex cycle, we care our tasks a lot, they are like children for us. We see them born, grow, educate them when a teacher (reviewer, validator) tells us that it is misbehaving at school, teach them how real life is when tests fail and then they go to the university (integration), where they meet other tasks and become a task useful for the society (the product).

This information is logged in our internal task control system, like the medical history or the resumé of a person.

Then, if later on any problem related to that task is detected (via annotate or method history in most cases) and a developer asks us how we educated it, we explain to that developer what we did.

So, in the end, our concern as developers is about educating tasks to help other developers to do their work :-). Isn't that beautiful?

Conflict detection during checking

$
0
0

If you’re working on a shared branch (more developers committing to the branch you’re also using), chances are that at some point you’ll need to sync your workspace prior to complete a checkin.

You’re on changeset 12 of the branch:


Now you make some changes on your local copy that are not yet checked in to the branch.


At some point you decide to checkin but… another developer checkedin first, so you now have to merge from his changes first.


What’s the solution now?

So far you had to merge from changeset 13 into your workspace (what I drawn as cset 12’) and then checkin.

But, most of the times, fortunately, the changes made on “13” won’t collide with the ones you made on your workspace, so the merge wouldn’t be really necessary.

There are two options here:

  • The first one is manually updating your workspace. If there are not conflicting changes, your cset “12’” will now start from 13 instead of 12 (changes are perfectly applicable there) so there’s no merge conflict anymore
  • What we recently added to Plastic is the ability to do that operation automatically upon checkin: it will ask you if you want to update, and then it will complete the checkin.

The scenario after updating will be:


Actually, the dialog that the GUI will show is the following:


The title of the dialog is very explicative: “New files in the branch, update needed”. So, you can now update before checking changes because “ Since the changes in the branch don’t conflict with the changes in the workspace, you can simply update the workspace before checking in”


The following video summarizes this new feature of Merge and GUI.




Plastic SCM 4.1.10.388 Release is out!!

$
0
0

As you all know, we're trying to stick to the golden rule of "one release a week". So... here it comes the BL388 :)

We're also giving Plastic SCM releases a code name, and our build master chooses a new city every week or so. The one for this week is sort of movie inspired: Plastic SCM 4.1.10.388 is also known as Casablanca.

Download the latest version of Plastic SCM at here.

If you want to check what's new there, don't forget to take a look at the release notes.

Features

The Version Tree 2D Filter Algorithm

The version tree 2D filter algorithm has been improved:

  • Only relevant labels are shown.
  • Included some options to filter. Now you are able to see:
    • Only revisions.
    • Revisions and merges from revisions to other changesets.
    • Availability to view/hide labels.
    • Availability to view all merges related to the history of the current file.

Hide Plastic’s Office panel

As usual, we try to solve as many user requests as possible, so here it comes a suggestion from user voice.

The user preferences are now saved for Word, Excel and PowerPoint. The behavior is the following:

  • Word: if the user closes the window, the preferences are saved.
  • Excel and PowerPoint: the preferences are only saved if the action is done with the ribbon button.

Notes: Microsoft Office versions tested:

Microsoft Office 2007: It works for Word, Excel and PowerPoint.

Microsoft Office 2010: It works for Word and Excel. PowerPoint 2010 add-in is no longer installed.


Show hint in Plastic SCM logo

Plastic GUI: Added a hint when a custom logo is shown. This is a small nuisance that will allow us to add more info whenever we publish a custom logo :P


Bugs

Move Detection: Filter by extension

Now the merge and the differences tool can be configured for a specific pattern instead of only for an extension.

For example, we can use the following patterns:

  • “.cs” - Any file with cs extensión
  • “*.cs” - Any file with cs extensión
  • “README”– Any file which name is “README”
  • “Diff*”– Any file that starts with “Diff”
  • “^Diff.*(\.es)|(\.nl)\.resx$”– Any “es” or “nl” resource file that starts with Diff (Diff*.es.rex & Diff*.nl.resx)

In order to get this, click on “Preferences” option and click on “Diff Tools”. Then if you choose “Add..” option the figure below shows:


Choose now “Merge Tools” and click on “Add..” option. The window will look like this:


Pending Changes: wrong number of mergelinks was shown

On “Pending Changes” view, the merge was shown multiples times, while it was in progress. Fixed!


First char removed in merge & diff using UTF8

UTF8 is the enconding designed for Plastic SCM team to make the differences and merges.

The issue was detected when a file had a different UTF8 enconding, then the first byte was not process properly. Fixed!


Wrong diffs on Xlinks

Diffs on Xlinks were calculated incorrectly when the differences was pointing to a different repository. It was always trying to solve the differences locally on the same server. Fixed!


We hope you enjoy our new release!!

Using Plastic SCM to sync with the junior github repo

$
0
0

We’re currently testing our bi-directional integration with Git, which basically enables Plastic to directly push and pull changes (and solve conflicts) to a Git repository. It is not a script, it is not limited to a single branch, it doesn’t require you to call the sysadmin to add a file or any of the other niceties that we’ve just seen in other “git connectors”. :S

As I explained a few months ago we have implemented the git protocol, so Plastic is able to connect directly to a Git server. That’s all.

Connecting to a trendy repo

If you go to github and browse the repos today, you’ll probably find something like a list of “trendy” repos. I’ve selected one of them which turned out to be the “junior” repository:

Now, to pull it to Plastic I’ve created a repo to “host it” (called junior too) and went to the initially empty branch explorer, then to the context menu option to launch the sync with git:

Then you launch the “sync” dialog (which is very similar to the replication dialog to push/pull changes between Plastic servers) and enter the URL of the git repo:

No need for credentials now since we’re just pulling (cloning) from a public repo. You’ll need to specify them in case you need to push and then the server requires you to be an authenticated user.

Just press “Sync” and the process will start up as follows:

You’re currently pulling git changesets and branches directly to your local Plastic SCM repository.

Browsing

Refresh the branch explorer and you’ll be able to render the just imported git changesets a typical Plastic SCM way:

And now, right-clicking on any changeset (commit in git jargon), you’ll be able to check differences with our built-in diff system.

What can you do next?

From here you can create more changes in Plastic, branches, merges, anything, then repeat the same process to sync to git (which will in turn push or pull changes and even ask you to solve merges before pushing back to git if concurrent changes were done on the same branches).

Want to give it a try?

If you want to give it a try and use Plastic SCM as your GitHub client, then you can go to our “labs” area under downloads:
  • Go to www.plasticscm.com/download
  • Login (or register)
  • Go to “labs”
  • Download the latest “4.2” release which includes the Git Bisync functionality!
  • Enjoy

Enjoy!

Plastic SCM for JIRA

$
0
0

It’s an eternal truth that all software projects have new features and bugs. A good automated issue-tracking solution turns out to be an essential tool for every project.

Jira is an issue tracker and it helps you following the rule of thumb for every controlled project: everything you do in code must have an associated task. Whether you call them bugs, tasks, improvements or work requests, JIRA provides an efficient way to track and manage your daily work, which can have a big impact on productivity and results.

Plastic SCM integrates with Atlassian JIRA so you can get the best of the two.


How does the integration work?

Plastic SCM implements task-driven development (efficiently and intuitively), using the branch-per-task pattern.

This article will explain how to integrate JIRA and Plastic SCM and how to implement the task-driven development with them.

Installation and Setup

Jira

The first step will be downloading and installing JIRA.

Go to download page and select the distribution for your OS (Windows, Linux, Mac OS X), then follow the installation notes. You will find them on the JIRA Documentation.


Installing JIRA Standalone on Mac OS X

Since I’m using a Mac I’ll be explaining how to set it up on Version 10.6.8 but you can do almost the same on your Windows or Linux server:

  • After downloading the JIRA tar.gz file, select a good location for it and unzip it. The “JIRA Installation Directory” is the directory into which the JIRA application files and libraries have been extracted.
  • Set JIRA Home to the location of your “JIRA Home Directory”. Edit the JIRA-application.properties file and set the value of the ‘JIRA.home’ property to the desired location for your JIRA Home Directory. Atlassian recommended locating your “JIRA Home Directory” completely independently of the “JIRA Installation Directory” (i.e. not nesting one within the other)
  • Start JIRA: open a terminal window and run start-JIRA.sh in “atlassian-JIRA/bin”.
  • Open your browser and go to http://localhost:8080 and define the application properties. The JIRA setup wizard will guide you through the initial steps as you can see in the figures below:

Step 1 of 4

Step 2 of 4

Step 3 of 4

Step 4 of 4


And you're done.


Note: the version I just tried is JIRA 5.2.4.1


Plastic SCM

Go to our download page.

Installing Plastic SCM is rather simple so you’ll get it up and running in fewer than 2 minutes:

  • Make sure you downloaded the correct distribution (Windows, Linux, Mac OS X).
  • Launch the installer to begin the installation wizard:
    • By default, Plastic SCM directory is named Plastic SCM
    • The Plastic SCM configuration wizard client will show up:
      • Select the port where your Plastic SCM server will listen: 8087 by default.
      • Select the user security configuration mode, “local users” is the default.
    • In fewer than 1 minute Plastic SCM will be installed in your computer.

Note:I’m using Plastic SCM version 4.1


Integrating Plastic SCM with JIRA

Plastic SCM offers out-of the-box integration with JIRA. Setting up the connection is actually easier than explaining what’s going on (which is not difficult either).

In order to do it, go to the actions bar on the left side and then click on “Preferences”:


Then the “Preferences View” will show up, listing all the available options. Click on “Isssue Tracking” button:


The dialog has two different options:

  • Don’t bind Plastic SCM branches or changesets with any issue tracking system
  • Bind to this issue tracking system

Let’s choose the second option, and select “Atlassian JIRA” as our issue tracking system:


Plastic SCM implements two different working modes:

  • Bind issues to Plastic SCM branches (recommended). This way the link is pretty easy to set up and you’re free to embrace full parallel development using as many branches as you want. Remind, we recommend you the branch per task pattern. The branch prefix “scm” will be the link between Plastic SCM branches and JIRA issues, but you should select the one that better suits your needs.

  • Bind issues to Plastic SCM changesets. If you select this option, every changeset will be linked to a task. This is probably the more common mode for users of other version controls systems. We support it, although we strongly recommend the branch per task alternative.


The next step to ensure the extension is properly configured will be checking “JIRA server configuration settings”. Look at the figure below:


Please, pay special attention to remarked parts on the above figure:

  • Server: get the URL where the server is configured
  • Project key: it prefixes each issue in the JIRA project. It can’t be changed once the project is created. Max length is 10 characters.
  • Test connection: to check whether the connection to your JIRA server is correct. Once the button is clicked you will see a window with the result of the test: success or failure.

Getting started with JIRA and Plastic SCM: the branch per task cycle

Now, we are ready to start working.

This part is a casual introduction to JIRA and its approach to task-driven development

In JIRA you usually work with a project and its issues.

In task-driven development, changes made to individual files are grouped into higher-level structures, called tasks or issues in JIRA. Every change made to implement a new feature or fix a bug is an issue (or task).

So let’s see how to work with Plastic SCM and JIRA using task-driven development implemented through the branch-per-task pattern.


New project in JIRA

To add new project in JIRA, click “Add project” option to open “Add a new project” dialog box:


You need to enter a name (descriptive name) and key (unique key). This key will be used as the prefix of this project’s issues. If you remember, in the previous part, you entered this key value in Plastic SCM preferences window.

As you can see on the figure, I typed “Plastic SCM Learning” as the name and then “LRN” as the project key.


Create an Issue in JIRA

JIRA enables you to keep track of different types of issues: bugs, tasks, documentation, etc.

Following the branch per task pattern, everything will be a task: Every developer will work on a task, each task will be implemented on a branch and the cycle will continue until branches get merged (which will happen very, very frequently). JIRA will manage all the tasks of the project.

Let’s go to “Browse Project” view. It will look like the following:


As you can see, “Filters” option manages all the operations you can perform with an issue. Now, let’s add a new one, it’ll be a new feature. So, click on the “Create Issue” button, and then a new dialog will show up:


JIRA suggests you the value of some fields like project name, issue type, or assignee. You can modify them. Look at my example below:


As I mentioned, tasks are the cornerstones of project coordination. Each of them has a unique number, which will be key to identify them within Plastic SCM.


Create a branch in Plastic SCM

Let’s go to Plastic SCM.

Open the “Branch Explorer” view. My recommendation is that every task (branch) should start from a stable release, a secure status that you can recover later on.

To create a new branch (child branch actually) right click on your stable starting point and select the “Create branch from this changeset” action.

Task branches have a simple naming scheme:

user-defined-prefix + issue-number

user-defined-prefix: “SCM” is the prefix that we wrote in our issue tracking configuration.

issue-number: enter the name based JIRA issue number


Now, the link (between Plastic SCM and JIRA) is set automatically.


Developers will work on the task: adding new files, modifying, renaming, deleting, etc.


How does the connection with JIRA work?

Let’s see how the JIRA connection works. Go to “Branch Explorer”. Click “Options” at the top bar. A new view will open:


As you can see “Properties” is the first tab. It’ll show you all the properties of the current branch “SCM001”. You can select the others tab to discover all the others options: “Display options”, “Conditional Format”, “Replication Sources”, etc.

The last tab is “Atlassian JIRA Extension” view. Click on this option and click on refresh button to update the information.


The information panel shows the information coming from JIRA:

  • The name of the JIRA issue: Task- ID
  • The title of the issue
  • The status
  • The owner
  • The description

So, you can see how Plastic SCM associates every branch with a specific JIRA bug or new feature. The key thing is every checkin we do will go into the branch; it will associate it to the right task.

There are three options on the top of “Atlassian JIRA Extension” tab as you can see:


These options are the following, from left to right:

  • Update: updating the info.
  • Open JIRA in a browser, to see the standard information on the JIRA site. Double click on the description performs the same action.
  • Custom View: change the view.

Conclusion

In this post we showed you how task-driven development can help you to manage your work in an efficient manner and supporting agile methods. In this game, there are three main actors: tasks, JIRA (an issue tracker), Plastic SCM (our favourite DVCS).

In the brach-per-task pattern the task sits on the centre. JIRA tracks the issues (features and bugs) because every change you do in your project will have an associated task. A good automated issue-tracking solution should streamline the process of managing a software project.

Plastic SCM associates every branch to a specific issue and there is a direct connection between the branch in Plastic SCM and the task in JIRA.


Plastic SCM 4.1.10.391 Release is out!!

$
0
0
A new release of our current stable version (4.1 series) is out: Plastic SCM 4.1.10.391 has been released!!

The list of new features and bug fixes of this Plastic SCM release can be found in the release notes page. This blogpost will highlight some of them. If you haven't downloaded this version yet you can do it here.

Bugs

Code Review 

When a deleted item was selected in the diffs view of the Code review feature,a "Value cannot be null." error was returned. This is now fixed!

Code review diff window

Merge

A merge resolution issue that happened when a directory was removed and added again during the merge resolution, has been fixed. The following is an example that reproduced the problem:

We keep the source resolution on the following merge case:
            base:
             /src
             /src/foo.c

            src:
              add /doc
              mv /src/foo.c to /doc/foo.c
              delete src

            dst:
              add /src/bar.c
              add /src/qux.c

 

Branch Explorer view

We have improved the mechanism to preserve the position when the diagram is refreshed.
And also ...
  • The view was scrolled down and right a little bit when it was refreshed. Fixed.
  • The view sometimes showed a blank part of the diagram when the workspace working information was not found. Fixed: now it focuses o the LAST changeset (last checkin).  
  • Fixed some errors that could happen when refreshing the view intensively.

 

Documentation

All the "revno" mentions have been deleted, since they are pointless in Plastic SCM 4.

Enjoy!

Plastic SCM 4.1.10.394 is out!!!

$
0
0

Keep up with what’s happening; here it’s Plastic SCM 4.1.10.394 external Release!!

Here you find the latest release notes and you can download Plastic SCM in this page.

You can suggest and vote for new features on the Plastic SCM Forumpage.

Now, see the full list of new features and issues resolved in this release.


Features

Method History

Now it is possible to check the history of a method that it is contained in a file that it is not loaded in the workspace.

In order to do that, let’s go to “Repository Browser” view or “History” view. Select “Annotate” view as the figure below shows:


Now, right click on the left panel and click on “Show method history”. You’ll get something like this:


In addition to that, some texts that appeared cut have been fixed.


Performance

LDAP authentication method performance has been improved when using lots of users:

  • Only the users are active in determine moment will be refresh, instead of all the known users by Plastic SCM
  • The DB access is avoiding while the users automatic refreshing.
  • The refresh interval has been increased from 5 minutes to 15 minutes, as several clients demanded.
  • Some LDAP calls have been avoided sharing the common information among different users and groups.


Bugs

Workspace

Concurrent read and write workspace operation could lead into a unupdated workspace. Now, the internal workspace operations are handled in a better way, denying those operations that can't be done concurrently This special situation could be achieved with multiple clients working on the same workspace.

Note: In addition to that, the concurrent read and write operation on the workspace content have been improved.


Branch Explorer

Thanks for reporting this issue in our forum.

Now it is fixed the crash in “Branch Explorer” when the following events were happening simultaneously:

  • Issue tracking integration enabled (Branch mode).
  • Enter visibility mode in Branch Explorer.
  • Show "Legend" Error: Key cannot be null.

Fast Import

Fast Import has been improved with the following characteristics:

  • Better progress notification
  • Fixed some bugs
  • Improved performance.

Team City plugin

The deletion of files and folders was not correctly propagated to the TeamCity Agent checkout folders under some circumstances. Fixed


Enjoy it!!

Plastic SCM 4.1.10.397 is out!!!

$
0
0

Reading Plastic SCM releases notes you are the first to know what’s new with upcoming releases.

Now, we present Plastic SCM 4.1.10.397 release or “Tanger” release is the alternative name. A new release kindly delivered!!

You may also want to check out all release notes. You can find them here.

Remind, download the latest Plastic SCM version from our web page.

The new updates for Plastic SCM enhance the most relevant new features and bug fixes.

Features

Plastic SCM Mylyn installer

The biggest added, in my opinion is this: Mylyn for Eclipse is included in the Plastic SCM installer. You can grab it now from Plastic SCM download page.

For an up-to-date list of the third-party products and versions supported, please consult our third-party tools compatibility matrix page.

Preferences

One of the options in Plastic SCM “Preferences” is allow (or not allow) to switch /update a workspace that it contains changed items.

This option has been moved from “guiclient.conf” file (GUI configuration) to “client.conf” (common configuration).

This value will be upgraded the first time that Plastic SCM 4.1.10.397 is loaded.

Furthermore, this preference can still be changed from GUI. You can select “Preferences” on the left hand, then click on “Other options” and check one of the following options under “Behavior when trying to switch/update the workspace with changed item” option:

  • Allow
  • Allow, showing a warning
  • Do not allow, showing an error

You will see something similar to figure below:


BUGS

Server Stats Logging

The server stats logging was failing in some concurrency scenarios, for example when the call user wasn’t set yet. Fixed!

Tree 2D

There are two bugfixes about Tree 2D:

  • There was a stack overflow exception when the main branch has a long history.
  • The changeset number was cut when drawing the vertical layout.

Method history

In Linux, a null error was raised when a view was opened, from the “Annotate View” as usual. It happened when setting the value of a DataGridViewCell object in Mono 2.6.x. Fixed

Hope you enjoy our new release!!

Helping libgit2 to grow up

$
0
0
You might have heard of the libgit2 library, a native wrapper on top of git providing programmatic interface to most of the git functionalities.

Products like GitHub and even the newest Microsoft TFS integration with Git make extensive use of the library.

Turns out to be that here, at Plastic SCM, we do use libgit2 too in order to create our bidirectional synchronization with Git!.

So I wanted to highlight today the contributions we made through our partner Elego Software in Germany (and our good folk Carlos Martín Nieto). I think is worth noting that most of these contributions might be already helping some other Git based products to shine, and since we made them pass through really tough stress tests, they should be performing great!

  • Some missing introspection code was added to git_odb_foreach() and git_packfile_foreach() since we need to loop through the packs remotely created by Git in order to walk them and push them into Plastic
  • We asked Carlos to fix some leaks in the indexer code and make it more resource-friendly
  • Speed up hashing on packfiles with large objects has been greatly by keeping the state of partially-downloaded objects instead of retrying from the start. It was killing the walking of packs with big files, although we’re not sure this specific area will help other users of the library
  • Introduced a delta based object cache to avoid decompressing the same data over and over again. Together with the previous, this change made the fetch as fast as git’s in single thread.
  • Fixed the assumption that an object was able to fit in one memory window (32bits systems would crash with objects >16Mb)

Unity

$
0
0

I ‘ve been reading about Unity and how to use external version control systems with it. There’re a lot of posts and questions on the Unity forum and I discovered that Unity developers are suffering simple problems and there’s no much knowledge about distributed version control system. (DVCS).

A very funny example is that developers are using Dropbox for sharing big files. Which is obviously a SCM work not a file hosting service.

I work in Plastic SCM, a DVCS like Git and Mercurial, so finally I get myself writing an article about Unity Version Control issues and how Plastic SCM can help. Let’s review the main topics.

Tracking meta files

Inside the Unity documentation there is a page called “Using External Control System with Unity”.

The chapter explains how all the Assets and Project settings should be added to the version control system. On the other hand, nothing from the Library directory should be added, it must remain outside the version control system.

The key topic is about don’t forgetting to include the .meta” files. The “.meta” files are text files, one per every asset in the Asset directory, containing the necessary bookkeeping information required by Unity. These “.meta” files contain the internal GUID of their respective asset.

As we‘re going to work with Plastic SCM, an external Distributed Version Control System and not with the Asset Server (paid service), it’s necessary to tell Unity to modify the project structure slightly to make it compatible with storing assets in Plastic SCM.

This is done by selecting “Edit/Project/Settings/Editor” in the application menu and enabling External Version Control support by selecting “Metafiles” in the dropdown for Version Control.

The Unity files will have a “.meta” file extension with the first part being the full file name of the asset it is associated with. Moving and renaming assets within Unity should also update the relevant “.meta” files. However, if you move or rename assets from an external tool, make sure to apply the same operations to the relevant “.meta” too.

How can Plastic SCM help you?

We have two ways to help unity developers, the first one is the Transparent SCM, you just have to change your code files, add new files, rename files or delete files. Plastic SCM will do all the tracking for you. Really? Sure, Plastic SCM makes “the dirty work”, so you can focus on the development of your Unity project. Explore the power of the “Pending changes view”

The second one is about the meta files management, the Plastic SCM team has made a script to find out added/changed/moved/deleted files. This script automates some of the grunt work of keeping a Unity repository in sync. The script is named “MetaReminder“. Cool, isn’t it?

“MetaReminder” will track if…:

  • You’re adding the “.meta” file at the same time you’re adding the regular file or not.
  • You’re moving the “.meta” file at the same time you’re moving the regular file or not.
  • You are Deleting the “.meta” file at the same time you’re deleting the regular file or not (optional option).

Make sure you have installed Plastic SCM.

The workflow will be the following:

  • Add your code under Plastic SCM control
  • Develop your task
  • Commit your changes

If the operations aren’t executed over the “.meta” file the commit operation will fail to prevent an incomplete changeset.


Trigger setup

The “MetaReminder” script is inside THIS zip file. Copy the zip file in a known location. Uncompressed the code; you’ve got an executable file. You can run the script by typing the following options at the command prompt:

  • Remind adding the “.meta” file for a new file:
  • cm mktrigger before-clientcheckin "Meta file reminder" "C:\path\unitymetareminder.exe

  • Moreover you can enable the tracking of the delete operation:
  • cm mktrigger before-clientcheckin "Meta file reminder" "C:\path\unitymetareminder.exe --checkde"

NOTE:As this trigger is a client side trigger, make sure you copy the tool in the same path for all the clients.

NOTE 2:Under Unix environment you can use the trigger with the mono framework, this is an example: cm mktriger before-clientcheckin “Meta file reminder” “mono /home/tester/unitymetareminder.exe”

Are you getting started with Plastic SCM triggers? Find out more about Plastic SCM triggers using our online guides.


Practical Example

We’re going to create a new trigger. Please, open a terminal windows and type, for example, the first option to remind adding the ".meta" file. You’ll see something similar to this:


Then you can check if your trigger has been created. In order to do that, type the following command: “cm listriggers” as the figure below:


As you can see on the figure, the trigger is created, so why don’t we try it? Let’s imagine the scenario where we are adding a new file without the appropriate “.meta” file, the trigger will help us to handle the situation.


Let’s go to Plastic SCM GUI.

We’re going to “Items View”. Now, let’s add a new unity file, for example “c:\plastic_repo\scen_one.unity”. Then, let’s add the file to the repository, right click on the file and select “add to source control”. Now, Plastic SCM knows about this file, but it is not checked in the repository yet. Just right click and select “checkin” option. Here it’s what you will see:


The trigger is reminding reminding you: “You need to checkin the scene_one.unity.meta file too”. So, we’re going to add “scene_one_unity.meta” file in our repository in “c:\plastic_repo”. Let’s go to “Items view”, you’ll see something similar to this:


Let’s go to “Pending Changes” view. It shows what we’ve modified so far:


There are two add new files. So, you can now checkin all the changes and the operation will finish correctly because you added the “meta” file at the same time as the asset file. Once the checkin is done the “Items View” will look like the following:


Please note the status of all files is now “controlled”. Yeah!! We got it!!

I’ll be happy if you give it a try and I welcome if you send me a feedback, as well as any suggestions you may have.


Note: You can download the original "MetaReminder" here

Update: He have receive a modification of the “MetaReminder” tool that automatically creates the missing “meta” file.

You can download the source code here and the binaries here.


Plastic SCM 4.1.10.400 Release is out!!

$
0
0

We're also excited to announce to we've finally reached 400 releases!!! The new release is Plastic 4.1.10.400 (Zaragoza as we name it internally)



So proud of us as a group to have reached this number successfully! Congratulations Plastic SCM team!

Please view the release notes to get up-to-date information about the improvements made in each release.

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

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

Features

Frontend server process

Frontend server functionality has been added. The frontend server is a process that listens on a port capturing all network requests and then sending them to a plasticd process running on the same machine. Connections are negotiated through the frontend.

If a backend dies, the frontend launches a new one. It can also kill the backends if they grow larger than a certain amount of memory. The following example launches a backend in console mode:

plasticfrontend --console --publicport=7070 --frontendport=7071
--remotingfile=remoting.backend.conf

New panel on "Branch Explorer" View

The branch explorer now shows a panel with the branch/label/changeset properties, when you hover on an object with the mouse.


Bugs

"Branch Explorer" exception

Branch Explorer: A null reference exception was thrown sometimes when deleting changesets. Fixed some concurrency problems.

Script in Debian

Now, the "plasticsd" script in Debian does not show the annoying "too many arguments" warning.


Unity plugin progress

$
0
0
We posted about the integration with Unity using a trigger a few days ago and today I'm happy to announce we're already working on an integrated plugin with Unity, so you'll have access to Plastic SCM within the editor... It is still work in progress but let me share some screenshots with you :) So far just running an "add" process:

Mylyn plug-in and Plastic SCM

$
0
0
Plastic SCM integrates natively with a number of issue tracking and project management system like Atlassian Jira, FogBugZ, Mantis, VersionOne, Rally, Bugzilla and others. Now the integration and task visualization is also available from the Eclipse side using Mylyn.
You can install the Mylyn plug-in for Plastic SCM in easy way. You only need to download Plastic SCM from version 4.1.10.397
Perform the following installation procedure to install the Mylyn plug-in. Launch the installation wizard for Plastic SCM and click “Next” until you reach the “Select Components” window.
In this window you can select the components you want to install. You have to check the “Eclipse plugin” and “Mylyn-Ecplise plugin” check-boxes as you can see in the figure below:


The Mylyn plugin depends on the Eclipse plugin so if you only select the “Mylyn-Eclipse plugin” you will see a warning in order to remind you the dependency:


Click “Next” and follow the installation prompts. Now you have to fill in the path where your Eclipse has been installed. For example, in my case: “C:\Juno\eclipse”


Click “Next” and you will see that the setup is ready to install Plastic SCM on your computer.


Now that the all everything is installed let’s see how the Plastic SCM Mylyn plug-in works. In order to do that, open your Eclipse, and select “Window -> Show View -> Other”. Inside the "Show View" window all the Mylyn view will be available to be included in the Eclipse perspective.


Now, you’re ready to configure Plastic SCM to work with Mylyn. Click on “Preferences -> Team -> Plastic SCM for Mylyn.”


Now, you're ready to try the Mylyn plug-in.

For more information see the "Mylyn migrate to Plastic SCM 4.0" post. Enjoy it!


Plastic SCM 4.1.10.404 External Release is out!!

$
0
0
This post shows the release notes for Plastic SCM 4.1.10.404 external release. For a detailed listing of all changes, refer to release notes.
Visit Plastic SCM download page to install Plastic SCM. It’s an easy process.
You can suggest and vote for new features on the Plastic SCM Forum page and to tell us what you think about Plastic SCM.
Now, see the full list of new features and issues resolved in this release.

Features

Different Enconding
The DiffTool and the MergeTool have been improved because they now support files with different encodings. The user can choose a different encoding for the three different contributors and also for the merge result file.
On the “Preferences View” you can still set the default encoding. This option will be used when the specific contributors encoding can’t be detected. On the other hand, the custom contributor encoding will not be used when a specific contributor encoding is detected.
If the configured encoding is set to “NONE”, the encoding will depend on the contributors encoding. There are several possibilities:
  • If both merge contributors are having the same encoding the merge tool will use that certain encoding for the result merge file.
  • If only one of the merge contributors has changed the encoding, that new encoding will be used for the result merge file.
  • If both contributors change the encoding, the result encoding will be the less restrictive one.
  • If the encoding is not detected the content will be processed in raw mode
Finally, the UTF-8 encoding by default will not write the BOM field, only if the encoding has been changed to UTF-8 with BOM is when the BOM will be written into the result merge file. The UTF-8 BOM filed is not added by default anymore.

Bugs

Annotate
The annotate operation was throwing an error when the operation was executed for a checked out item located inside an xlink. Now it’s fixed and working.

Enjoy it!
Viewing all 258 articles
Browse latest View live