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.props→GitM.Core.dll→ bothGitMVersionand the installer), so they always match. The?tooltip additionally shows a build stamp (git hash + date) for pinpointing the exact build when reporting issues.