Login / Register  search  syndication  about

          Ryan Farley's Blog

Ryan Farley on .NET Development with a focus on CRM Development for SalesLogix

Excluding SalesLogix Model Files from Source Control

I love working with SalesLogix models in source control. Specifically with Git. However, whether you're using Git, or some other source control system, there are certain files in a SalesLogix model that you do not want to include in your source control. Many part of the files in an exported SalesLogix model are automatically generated by the Application Architect and by the build process when you build your web platform. Having these files under source control would only complicate things when working with multiple developers since you'd each need to merge these automatically generated files with each pull/checkout from source control since they change every time.


Model Files to Exclude

Let's take a look at which files to exclude from source control and why.

  1. ModelIndex.xml - This file is a temporary cache created by Application Architect as you access objects. This file can be deleted and will be automatically created again as needed. This is a volatile file and if included in source control would require constant merging with no benefit.
  2. Model\Deployment folder tree - The deployment folder in the model is where the Application Architect will create all of the actual SmartPart.ascx files and other deployable items from the QuickForm meta data and entities in your model. This is not to be confused with a "deployment" per se, but this is a staging area for things to be deployed that are created when you build your platform. As you create, modify, delete items in the model and then build your web platform all of the deployment files are generated based on what is in your model. Including these files in your source control system will complicate things since these files are created all over again as you build your web platform. To keep your folder structure in tact, I usually will exclude the following from source control:
    • Model\deployment\webroot\common\SmartParts\**\*
    • Model\deployment\webroot\common\SmartParts\**\**\*
    • Model\deployment\webroot\common\SummaryConfigData\*
    • Model\deployment\webroot\common\bin\*
    • Model\deployment\webroot\common\*
    • Model\deployment\common\bin\Sage.Entity.Interfaces.dll
    • Model\deployment\common\bin\Sage.Form.Interfaces.dll
  3. In addition to what is excluded from the SalesLogix model, using file merge tools, such as KDiff, DiffMerge, etc, you will have additional copies of files created that you'll want to exclude. When working with Git Extensions you'll see these copies of files with .LOCAL, .REMOTE, .BASE extensions. 


Ignoring Files with Git

As I mentioned before, I love Git. To exclude files from a Git repository you simply create a text file in the root of the repository named ".gitignore" and you can add files or directories to ignore (or to not ignore by prefixing the file or directory name with a "!"). This is what the contents of my .gitignore file looks like for a standard SalesLogix model:

# Files created from merge tools
*.BASE
*.LOCAL
*.REMOTE
*.orig

# Model files that are auto-generated
[Mm]odel[Ii]ndex.xml

# Standard deployment files
*/deployment/webroot/common/[Ss]mart[Pp]arts/**/*
*/deployment/webroot/common/[Ss]mart[Pp]arts/**/**/*
*/deployment/webroot/common/[Ss]ummary[Cc]onfig[Dd]ata/*
*/deployment/webroot/common/bin/*
*/deployment/webroot/common/*
*/deployment/common/bin/[Ss]age.[Ee]ntity.[Ii]nterfaces.dll
*/deployment/common/bin/[Ss]age.[Ff]orm.[Ii]nterfaces.dll


Ignoring Files with Git Extensions for SalesLogix

To make all of this easier with working with Git for source control with a SalesLogix model, I have updated Git Extensions for SalesLogix. The menu in Application Architect now includes a menu option to edit your .gitignore, and if it does not yet exist, it will give you the option to add all of the standard entries I have mentioned above.

 

In addition, when you initialize a new Git repository for a model from Application Architect the .gitignore file will be automatically created for you wit the entries mentioned above. Note, when you open a model in Application Architect and click the browse button on the Git Extensions toolbar it will detect if the current model has a Git repository or not and will prompt you to create the repository if one does not yet exist.

To download this update to Git Extensions for SalesLogix, just download the new DLL and copy it over the old one. Take a look a the project wiki for full installation steps.

What's This?
  
Bookmark and Share

About Ryan Farley

   Ryan Farley is the Director of Development for Customer FX Corporation and the creator of slxdeveloper.com.

Don't miss Ryan's Git for the SalesLogix Developer series!
Or the SalesLogix SData series!



Related Content
   What is the name of the Complete an Activity Form in SalesLogix?
I am trying to customize the "Complete an Activity". However, I am unable to find it. Can someo
Posted on May 16, 2012 by SalesLogix Support to SalesLogix Questions & Answers
 
   Is it possible to do a SalesLogix Mail Merge on Lookup Results without saving them as a Group?
Is there a way to do a mail merge based on lookup results. For example, let's say I do a look up by C
Posted on May 16, 2012 by SalesLogix Support to SalesLogix Questions & Answers
 
   How does the Record Changes property work on a datagrid?
Can anyone explain why the 'record changes' property check box on a datagrid (in my case Opportun
Posted on May 14, 2012 by SalesLogix Support to SalesLogix Questions & Answers
 
   How can I create seperate icons that can be used depending on which remote office they are at? Are there specific parameters that I can use in the Shortcut?
I have users that travel between offices that are running SalesLogix remote office and would like to crea
Posted on May 14, 2012 by SalesLogix Support to SalesLogix Questions & Answers
 
   What is wrong with my sql Statement?
When I try to execute the following sql in script i get the error failed to parse sql. However, if i r
Posted on May 11, 2012 by SalesLogix Support to SalesLogix Questions & Answers
 
Comments

 

Ryan Farley's Blog said:

For anyone who uses Git Extensions for SalesLogix, I've released a small update that adds some core functionality and makes it possible to complete the entire scenario of setting up and using Git with a SalesLogix project - all from within the SalesLogix

December 2, 2009 5:55 PM
 

Ryan Farley's Blog said:

When using Git, or really any source control system, you don't want everything in your SalesLogix model to be under source control. There are some files that the Application Architect uses for it's own purposes and volatile files that have no

September 22, 2010 5:30 PM
 

SalesLogix and Subversion « Bits, Bytes, and Beats said:

Pingback from  SalesLogix and Subversion « Bits, Bytes, and Beats

November 4, 2010 11:24 AM

Leave a Comment

(required)  
(optional)
(required)  
Add
All contents Copyright © 2012 Customer FX Corporation
Customer FX Corporation
2324 University Avenue West, Suite 115
Saint Paul, Minnesota 55114
Tel: 800.728.5783

  Follow @CustomerFX on twitter
Follow the best news, tips, and articles
  Subscribe to Customer FX on youtube
Watch SalesLogix tutorial videos from Customer FX
Login / Register