Skip to content

Files and locations

Where GitM stores things, on disk and in the repository.

On the workstation

Location Contents
C:\Program Files\GitM\ The installed add-in DLLs, runtime dependencies, and SolidWorks interop assemblies.
%APPDATA%\GitM\settings.json Per-user settings: connected repositories, active repo, auth method, preferences.
%APPDATA%\GitM\logs\ Rolling Serilog log files. First place to look when diagnosing.
Windows Credential Manager Personal Access Token, DPAPI-encrypted. Never stored in plain JSON.
Your working folder (you choose it in the wizard) The local clone of the repository — your actual CAD files.

File buckets (how GitM classifies what it tracks)

GitM no longer tracks only the five native SolidWorks extensions. Every file in the working folder is sorted into one of five buckets by a single shared classifier, and the bucket decides how the file is stored, whether it can be locked, and whether it gets a part number.

Bucket What it is Default extensions / rule Storage Lockable? Part number + BOM?
Source Native SolidWorks files .sldprt .sldasm .slddrw .sldlfp .sldblk LFS Yes Yes
Library Read-only reference parts anything under a library folder (default Library/) LFS No (never checked out) Vendor PN, appears in BOM
Derived Neutral / 2D exports .step .stp .iges .igs .stl .x_t .x_b .dxf LFS No No
Document Supporting documents .pdf .docx .xlsx .pptx .doc .xls .csv .txt .md binary → LFS, text (.txt .md .csv) → plain git No No
Image Pictures .png .jpg .jpeg .gif .bmp .tif .tiff LFS No No

Anything that matches none of these (and isn't gitignored junk) is left untracked.

  • Classification precedence: library folder → source → derived → document → image → other. A file under a library folder is treated as read-only reference regardless of its extension.
  • Working set vs. outputs. Source + Library make up the working set shown by default in the Files tab. Derived, Document, and Image rows are outputs — hidden until you click the Doc toggle in the toolbar. See Filter the task pane.
  • Editing. Source and Library are exclusive-checkout-or-read-only. Derived/Document/Image are editable and not locked — you check them in per file or in a snapshot, no lock dance.
  • Junk is never tracked. Simulation results, backups, and the SolidWorks Toolbox cache are excluded by .gitignore (see below) and never appear in a snapshot.

The extension lists and library folders are configurable per repository — see File Policy in the Settings reference. They are stored in the shared .gitm/repo-config.json contract (below) so GitM and GitMCloud classify files identically.

In the repository

Standard files at the root:

File Purpose
.gitattributes LFS rules for every tracked bucket. Source files also get lockable (the foundation of locking); derived, image, and binary document files are LFS but not lockable; text documents (.txt .md .csv) get no rule and stay plain diffable git.
.gitignore Excludes SolidWorks backups and temp files (including ~$*) plus junk buckets — *.cwr, *Results/, *.bak, *.swbak, and the SOLIDWORKS Data/ Toolbox cache.
.gitm.json The team profile / conventions, applied on connect.

The .gitm/ metadata folder:

File Purpose Read by GitMCloud?
.gitm/builds.jsonl Published snapshot history (Snapshots tab). Yes
.gitm/partnumbers.json Part-number registry (remote-authoritative). Yes
.gitm/bom/<assembly>.json Generated BOM per assembly. Yes
.gitm/assembly-tree.json Resolved assembly hierarchy for the viewer. Yes
.gitm/milestones.json Snapshots marked as milestones. Yes
.gitm/frozen.json Files frozen against editing. Yes
.gitm/shares.json Supplier share records (files, expiry, password hash, revoked flag). Written by GitM and GitMCloud. Yes
.gitm/share-log.jsonl Append-only log of supplier downloads (share id, file, time, IP). Yes
.gitm/repo-config.json Shared file-classification contract — the bucket extension lists and library folders (File Policy). Defaults apply when absent. Yes
.gitm/exchange-config.json Shared sharing policy — which roles can create share links, whether native files may be shared, password/expiry rules (Sharing Policy). Defaults apply when absent. Yes
.gitm/library-sources.json Shared Git library sources — GitHub repos the team can copy standard parts from (Library Sources). Local-folder sources are per-machine and not stored here. Yes
.gitm/local-versions.json Per-machine, never tracked — your local Save Local Version index. No

The .gitm/ files that GitMCloud reads are a shared contract. Changing their schema can break the viewer — see GitMCloud docs.

In the registry (set by the installer)

CLSID {F4073A99-5C32-4113-9EAD-011F4A6BF3A6}:

Key Purpose
…\Software\Classes\CLSID\{GUID}\InprocServer32 COM registration (managed add-in via mscoree.dll).
…\SOFTWARE\SolidWorks\Addins\{GUID} Enables the add-in; Title = "GitM".
…\SOFTWARE\SolidWorks\AddInsStartup\{GUID} Loads the add-in on SolidWorks startup.

Written under both HKCU and HKLM. See Verify and troubleshoot deployment.

Build-time constants

Constant Current value Where
GitMCloud base URL https://gitmcloud.gojain.com Compiled into the build (GitMCloudBaseUrl in user settings; defaults here).
Add-in build version V1.5.0 GitMVersion.Current; shown in the ? tooltip.
Installer version 1.5.0 (GitM-Setup-1.5.0.exe) Inno Setup script.

The add-in version and the installer version are now derived from a single source (Directory.Build.propsGitM.Core.dll → both GitMVersion and the installer), so they always match. The ? tooltip additionally shows a build stamp (git hash + date) for pinpointing the exact build when reporting issues.