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 these developer series from Ryan:


Related Content
   Is there an issue with the SalesLogix Web Administrator version 8.0 in regards to adding users to Team Membership?
Question: In my database, it appears two users belonging to the same teams, have access to a different am
Posted on May 22, 2013 by SalesLogix Support to SalesLogix Questions & Answers
 
   FREE Open Source Add-ons for SalesLogix version 8 web
SalesLogix is developing a number of FREE add-on solutions for SalesLogix version 8 web. Some of the
Posted on May 22, 2013 by Scott Weber to SalesLogix Product Blog
 
   What is the best way to delete unused Groups in SalesLogix?
After several years of using SalesLogix – we have hundreds of groups, most of which are no longer used as
Posted on May 21, 2013 by SalesLogix Support to SalesLogix Questions & Answers
 
   Can the SalesLogix Application architect's build process be automated?
Can the SalesLogix Application architect's build process be automated, or called from a batch file? W
Posted on May 16, 2013 by SalesLogix Support to SalesLogix Questions & Answers
 
   Is it possible to Sync SalesLogix Attachments based on Account Manager?
Is it possible to only sync SalesLogix Attachments from the accounts where the user is the account manag
Posted on May 15, 2013 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 © 2013 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