Skip to content

Commit 6690efb

Browse files
author
Ryan Kelly
committed
Updated the Readme for Clarity
1 parent 88165fe commit 6690efb

File tree

1 file changed

+5
-187
lines changed

1 file changed

+5
-187
lines changed

docs/README.md

Lines changed: 5 additions & 187 deletions
Original file line numberDiff line numberDiff line change
@@ -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

147120
Goal-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

408240
Accurate 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

583405
A 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.
618440
Publishing 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

624446
These 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
630452
If 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

640458
On performance:

0 commit comments

Comments
 (0)