Search Results for

    Show / Hide Table of Contents

    Git and SCM guidance

    This article provides an overview on working with Intent Architect and SCM (Source Control Management) systems (such as Git) including details on which files should or should not be committed and versioned into source code repositories.

    Understanding Intent Architect and SCM

    Intent Architect is not inherently aware of SCMs, it merely reads and writes files to your file system, allowing users to use their own choice of SCM systems and associated tooling, but Intent Architect is intentionally designed with the use of SCMs in mind.

    In particular, it is intended that Intent Architect files are committed into SCM repositories alongside normal source code files in the same commits. This enables checking out other versions or branches of a code base using your SCM and having the Intent Architect Designer metadata correlate with the committed source code. The other benefit of this approach is that teams practicing automated CI (Continuous Integration) can run the Intent Architect Software Factory CLI tool as part of their CI process to provide another quality check.

    Another aspect of intentionally designing Intent Architect with SCMs in mind is the format and layout of files. Careful consideration has been applied as to whether Designer metadata is saved in its own file per element or embedded in the file of a parent element. For example, in the Domain Designer each Class is saved as a separate file, with all aspects of it (e.g. Attributes, Operations, Constructors, etc) being saved in the same file. This means that you are unlikely to have merge conflicts with other developers unless you are working on the same Class on the designer. If there is a merge conflict, all files are deliberately stored in a clear text format allowing the conflicts to be resolved using regular merge tools.

    Files and Folders to always include

    When you create a new Application in Intent Architect and you keep the default layout structure settings, the solution folder will have an intent subfolder housing all the Intent Architect files that are made up of solution and application information as well as their designer metadata.

    Should you alter the layout structure when you create a new Application, the files and folders to include to source control are:

    File, Extension or Folder Description
    .isln Intent Architect Solution
    .application.config Intent Architect Application
    modules.config file Installed modules registry
    Intent.Metadata folder Designer Metadata
    .application.deviations.log / .application.deviations.xml Intent Architect uses this to "audit" which parts of the code base are allowed to deviate from the generated pattern and where it was signed off by authorized users.
    .application.output.log / .application.output.xml Intent Architect uses this to track files under management so that it can determine when files might need to be deleted or renamed.
    intent.repositories.config file Solution-level asset repository configuration

    Folders which should always be ignored

    .intent folders should always be ignored, they contain data like downloaded/restored modules and other cached data.

    Configuring Git (.gitignore files)

    As of version 3.1.8, Intent Architect has an option during creation of a new Solution or Application to add or update the appropriate .gitignore files.

    If your application or solution was created in a version of Intent Architect less than 3.1.8, you can manually add the following to your .gitignore file:

    # Intent Architect
    
    **/.intent/*
    !*.application.output.log
    
    • Edit this page
    ☀
    ☾
    In this article
    Back to top Copyright © 2017-, Intent Software Pte Ltd.