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

Monday, April 29, 2013 Luix 0 Comments

Plastic SCM 4.1.10.431 (Kioto) is ready to go!

You can get the full list of changes here. Visit the Plastic SCM download page to install or upgrade your Plastic SCM client / server setup.

You also can suggest and vote new features on the Plastic SCM Forum page and tell us your opinion about Plastic SCM or use the User's Voice channel, as well.

Let's review what's new this week. Probably you'll notice some issues that you sent to us:


Performance

Update and status operations They have been improved significantly when working with cloaked items. Some figures:

Workspace with 192.818 files, 33.877 folders and 400 cloaked rules

Version 4.1.10.426
Update (Nothing to update)
With cloaked items: 644846 ms
No cloaked items: 18938 ms

Status (No changes)
With cloaked items: 326089 ms
No cloaked items: 9376 ms

Now
Update (Nothing to update)
With cloaked items: 21419 ms
No cloaked items: 18127 ms

Status (No changes)
With cloaked items: 9485 ms
No cloaked items: 8814 ms


Bugs

Fast import: Repositories exported from Git version 1.8.x or upper that included spaces in the items paths were failing

Merge to: This operation could fail when a moved to apply operation included more changes inside it.

Symlinks: Working with a Windows client, the update operation returned a "The type initializer for 'Mono.Unix.Native.Syscall' threw an exception. at Mono.Unix.Native.Syscall.getcwd(StringBuilder buf, UInt64 size)" message error when a symlink had to be removed.

Admin tool: The database migration to SQLite was not migrating the branches creation date correctly.

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.

A new version of SemanticMerge is now out: 0.9.20

Thursday, April 25, 2013 Pablo Santos , 0 Comments

We just published a new release of SemanticMerge 0.9.20 and you can download it at www.semanticmerge.com.

Last two weeks have been pretty intense: we first released the public beta of SemanticMerge which got great coverage on reddit, twitter (thanks to @codinghorror, @migueldeicaza, @jonskeet, @shanselman and many others!!), dzone, InfoQ, blog posts by Paul Hammant, Jon Skeet and the list goes on and on, and then we started working on the feedback we got from reddit and our UserVoice site.

Just in case you don't know yet what SemanticMerge is about: it is a language aware merge tool (and diff tool too) that we've developed based on the merge technology we already included in Plastic SCM but applied at the code structure level instead of the file and directory level. So, SemanticMerge is basically able to deal with refactors... Find out more here.

What is new in 0.9.20

  • First we focused on startup performance which was frequently requested both in UserVoice, reddit and by email. It has been greatly improved.
  • Update issues: SemanticMerge comes with its own auto-update system (although we will first publish the 0.9.20 installer before activating the auto-upgrade, because we fixed a bug when several instances were open) and a few issues were reported, the most important one related to the impact on the startup time (fixed) and multi-instance update problems (fixed too).
  • Scroll issue in the conflicts list: a user reported that the position on the list of pending conflicts was not correctly kept making impossible to press some conflict resolution buttons when the list didn't fit on the screen. Fixed too.
  • Encoding issues: a French developer reported an issue dealing with accents in comments! We enabled the option to set the right encoding (manually if not autodetected.
  • Null on "view on result" after editing the result file manually: reported by another user and also detected internally. It is now fixed.
  • Fallback to the default merge tool if the language can't be handled: it was requested on UserVoice at it was already available before the launch, but we closed the UserVoice entry this week.
  • Installer was placing the binaries in the x32 program files branch: fixed before the launch too. Now we install in the user directory to ease the update process.
  • We've also closed some requests related to documentation since we now have docu to configure it with SVN (requested here), Mercurial and a few others... including Perforce!

Join the webinar

We'll be hosting a webinar next week (April 30th) so please do not forget to join since it will be the best place to share ideas, thoughts, learn more about the tool and the future plans and meet part of the team who made it possible :-)

You can register here https://www2.gotomeeting.com/register/520572034

What's next?

There's much more coming in SemanticMerge so we'd like to encourage you to keep sending feedback, sharing the tool with friends and helping us coming up with the best possible merge tool...ever :-)
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.

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

Wednesday, April 24, 2013 Luix 0 Comments

Plastic SCM 4.1.10.427 (Beijing) is now available for you to enjoy!

Get a list of the detailed changes in the release notes. Visit the Plastic SCM download page to install or upgrade your Plastic SCM client / server setup.

Suggest and vote for new features on the Plastic SCM Forum page and tell us your opinion about Plastic SCM or use the User's Voice channel, as well.

Let's review briefly what's new this week:


Bugs

Lock operation (AKA exclusive checkout): This operation has been protected against out-of-date objects, in order to avoid unexpected errors.

XMerge wizard: Some minor aesthetical issues has been fixed.

Replica: Several problems fixed related to this operation when it was executed among servers with different authentication modes:
  1. Any replication error was asking for credentials before showing an error message, which was confusing.
  2. Temporary profile cachinge was case sensitive, causing mistakes.
  3. Remote authentication issues were incorrectly prompting the user for local credentials (this was not needed).

That's all so far, folks!

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.

How to migrate CVS repositories to Plastic SCM

Thursday, April 18, 2013 calbzam 2 Comments

In this entry I will try to explain you how to migrate CVS repositories into Plastic SCM with two examples.

Things we need:

    A CVS repository
    Git installed
    Plastic SCM

  • OPTION 1: Using git cvsimport command, and then exporting from git to Plastic.
  • First of all, we have to be sure CVSROOT environment variable points to the CVS repository directory. A good choice is:

    setenv CVSROOT /usr/local/src/cvsroot

    You may need to checkout a repository from your server or a collaborating web like Sourceforge :

    cvs -d :pserver:username@projectname.domain.net:/cvs checkout REPO

    rsync -av rsync://gcgreatcode.cvs.sourceforge.net:/cvsroot/gcgreatcode/* gcode

    Once we have the CVS repository in a local folder, we have to create a new folder in order to store the git repository.

    mkdir gcode-git
    cd gcode-git
    

    Now we are ready to execute the first import command which is “git cvsimport” . A “.git” folder will be generated.

     git cvsimport  -v -d :local:/home/plastic/Downloads/gcode GC

    We need to provide the repository path and repository name. In the example the correct information is “/home/plastic/Downloads/gcode” for the path and “GC” for the repository name.

    Now, if we execute the “git branch” command, we can check that all the branches are correctly exported to git.

    We have now our repository inside git. At this point, we only have to create a git fast-export file, and import the file to Plastic SCM (same as we did with Mercurial migration), indicating the Plastic SCM server and repository name we want to create.

    git fast-export --all -C repo.fe

    cm fast-import myrepo@localhost:8087 repo.fe

  • OPTION 2: Using cvs2git (Tigris project : http://cvs2svn.tigris.org/cvs2git.html), and then exporting from git to Plastic.
  • cvs2svn/cvs2git is a tool that can be used to migrate CVS repositories to newer version control tools, including git. This tool is part of the cvs2svn project. Although cvs2git is considerably newer than cvs2svn, and much less well tested, it is believed that cvs2git can (cautiously) be used for production conversions.

    We can download the lastest version from the http://cvs2svn.tigris.org/cvs2git.html webpage.To install cvs2git from a tarball, simply unpack the tarball into a directory on your conversion computer (cvs2git can be run directly from this directory).

    Before executing the cvs2git tool we have to create a folder to store the results (e.g. cvs2git-tmp) and we also have to create two empty files (“git-blog.dat” and “git-dump.dat”). Those files will be used by the tool to store the result and the migration data. We execute cvs2git command indicating the CVS repository path:

    cvs2git \
     --blobfile=cvs2git-tmp/git-blob.dat \
        --dumpfile=cvs2git-tmp/git-dump.dat \
        --username=cvs2git \
        /path/to/cvs/repo
    

    This command will write in the two output files we created in the previous step. Next step, is to create an empty git repository in a new folder and initialize it:

    mkdir myproject.git
    cd myproject.git
    git init –bare
    

    This way we can load the dump files into the new git repository using the git fast-import command:

    git fast-import --export-marks=../cvs2git-tmp/git-marks.dat < ../cvs2git-tmp/git-blob.dat
    git fast-import --import-marks=../cvs2git-tmp/git-marks.dat < ../cvs2git-tmp/git-dump.dat
    

    On Linux/Unix this can be shortened to:

    cat ../cvs2git-tmp/git-blob.dat ../cvs2git-tmp/git-dump.dat | git fast-import

    Finally, as we saw in Option 1 example, we only have to create a git fast-export file and import it to Plastic:

    git fast-export --all -C repo.fe
    cm fast-import myrepo@localhost:8087 repo.fe
    

    And that's all! Now, it´s your turn to decide which option you prefer to migrate your repositories.

    Carlos Alba
    I joined the Plastic product experts team back in 2013.
    As a Plastic SCM product expert, I try to help teams moving from other version controls on a daily basis, decide strategies, train developers, answer questions, run benchmarks ...
    I love soccer and rock music. You can reach me at @albazamanillo.

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

    Monday, April 15, 2013 Luix 0 Comments

    Plastic SCM 4.1.10.426 (Athens) is now available!!

    Get a list of the detailed changes in the release notes. Visit the Plastic SCM download page to install or upgrade your Plastic SCM deployment.

    Suggest and vote for new features on the Plastic SCM Forum page and tell us your opinion about Plastic SCM or use the User's Voice channel, as well.

    Lots of interesting stuff published this week, for your interest:


    Bugs

    Visual Studio package: Fixed a "file is being used by other process" exception that could happen (not very often) when saving a file in Visual Studio 2008 (we just could reproduce this bug with this version of the IDE, but could apply to others).

    Workspaces management: Suppose that you have a workspace pointing to a repository that does not
    longer exist. Then if you tried to switch to another branch in another repository Plastic SCM failed (both on CLI and GUI).

    It's quite a strange case to remove repositories (properly speaking: disconnect), but this could happen after an evaluation of the product, when you start working normally and you want to reuse a evaluation workspace for production. So, there you are.

    Diff command: This operation was not working properly when it was executed from the command line outside of a workspace.

    New

    FogBugZ Issue Tracker extension: Now the Plastic SCM configuration panel for this extension includes a checkbox that allows enabling or disabling the checkin log feature:



    This feature writes automatically a report of the items changed on a recently created changeset after a checkin operation has been performed on the associated task.

    By default, this option is selected, therefore logging the checkin operations.
     Command line: A new option "--ancestors" has been added to the log command. This is useful to get the reachable parent changesets from the given changeset. This option works the same as the "git rev-list" command, for those that know how Git works. If the “from changeset” is given, it will be used as lower limit for all paths (not only for the “from changeset path”).

    This option doesn't show the changesets changes, but the changesets information.


    The following are some examples. Suppose that we have the following history in our Plastic SCM repository:
    Plastic SCM repository look like for the cm log --ancestor examples



    Example #1: All parents:
     
    cm log 8 --ancestors
    Changeset number: 8
    Branch: /main
    Owner: Borja
    Date: 01/04/2013 18:19:08
    Comment:
    ------------------------------------------------------------
    Changeset number: 7
    Branch: /main/task001
    Owner: Borja
    Date: 01/04/2013 18:18:39
    Comment:
    ------------------------------------------------------------
    Changeset number: 6
    Branch: /main/task001/tests
    Owner: Borja
    Date: 01/04/2013 18:18:20
    Comment:
    ------------------------------------------------------------
    Changeset number: 4
    Branch: /main/task002
    Owner: Borja
    Date: 01/04/2013 18:17:14
    Comment:
    ------------------------------------------------------------
    Changeset number: 3
    Branch: /main/task001
    Owner: Borja
    Date: 01/04/2013 18:15:13
    Comment:
    ------------------------------------------------------------
    Changeset number: 2
    Branch: /main
    Owner: Borja
    Date: 01/04/2013 18:14:31
    Comment:
    ------------------------------------------------------------
    Changeset number: 0
    Branch: /main
    Owner: all
    Date: 01/04/2013 18:12:55
    Comment: Root dir
    ------------------------------------------------------------

    Example #2:
    All parents with a lower limit

    cm log 8 --from=3 --ancestors
    Changeset number: 8
    Branch: /main
    Owner: Borja
    Date: 01/04/2013 18:19:08
    Comment:
    ------------------------------------------------------------
    Changeset number: 7
    Branch: /main/task001
    Owner: Borja
    Date: 01/04/2013 18:18:39
    Comment:
    ------------------------------------------------------------
    Changeset number: 6
    Branch: /main/task001/tests
    Owner: Borja
    Date: 01/04/2013 18:18:20
    Comment:
    ------------------------------------------------------------
    Changeset number: 4
    Branch: /main/task002
    Owner: Borja
    Date: 01/04/2013 18:17:14
    Comment:
    ------------------------------------------------------------

    Example #3: All parents with a lower limit on a different path

     
    cm log 8 --from=4 --ancestors
    Changeset number: 8
    Branch: /main
    Owner: Borja
    Date: 01/04/2013 18:19:08
    Comment:
    ------------------------------------------------------------
    Changeset number: 7
    Branch: /main/task001
    Owner: Borja
    Date: 01/04/2013 18:18:39
    Comment:
    ------------------------------------------------------------
    Changeset number: 6
    Branch: /main/task001/tests
    Owner: Borja
    Date: 01/04/2013 18:18:20
    Comment:
    ------------------------------------------------------------

    Example #4: Custom format


    cm log 7 --ancestors --csFormat="{changesetid} ({branch})"
    7 (/main/task001)
    6 (/main/task001/tests)
    3 (/main/task001)
    2 (/main)
    0 (/main)



    Enjoy!

    0 comentarios: