@@ -10,8 +10,6 @@ GitPDM is a FreeCAD workbench addon that brings Git version control and GitHub c
1010
1111## Documentation Structure
1212
13- This documentation is organized into four sections. Each section is intended to stand alone with minimal cross-references.
14-
1513- ** [ Tutorials] ( #tutorials ) ** — learning-oriented lessons for newcomers
1614- ** [ How-To Guides] ( #how-to-guides ) ** — goal-oriented recipes for specific tasks
1715- ** [ Technical Reference] ( #technical-reference ) ** — accurate, “lookup-style” system details
@@ -21,8 +19,6 @@ This documentation is organized into four sections. Each section is intended to
2119
2220# Tutorials
2321
24- Learning-oriented lessons that teach GitPDM by example.
25-
2622## Tutorial 1: First Local Versioned CAD Project
2723
2824** Goal:** Install GitPDM, create a repository, and make two commits.
@@ -119,58 +115,10 @@ You now have a local commit history you can always return to.
119115
120116---
121117
122- ## Tutorial 3: Publish a Part with Previews
123-
124- ** Goal:** Use the one-click publish flow to generate previews and push them.
125-
126- ** Prerequisites:**
127- - A saved FreeCAD document inside a Git repository
128- - GitHub connected (if you want to push)
129-
130- ### 1) Prepare the view
131-
132- 1 . Open your part in FreeCAD.
133- 2 . Rotate to a nice viewing angle (the thumbnail uses the current view).
134-
135- ### 2) Publish
136-
137- 1 . Switch to ** Git PDM** .
138- 2 . Enter a commit message.
139- 3 . Click ** Publish Branch** .
140-
141- GitPDM will generate exports (PNG thumbnail, GLB model, optional STL), stage them alongside the source file, commit, and push.
142-
143- ---
144-
145118# How-To Guides
146119
147120Goal-oriented recipes for specific problems.
148121
149- ## How to Install GitPDM
150-
151- ** Goal:** Install GitPDM into FreeCAD.
152-
153- 1 . Find your FreeCAD Mod folder:
154- - Windows: ` %APPDATA%\FreeCAD\Mod `
155- - macOS: ` ~/Library/Application Support/FreeCAD/Mod `
156- - Linux: ` ~/.FreeCAD/Mod/ `
157- 2 . Download a GitPDM release ZIP from https://github.com/nerd-sniped/GitPDM/releases
158- 3 . Extract it.
159- 4 . Copy the ` GitPDM ` folder into ` Mod/ ` .
160- 5 . Restart FreeCAD.
161- 6 . Select ** Git PDM** from the workbench list.
162-
163- ---
164-
165- ## How to Fix Git PDM Doesn’t Appear in the Workbench List
166-
167- ** Goal:** Make the workbench show up.
168-
169- 1 . Ensure the folder name is exactly ` GitPDM ` (not ` GitPDM-main ` ).
170- 2 . Ensure ` Init.py ` and ` InitGui.py ` are directly inside ` GitPDM/ ` .
171- 3 . Open FreeCAD’s Report View: ** View → Panels → Report view** .
172- 4 . Restart FreeCAD fully.
173-
174122---
175123
176124## How to Install Git (Prerequisite)
@@ -183,29 +131,6 @@ Goal-oriented recipes for specific problems.
183131
184132---
185133
186- ## How to Use the Daily Workflow (Edit → Save → Commit → Push)
187-
188- ** Goal:** Safely iterate on CAD work with checkpoints and backup.
189-
190- 1 . Open your FreeCAD file from inside the repository.
191- 2 . Make changes.
192- 3 . ** Save** in FreeCAD.
193- 4 . Switch to ** Git PDM** .
194- 5 . Write a commit message.
195- 6 . Click ** Commit** .
196- 7 . Click ** Push** .
197-
198- ---
199-
200- ## How to Fetch and Pull Updates
201-
202- ** Goal:** Get the latest commits from GitHub.
203-
204- 1 . Click ** Fetch** (safe any time; doesn't change files).
205- 2 . If you're behind, click ** Pull** to download and merge.
206-
207- ---
208-
209134## How to Fix Push Rejected
210135
211136** Goal:** Push successfully when the remote moved ahead.
@@ -217,59 +142,6 @@ Goal-oriented recipes for specific problems.
217142
218143---
219144
220- ## How to Set Up Git LFS for CAD Files
221-
222- ** Goal:** Track large CAD files efficiently.
223-
224- 1 . Install Git LFS from https://git-lfs.github.com/ .
225- 2 . In your repository, run:
226- ```
227- git lfs install
228- ```
229- 3 . Create or update ` .gitattributes ` in the repo root:
230- ```
231- *.FCStd filter=lfs diff=lfs merge=lfs -text
232- *.glb filter=lfs diff=lfs merge=lfs -text
233- *.stl filter=lfs diff=lfs merge=lfs -text
234- *.step filter=lfs diff=lfs merge=lfs -text
235- *.iges filter=lfs diff=lfs merge=lfs -text
236- ```
237- 4 . Commit and push:
238- ```
239- git add .gitattributes
240- git commit -m "Configure Git LFS for CAD files"
241- git push
242- ```
243-
244- ---
245-
246- ## How to Organize a Multi-Part Project
247-
248- ** Goal:** Keep parts, assemblies, exports, and docs tidy.
249-
250- Recommended structure:
251-
252- ```
253- MyProject/
254- parts/
255- base-plate.FCStd
256- motor-mount.FCStd
257- assemblies/
258- main-assembly.FCStd
259- exports/
260- base.step
261- base.stl
262- docs/
263- notes.md
264- ```
265-
266- Recipe:
267- 1 . Put parts in ` parts/ ` , assemblies in ` assemblies/ ` .
268- 2 . Use descriptive filenames.
269- 3 . Commit assemblies and dependent parts together.
270-
271- ---
272-
273145## How to Customize Preview Exports
274146
275147** Goal:** Configure thumbnail/mesh settings.
@@ -301,30 +173,6 @@ Recipe:
301173
302174---
303175
304- ## How to Switch Branches Safely (Current Workaround)
305-
306- ** Goal:** Avoid corrupting FreeCAD ` .FCStd ` files.
307-
308- 1 . Save all documents.
309- 2 . Close all documents.
310- 3 . Switch branches.
311- 4 . Re-open documents after the switch.
312-
313- ---
314-
315- ## How to Use Worktrees for Branch Isolation
316-
317- ** Goal:** Work on multiple branches without repeatedly switching the same working folder.
318-
319- 1 . Create a new worktree folder (example): ` MyProject-feature-branch ` .
320- 2 . Use Git’s worktree command:
321- ```
322- git worktree add ../MyProject-feature-branch feature-branch
323- ```
324- 3 . Open the FreeCAD files from that worktree folder in a separate FreeCAD window.
325-
326- ---
327-
328176## How to Fix “Git Is Not Recognized as a Command”
329177
330178** Goal:** Make Git available to GitPDM.
@@ -387,22 +235,6 @@ Recipe:
387235
388236---
389237
390- ## How to Speed Up a Slow Repository
391-
392- ** Goal:** Reduce unnecessary scanning work.
393-
394- 1 . Add common junk files to ` .gitignore ` :
395- ```
396- __pycache__/
397- *.pyc
398- .DS_Store
399- Thumbs.db
400- ```
401- 2 . Use Git LFS for large CAD binaries.
402- 3 . Consider splitting very large projects into multiple repositories.
403-
404- ---
405-
406238# Technical Reference
407239
408240Accurate lookup documentation. Minimal narrative.
@@ -411,7 +243,7 @@ Accurate lookup documentation. Minimal narrative.
411243
412244- Version control of files inside a Git repository (commit/push/pull/fetch)
413245- Optional GitHub integration via OAuth device flow
414- - Preview export and publishing pipeline (thumbnail PNG, GLB, JSON metadata, optional STL)
246+ - Preview export and publishing pipeline (thumbnail PNG, JSON metadata, STL)
415247- Safety guards to reduce risk of file corruption during risky operations
416248
417249### Known limitation: branch switching
@@ -429,7 +261,6 @@ Branch switching is currently limited because FreeCAD `.FCStd` files are ZIP arc
429261| Python | 3.8+ | Bundled with FreeCAD |
430262| PySide2 or PySide6 | Any | Bundled with FreeCAD |
431263| GitHub account | N/A | Optional, for cloud features |
432- | Git LFS | 2.0+ | Recommended for large CAD files |
433264
434265---
435266
@@ -513,14 +344,6 @@ High-level modules:
513344
514345## Roadmap & Future Development (Project Information)
515346
516- ### Completed milestones (high level)
517-
518- - Git client wrapper and repository management (create/clone/validate)
519- - GitHub OAuth authentication (device flow)
520- - Commit/push/fetch/pull operations
521- - UI refactor into specialized handlers
522- - Preview export (PNG/GLB/STL/JSON) and publish workflow
523-
524347### Known limitations
525348
526349- Branch switching requires care (close documents first)
@@ -549,8 +372,7 @@ High-level modules:
549372- Complete Git workflow (commit, push, pull, fetch)
550373- GitHub OAuth device flow
551374- Repository management (create, clone, validate)
552- - Branch operations with safety guards (switching requires closed documents)
553- - Preview export system (PNG, JSON, GLB, STL)
375+ - Preview export system (PNG, JSON, STL)
554376- One-click publish workflow
555377- Cross-platform support (Windows, macOS, Linux)
556378
@@ -582,7 +404,7 @@ GitPDM brings Git’s history of states into FreeCAD so that saving a meaningful
582404
583405A practical mental model:
584406
585- - Commit = “make a durable checkpoint on my machine.”
407+ - Commit = “make a local checkpoint on my machine.”
586408- Push = “copy my checkpoints to GitHub.”
587409
588410---
@@ -618,7 +440,7 @@ A regular commit is primarily for restoring and collaborating on versions.
618440Publishing adds shareability artifacts:
619441
620442- a thumbnail image for quick scanning
621- - a browser-viewable 3D model (GLB )
443+ - a browser-viewable 3D model (STL )
622444- metadata summaries (JSON)
623445
624446These outputs make the repository easier to browse and understand without opening FreeCAD.
@@ -630,11 +452,7 @@ These outputs make the repository easier to browse and understand without openin
630452If you’re new to version control, it helps to separate the * local* and * remote* ideas:
631453
632454- You don’t need deep Git knowledge to get value: a repository plus a few well-named commits already gives you durable checkpoints.
633- - GitHub is optional: GitPDM can be used with local-only Git, but pushing to a remote is a practical backup layer.
634-
635- On safety and backups:
636-
637- - GitPDM is designed to be safety-first (notably around branch switching).
455+ - GitHub is optional: GitPDM can be used with local-only Git, but pushing to a remote is a practical cloud backup layer.
638456- Still treat backups as layered: local commits + push to a remote + normal filesystem backups.
639457
640458On performance:
0 commit comments