Showing posts with label Source Code Control. Show all posts
Showing posts with label Source Code Control. Show all posts

Tuesday, February 11, 2014

Tortoise SVN - Update Failed! - Adapting an SSIS development approach for Window Server 2008

Trained some new developers on a SQL Server BI solution that required them to edit various source files - including SQL Server Integration Services (SSIS) packages.  Well immediate after the orientation to the Version Control repository a new developer received an error attempting to update the local repository.


Turned out a couple of assumptions or constraints were in play
1.       Development of SQL Server Integration Services packages is easier from a server console.  The connection rules aren't an issue.  The connection to source systems is usually - not always - but usually faster.  Running a long-running package doesn't interfere with the developer's ability to do other programs on their laptop… or close it up and go home while the long-running process churns on.
2.       Using TortoiseSVN to edit-merge-commit from a remote repository running on a file server was a simple and elegant version control approach.
3.       Having the source code on a shared folder on the server's local file system was convenient
4.       When there were two developers and a Server running Windows Server 2003, this generally wasn't a problem - we weren’t stepping on each other's folders and/or 2003 security was fairly lenient.

After migrating this technique to Windows Server 2008, these error became apparent quickly.
1.       It was still convenient to develop SSIS packages from the server's console.
2.       The shared folder on the local file system became problematic.  The 2008 security (it behaves like Windows Vista or Windows 7 does) became more finicky about file ownership and ability to edit and delete files with another's ownership.
3.       Multiple developers currently in edit or merge, but not yet commit steps would collide with each other if one another's work overlapped in the file system.

The solution I took was to have each developer create their own 'SourceCode' folder under their 'Documents' folder (i.e. C:\Users\%USERNAME%\Documents\SourceCode). 
Tradeoffs are it is a bit trickier location to which to navigate.  And the redundant copies of the code for multiple developers have a minimal impact on storage.  The advantage, of course, is a truer work process with SVN - each developer is forced to develop SSIS packages separately editing and merging; mitigating most conflicts through collaboration.

Wednesday, March 30, 2011

Source Code Control - SQL Server/Business Intelligence Stack



    One of the items weighing on my mind is that I have not introduced a true source code control process for my team working primarily with the SQL Server business intelligence stack. A source code control process is not need on this team to 'control' or 'audit' the work among the team, but provide some basic tools for working together:





  1. The ability to work on source code, being confident you are working against the latest and greatest version your team has been able to put together.


  2. The ability to develop source code, and review your work for quality before contributing to the team, and be confident your work will not accidentally override another, or be overridden


  3. The ability to review changes history on code regardless of author, to investigate behaviour at past point and/or rule out "code changes" as the cause of a problem


  4. Current methods



  5. All dev staff RDP into the development server to work on core, server-side projects - especially SSAS and core SSRS


  6. A few of us tend to work locally on SSIS, SSRS, and SQLscripts, then use sync toy to move files up to a file server… use synctoy on the development server to sync files from the share drive down


  7. All staff work on SQL scripts from their own machines, and kind of hope we don't collide with each other




  8. Based on inquiring in and around my organization, and also bringing it up during 'group therapy' session at the Sacramento SQL Server User Group, options included Visual Source Safe, CVS (which based on rudimentary research, actually SVN would be preferred), and Git, which I've been reading about mostly from the open source world. Upon researching Visual Source Safe, learned this old file-based standby is being deprecated by Microsoft in favor of their true server product - Team Foundation Server)



    Alternatives



    Visual Source Safe





























    AdvantagesDisadvantages


    Integration with Visual Studio (for SSIS, SSRS and SSAS)



    License cost/ Procurement process required



    Uses existing file server



    Requires a checkout-edit-checkin workflow





    Is actually in de-support by Microsoft in favor of Team Foundation Server (TFS)





    SVN (client-side tool - TortoiseSVN)

































    Advantages



    Disadvantages



    Free/Open Source



    Lack of integration with Visual Studio (for SSIS, SSRS and SSAS) - 3rd party tool available for $49/seat



    Supports an Edit-Merge-Commit workflow





    Uses existing file server





    http://www.codeproject.com/KB/dotnet/SourceControl_VSNET.aspx





    Git (client-side tool - mySysGit)







































    Advantages



    Disadvantages



    Free/Open Source



    Lack of integration with Visual Studio (for SSIS, SSRS and SSAS)



    Supports an Edit-Merge-Commit workflow





    Uses existing file server?



    Appears to be more geared to storing a project on the open internet (i.e. http:)





    Focuses a lot more on branching and merging - good for bazaar-type development, but not as much value for a small focused (relatively) team





    Team Foundation Server

































    Advantages



    Disadvantages



    Integration with Visual Studio



    Not currently available in our organization. Another shop is evaluating it - need to assess and leverage their efforts, as well as determine licensing



    Other dev lifecycle tools





    Integration with SharePoint