Archive for the 'Version Control' Category

Jan 06 2012

SCM Anywhere Standalone 2.3 Released!

Published by under General,Version Control

I’m glad to announce the release of SCM Anywhere Standalone 2.3 today.

Based on the feedbacks from our customers, our developers put their focus mainly on a friendlier user interface and better user experience in this new release. For example, the annoying ‘cancel’ dialogs which flashes on and on each time you log in the client has been greatly reduced and you can perform better binding/ unbinding functions using the new version.

To find out more about the exciting new features, you can check out our News Page.

If you would like to try it out by yourself, 30-day fully functional free trial is available for you.

If you are looking to upgrade to this latest version, please check out this article:
Upgrade to SCM Anywhere Standalone 2.3

To stay tuned, you can follow us on Facebook or Twitter.

No responses yet

Dec 13 2011

Dynamsoft is about to offer TFS hosting service

Published by under Version Control

After two weeks of hard work, our team finally finished everything and we are launching Team Foundation Server hosting service this week.

Sign Up Today to Get 3-Month Free Trial

Here at Dynamsoft, our mission is to ease a little burden from busy developers’ shoulders. After building SourceAnywhere (version control) and SCM Anywhere (combined version control and bug tracking), we offered SaaS (Software as a service) editions in response to customers’ request.

Over the past 5 years, our expertise in hosting service grew steadily with our client base and gained great trust. Recently some clients are inquiring about Team Foundation Server.

There have been a number of TFS SaaS providers on the field. We are committed to offering the Most Professional TFS Hosting service. Why choosing Dynamsoft?

Sign Up Today to Get 3-Month Free Trial. Enjoy!

One response so far

Nov 07 2010

New VSS Import Tool: Faster than Ever

Published by under SourceSafe,Version Control

SourceAnywhere

SQL server-based version control software. Supports integration with Visual Studio, Eclipse, Dreamweaver and other IDEs; cross-platform access; unique caching mechanism for remote performance.

It offers special optimizations for VSS users. Familiar UI and working style makes developers feel right at home, while Import Tool ensures effortless data migration from VSS.

free source control

source control software

VSSImportTool New Design

During the past months, we received quite a few feedbacks regarding our VSS Import Tool. Knowing how important the history of source code in VSS and easy migration to SourceAnywhere means to our customers, we decided to improve the VSS Import Tool to better serve our users.

After several weeks’ effort, we finally worked out an impressive version. According to one of our users, “I’m very pleased by great acceleration of importing (from 10 days to 8 hours)”.

Main improvements of VSS Import Tool:

* Greatly fastened the import speed by introducing multi-threading technology
* Enabled users work normally while import is in the process. Users are able to access/edit the data once the latest versions of files/projects have been imported
* Added support of importing the data from the error point if the process fails
* Optimized the import of Label
* Optimized the project selection. Refreshing the projects is much faster now.

Background

Visual SourceSafe uses file system to store the source code, while Dynamsoft SourceAnywhere puts the data in SQL Server for enhanced security and integrity. With a VSS Import tool, users can easily migrate all their data histories from VSS to SourceAnywhere.

The pain is that, most users have been using VSS for many years and have quite large VSS DBs. Plus, VSS API doesn’t provide full interfaces to interact with VSS database. So migration away from Visual SourceSafe in an accurate and fast way is not easy.

The previous versions of SourceAnywhere offered a VSS Import Tool, but the old version has its glitches. Our team decided to re-design VSS Import tool for a better user experience.

Problems in the old version of VSS Import tool

1. The “label” import was not so smooth. Too much time is spent on importing the labels and this process has a high error probability. Usually there are many labels in a VSS database.

2. The tool is single threaded, so it cannot take advantage of multi-CPU systems.

3. The import can be time-consuming sometimes for a big VSS DB. And users can only start using/evaluating SourceAnywhere after the whole import process is done.

4. Once an error occurs during the import, the whole process needs to be started from scratch.

SourceAnywhere features:

1. Data is compressed before storing in SQL Server.

2. SourceAnywhere calculates the data delta and performs compression before checking-in data to the SQL Server.

3. In SQL Server, item histories (table) and file content (table) are in reference relationship. They are stored separately so the content of files can be updated separately.

4. When performing Check In or Check Out on the latest version of an item, only the content of the latest version and the nearest full version (Full version is in contrast to Delta. Every several versions, a full version is created as a base. Latest version = nearest full version + delta.) are needed.

5. Label, as a tag/collection on the existing histories, doesn’t modify any items. Thus it doesn’t affect user operations.

In view of above considerations, we redesign the import tool in the new version.

Import Steps

The new VSS import tool separates the whole import process into 5 modules. Each module uses a separate thread.

(modules in VSS import tool)

1. Import Monitor: Monitors the whole import process and lists the ongoing steps and their statuses. A dialog box prompts to notify the user a successful import.

2. Import Item: Imports anything about an item (name, location in a project tree, history version info, etc.) but the label/pin info and file content. A corresponding Import File Content (Module 3) thread will be fired once an item is imported. This way, items and file content can be imported simultaneously. A new import process is needed if crash, cancel or fatal error occurs during this step.

3. Import File Content: Imports the content of all files. This step runs in two concurrent threads.

First the module scans for items that have been imported and then starts importing the according file content.

The content import consists of the following 4 parts in sequence: import the latest version of an item; import the nearest full version; scan and see if there are any items that are ready (If yes, import their latest versions and according full versions. Otherwise, continue to the next part.); import the old versions of items.
four parts in Import File Content

(Steps in Import File Content)

Once an item’s nearest full version is imported successfully, you can perform version control operations, such as Check Out, Get, Check In, Undo Check out, on its latest version.

If your machine doesn’t have enough resources to run 2 concurrent threads, you can cancel/pause the content import. It’ll be triggered automatically when there is another item imported or you can manually start the tool. Also, you don’t need to worry if some errors occur during the content import. With break-point transmission applied to the new design, restarting the import tool will restore to the last interruption point.

4. Import Pin: Imports all files’ Pin status. This step will take place only after Import File Content completes successfully. So if an error or a cancel occurs in this step, it will start from this step next time rather than importing all the content from the beginning. However, the status of the current step won’t be kept. Thus, you may find error messages in the log file saying some Pin statuses have already been imported but it’s OK.

5. Import Label: Imports selected Labels. Arriving here, you can begin using SourceAnywhere at ease since Label won’t update existing items in the repository. You can select the labels to be imported or the tool will import all the labels by default. You can click Pause or Cancel during the process and re-select the labels. Interruptions during the Label import can only be restored to the beginning of this part. This case, you may find errors like the label already exists but it’s fine.

You can click “Complete” button to finish the whole import.

Import Selected SourceSafe Projects

With previous versions of VSS Import Tool, during the initialization of Select SourceSafe project, the whole directory tree will be displayed before you’re able to perform the next step. When the directory tree is large, the process can be really time-consuming. You have to wait for the whole directory tree to be listed even when you only want to import $/ or a subdirectory under $/. Obviously, the old design is inconvenient and not so user friendly.

In the new version, the operation of unfolding directory tree is performed in a separate thread. The directory tree is expanded layer by layer. First it expands the subfolders under $/ and then expands each subfolder recursively. This way, it’ll be much faster for users to select $/ or a subfolder under $/. Once a directory is selected, you can carry on importing without further waiting and the thread listing the directory tree will be ceased automatically.

One response so far

Oct 28 2010

SourceAnywhere V.S. Subversion

Published by under Version Control

SourceAnywhere: A SQL Server-based version control software designed to be a replacement of Microsoft Visual SourceSafe (VSS). It is developed for both local and geographically distributed development teams.

SourceAnywhere Hosted: Sign Up

SourceAnywhere Standalone: Free Trial Download

Subversion (SVN): An open-source revision control system, which aims to be a compelling replacement for CVS.

Both SourceAnywhere and Subversion are great version control products. So which one is the right product for you?

SourceAnywhere is THE ONE for Experienced VSS Users.

If you are an experienced Visual SourceSafe user, SourceAnywhere is definitely the right choice. First, all your source code history can be easily imported to SourceAnywhere. Second, the resembling user interface makes developers’ learning curve almost zero.

Otherwise, it depends on which working mode you prefer. Typical working flow in SourceAnywhere is “(multi) check-out — edit — (merge) check-in”, while typical working flow in SubVersion is “edit local copy — (merge) commit to server”. In another word, with SourceAnywhere, when you edit a file, you know whether other people is also editing it. With SubVersion, you don’t know.

More detailed comparison follows. I will try to be unbiased in the comparison. Comments which disagree with me are well welcomed. :)

Where Subversion is better than SourceAnywhere

If any of the following situations apply to you, I recommend Subversion:

  • Command Line SubVersion Command Line is suitable for auto scripting. Although SourceAnywhere provides Command Line Client as well as Java GUI Client, SourceAnywhere’s main focus is for IDE integration on Windows platforms. If you are working on OS X, Subversion command line provides better flexibility.
  • Open Source Project SubVersion suites well for personal and open source projects. Subversion, released under an Apache-style license, is an open source system. People can get a version control system with no regard to cost.
  • Integration with Windows Explorer Subversion supports integration with Windows Explorer while SourceAnywhere does not.
  • Third Party SupportSVN is better supported among third party tools. For example, Hudson and Redmine.

Where SourceAnywhere is better than Subversion

If any of the following situations apply to you, I recommend SourceAnywhere Standalone:

  • Tech Support Dynamsoft provides phone, email, forum, and 16 hours per weekday online chatting support. For the difficult issues, an online meeting session will be scheduled. A developer from the R&D team is involved when necessary.And, all the tech support is free.
  • Microsoft Platform Support Dynamsoft is a Microsoft Gold Certified Partner. SourceAnywhere passed Optimized for Microsoft Visual Studio, Certified for Windows Vista, and Certified for Windows Server. SourceAnywhere offers better integration with Microsoft products than Subversion.
  • Security Powered with SSL Protocol, Sophisticated Password Policy, Database Encryption, IP & MAC Filter Rules and other security tactics, SourceAnywhere Hosted online source control is designed to be more secure than most in-house deployment.For more information about security features, please refer to the white paper: Secure Your Source Code.
  • Web development Besides of Dreamweaver integration and cross-platform access, SourceAnywhere offers a unique feature, Web Deployment through FTP. SourceAnywhere can automatically detect which files are changed, and only transfer the changed/added files.

Where SourceAnywhere and Subversion are different

  • User Interface SourceAnywhere has VSS style UI. There is virtually no learning curve for developers who know Visual SourceSafe already.
  • Server Setup and Maintenance SourceAnywhere Server requires Microsoft SQL Server (Express). For SVN, you need to set up either Apache2 or an “svnserve” server.
  • Distributed team Both Subversion and SourceAnywhere are designed for local and distributed team. SourceAnywhere takes a step further. Its cache server can greatly improve distributed team’s productivity.
  • Product integration SourceAnywhere comes with GUI client, command client, SDK, Eclipse plug-in, Visual Studio integration, Dreamweaver/flash integration, cross-platform client. All are in one product.

    Subversion comes only with core product. For IDE integration, cross-platform access and other tools integration, you need to deal with several independent sources.

One response so far

Oct 07 2010

Version Control and Visual Studio 2010

Published by under Version Control

All editions of Visual Studio 2010 support the source control integration feature but the Express Edition. In this article, I will demonstrate how to use version control in Visual Studio 2010. For ease of the screenshots and article writing, I take SourceAnywhere Hosted, an online version control tool, as the example. Other MSSCCI compatible or VSPackage solutions should work in a similar way.

Before everything else, we need to put our project under source control.


The first developer adds a project to Source Control

Adding a new or existing project to source control is easy:

1. Start Visual Studio 2010, and click menu Tools -> Options -> Source Control.
2. Choose your favorite in the Current source control plug-in combo box.
3. Open your project/Create a new project, and then add the project to source control by right-clicking the solution in Solution Explorer and selecting the content menu Add Solution to Source Control.

add-to-source-control

4.  Input the credentials for login and choose a server path. And the project will be added to source control successfully.

Now you can perform the basic version control operations in the right-click content menu in Solution Explorer. More commands, such as Properties, Change Source Control, etc, can be found under the menu File->Source Control.

version control in Solution Explorer



Other developers retrieve the project from server

Most of today’s projects need the collaboration of a team. Therefore, after the first developer adds the project to source control, other developers working on the same project need to retrieve these files from server to local and possibly upload some local files to server.

To retrieve files from server, we can click menu File -> Source Control -> Open from Source Control in Visual Studio 2010. After inputting the login info, the Get Project from Dynamsoft SAW Hosted to Local dialog box is displayed. In the text box, type the desired local path or click the ellipses (…) to browse for one.

Open from Source Control

If a developer has been working on the project for some time and thus has a local project folder, I suggest he chooses a different project path other than the existing folder.

For files exist locally but not on server, we need to decide whether to share the files with other team members. If yes, we can add the files to Solution Explorer using Add | Existing Item. A yellow plus icon is displayed before the file name, and we can perform Check In to commit the files to the server.

add-an-existing-item



Simultaneous development

Most of the times, developers don’t need to work on the same file at the same time. But there are situations where parallel development is needed.

Multiple check-outs
In Solution Explore, files checked out by others appear with a human glyph while files checked out by ourselves appear with a green check mark. If a file is checked out by two developers, merge happens when the second check-in is performed.
Depending on whether there are conflicts, visual merge or auto merge occurs. About how merge works for a file, you may read File Merge.

Branch

Branch can be used for many purposes, such as, a branch for a minor feature or bug, tailoring program behavior in several files for two clients who have the virtually identical needs, etc. More information can be found in Branch.

Some version control solutions, such as SCM Anywhere, support Folder Merge.



SAK and SCC (source code control) info in Visual Studio 2010

After adding a project/solution to source control in Visual Studio 2010, where is the binding info stored? The behavior depends on the design of SCC plug-ins. Some put the info within the .sln/.prj files and others write it to external MSSCCPRJ.SCC files.

Take Microsoft Visual SourceSafe for example. In older versions (previous to version 6.0c) of VSS, the binding information was stored directly in the .sln and .proj files. Since VSS 6.0c, all binding information is kept locally in MSSCCPRJ.SCC on each developer’s machine.

Most MSSCCI compatible version control solutions use the second design. When the source control binding is established, some lines similar to the followings are added to the .sln files.

GlobalSection(SourceCodeControl) = preSolution

SccNumberOfProjects = 2
SccLocalPath0 = .
SccProjectUniqueName1 = FormsApplication1\\FormsApplication1.csproj
SccLocalPath1 = .
SccProjectFilePathRelativizedFromConnection1 = FormsApplication1\\

EndGlobalSection

And the following lines are added to the .prj files. The “SAK” might stand for Should Already Know.

<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>

Meanwhile, a local, client-side MSSCCPRJ.SCC file is generated by the plug-in for every directory that contains source-controlled files.

One response so far

Sep 16 2010

Source Control for Stored Procedure in SQL Server 2008

Published by under Version Control

This article explains how to source control stored procedures and other objects in SQL Server Management Studio 2008. We use SourceAnywhere Standalone for example, which is a SQL-based source code control software designed to be a replacement of Microsoft Visual SourceSafe. Other MSSCCI compatible source code control solutions work in a similar way.

The detailed steps are as follows:

1) Open SQL Server Management Studio.

2) Initiate source control for SSMS. Please click menu Tools | Options | Source Control. In the dropdown list, choose Dynamsoft SourceAnywhere Standalone 2.3 as the current source control plug-in.


3) If we have an existing application solution, we can click menu File | Open | Project/Solution to open it in Solution Explorer.
And then we can add the solution/project into version control. Right-click on the solution/project and then choose Add Solution to Source Control in the content menu.

You can also start a solution from the ground. Click menu File | New | Project and choose a proper template. Don’t forget to check the Add to Source Control option.

4) Put the correct server info and credentials.
SourceAnywhere login

5) In the project tree, choose a location to put the solution/project.
http://kb.dynamsoft.com/images/sawstd/add-to-sawstd.PNG

At the end of the step, the solution/project is under version control.

6) Now it’s time to add a new or existing stored procedure into the solution.

To create a new stored procedure, in Solution Explorer, we can right click on the project name and hit the Add | New Item menu.

Under SQL Server Query, navigate to the Stored Procedure category and choose a template.
stored procedure template

Adding an existing store procedure is easier. Instead of selecting New Item in the Add popup menu, we choose Existing Item.

7) Finally, we can perform the basic source code control operations in Solution Explorer, such as Check Out and Check In, by right clicking on an object. All the objects checked out to be edited can be found in the Pending Checkins window.


If you want to try SourceAnywhere Standalone, please install its Windows GUI Clienton the machine where SQL Server Management Studio resides. The can be integrated with all MSSCCI compatible IDEs, such as Visual Studio 6.0, 2005/2008/2010. Downloaded link:
https://www.dynamsoft.com/Secure/Register_ClientInfo.aspx?productName=SAWstandalone&from=FromDownload

2 responses so far