docs: Add Git Workflow Guide for archive collaboration - #1084
Conversation
Documents branching strategies, collaboration patterns, and branch-based research methodologies for GLX archives — the missing how-to behind the Git-native headline feature. - New docs/guides/git-workflow.md covering repository setup, the edit/validate/commit research cycle, hypothesis branches (speculative -> proven/disproven), shared-repo and fork-and-PR collaboration, git merge vs glx merge, conflict resolution, history as a research log, and Git LFS for media scans - Registered in website nav and guides sidebar - Cross-linked from Quickstart, Best Practices, and Hands-On CLI guides Closes #508 Signed-off-by: Isaac Schepp <isaac.schepp@gmail.com> Assisted-by: Claude Code
Deploying genealogix with
|
| Latest commit: |
8586ac3
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://58dca4d2.genealogix.pages.dev |
| Branch Preview URL: | https://docs-git-workflow-guide.genealogix.pages.dev |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Pull request overview
Adds a dedicated documentation guide explaining practical Git workflows for collaborating on GLX archives (branch-based research, collaboration/review patterns, and merge/conflict handling), and wires it into the docs navigation and related guides.
Changes:
- Add new guide:
docs/guides/git-workflow.md(setup, research cycle, branching, collaboration, merge/conflict resolution, scale tips). - Link the new guide from Quickstart, Best Practices, Hands-On CLI Guide, and add it to the VitePress nav/sidebar.
- Add an Unreleased changelog entry (currently needs a fix; see PR comments).
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| website/.vitepress/config.js | Adds “Git Workflow” to guides nav/sidebar items. |
| docs/quickstart.md | Cross-links to the new Git Workflow guide from Quickstart steps/next steps. |
| docs/guides/hands-on-cli-guide.md | Adds “Git Workflow Guide” to the guide’s suggested next reads. |
| docs/guides/git-workflow.md | New, comprehensive Git workflow documentation for GLX archives. |
| docs/guides/best-practices.md | Adds “See also” + link to the deeper Git Workflow guide. |
| CHANGELOG.md | Adds an Unreleased entry (currently conflates two entries; needs splitting). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Restore the SECURITY.md changelog entry that the new Git Workflow Guide entry had accidentally fused with (its bold title was lost and both items ran together on one line) - Note that glx init creates .gitignore/README.md only in the default multi-file layout; --single-file writes archive.glx alone Signed-off-by: Isaac Schepp <isaac.schepp@gmail.com> Assisted-by: Claude Code
|
Really nice guide — the conceptual framing is the strong part, and I checked the I did run every command and YAML block through a real 1. The CI workflow's checksum step fails on every run. In the …but the verification line then asks Because GitHub Actions runs steps under 2. The merge-conflict Person snippet is invalid GLX. The "When They Happen Anyway" example shows a top-level This one is doubly unfortunate because the same guide wires 3. The Research Cycle's Swapping that line for Everything else I threw at it came back clean — the |
|
|
||
| # Git Workflow Guide | ||
|
|
||
| A GLX archive is a Git repository of YAML files. That single design decision gives genealogy four things databases struggle with — history, collaboration, backup, and longevity — but only if you actually use the Git side of the format. This guide shows how: daily commit habits, hypothesis branches, collaborating with other researchers, and reading history as a research log. |
| | | Use | | ||
| |---|---| | ||
| | `git merge` | Combining **branches of the same repository** — hypothesis branches, collaborators' PRs. Git matches files line-by-line. | | ||
| | [`glx merge`](/cli/glx_merge) | Combining **two separate archives** — a cousin's independently-built archive into yours. Entities are copied by ID; there is no shared Git history to merge. | |
What and why
GLX's headline differentiator is being "Git-native", but the docs had no guide showing users how to actually use Git workflows for genealogy research — the existing Best Practices section covers only commit hygiene in ~30 lines, and ADR-0004 explains the why but not the how.
This adds a dedicated Git Workflow Guide (
docs/guides/git-workflow.md) covering:git initafterglx init(which creates.gitignorebut not the repo),.gitattributesline-ending pinning, private-by-default remotes for living-person dataglx validateas a pre-commit gate, commit messages that answer what / on what evidence / whystatus: speculativeassertions, merged asprovenwhen confirmed or deliberately merged asdisprovenwhen refuted (negative findings are research data);git worktree+glx difffor comparing branch statesgit merge(same repo) vsglx merge(separate archives) distinction, resolving textual conflicts vs recording evidential conflicts asstatus: disputed, post-mergeglx validate/glx duplicates/glx merge-personsgit log --follow,git blame, milestone tags, correct-don't-erasemedia/files/scans, partial clone for very large archivesThe guide is registered in the website nav and
/guides/sidebar, and cross-linked from the Quickstart (Step 9 + Next Steps), Best Practices (Git Workflow section + See Also), and Hands-On CLI Guide (See Also). CHANGELOG entry added under Unreleased → Added.Related issues
Closes #508
Review focus
Content accuracy of the genealogy-method framing (speculative/proven/disproven branch lifecycle, disputed-status conflict guidance) and whether the
git mergevsglx mergedistinction is stated correctly. The guide deliberately assumes basic Git knowledge and links out rather than teachingclone/commit.Testing
bash scripts/check-links.sh— all 424 relative links OK#collaboration,#archive-merging,#vocabulary-governance,#conflicting-evidence,#complete-evidence-chains,#id-generation, CLI reference pages)npm run build(VitePress) fails locally on unmodifiedmainwith the sameestree-walkerESM error under Node 24.14.1, so the local build could not verify dead links either way — relying on CI's build for thatglx_Linux_x86_64.tar.gz) checked against.goreleaser.yml'sname_templateglx initbehavior (creates.gitignore/README.md, does not rungit init) checked againstglx/init_runner.goBreaking changes
None — documentation only.