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.391 Release is out!!

Thursday, January 24, 2013 Luix 0 Comments

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!

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 for JIRA

Monday, January 21, 2013 Amalia 3 Comments

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.


3 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.

Using Plastic SCM to sync with the junior github repo

Tuesday, January 15, 2013 Pablo Santos 2 Comments

Update 2014/08/02: This blog post was written before GitSync was finally released. Now it is a key part of Plastic SCM 5.0 and higher and it is available out of the box.

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:
Pablo Santos
I'm the CTO and Founder at Códice.
I've been leading Plastic SCM since 2005. My passion is helping teams work better through version control.
I had the opportunity to see teams from many different industries at work while I helped them improving their version control practices.
I really enjoy teaching (I've been a University professor for 6+ years) and sharing my experience in talks and articles.
And I love simple code. You can reach me at @psluaces.

2 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.388 Release is out!!

Monday, January 14, 2013 Amalia 0 Comments

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!!

0 comentarios: