Guides
Team Collaboration
Effective strategies for teams working together on creative projects. From small studios to enterprise productions, Dits scales with your team.
Roadmap — networked collaboration is not yet functional
The collaboration models below depend on capabilities that are still being built: networked
push/pull, hosted Ditshub, and all dits p2p sync. P2P today is scaffolding— it prints placeholders and transfers no data. What works now is the local VCS, file locking, and local-filesystem clone/push. The networked and P2P workflows here describe the planned design. See the roadmap for status.Collaboration Models
Setting Up Team Access
File Locking
For binary files that can't be merged, use file locking to prevent conflicts:
# Lock a file before editing
$ dits lock project.prproj
Locked 'project.prproj' for editing.
# Check lock status
$ dits locks
Locked files:
project.prproj (you) 2 hours ago
assets/hero.psd (alice) 30 min ago
# Try to lock already-locked file
$ dits lock assets/hero.psd
Error: File is locked by alice@team.com
Locked 30 minutes ago with message: "Editing hero image"
# Unlock when done
$ dits unlock project.prproj
Unlocked 'project.prproj'.Lock Best Practices
Lock files before starting work. Include a message explaining what you're doing. Unlock as soon as you're done, even if you haven't committed yet.
Real-Time Sync with P2P (planned)
In the planned P2P design, one teammate shares a directory and others connect with a join code. The example output below is illustrative — the commands print placeholders and transfer no data today.
# Computer A — share a directory on the local network
$ dits p2p share ./project --local
Connect with: dits p2p connect ABC-123 --local
# Computer B — connect with the join code
$ dits p2p connect ABC-123 --localConflict Resolution
# Pull with potential conflicts
$ dits pull origin main
Auto-merging src/config.json
CONFLICT: assets/layout.psd modified by both
# Check conflict status
$ dits status
Unmerged paths:
both modified: assets/layout.psd
# For binary files, choose a version
$ dits checkout --ours assets/layout.psd # Keep yours
$ dits checkout --theirs assets/layout.psd # Take theirs
# Or keep both
$ dits checkout --ours assets/layout.psd
$ mv assets/layout.psd assets/layout-mine.psd
$ dits checkout --theirs assets/layout.psd
$ mv assets/layout.psd assets/layout-theirs.psd
# Manually merge in your editor
# Mark as resolved
$ dits add assets/layout.psd
$ dits commit -m "Resolve layout conflict"Communication Integration
# Configure Slack notifications
$ dits config hooks.slack.webhook "https://hooks.slack.com/..."
# Notify on important events
$ cat .dits/hooks/post-push
#!/bin/bash
curl -X POST -H 'Content-type: application/json' \
--data "{
\"text\": \"$USER pushed to $BRANCH: $(dits log -1 --format=%s)\"
}" \
"$SLACK_WEBHOOK_URL"
# Use dits notes for in-repo discussions
$ dits notes add -m "Needs color correction review" abc1234
$ dits notes show abc1234
Notes from you:
Needs color correction reviewAccess Control
| Role | Permissions | Use Case |
|---|---|---|
| Admin | Full control, settings, delete | Project leads, IT |
| Maintainer | Push to main, merge PRs | Senior team members |
| Editor | Push branches, create PRs | Regular contributors |
| Viewer | Read-only access | Clients, stakeholders |
Path-Based Permissions
Restrict access to sensitive directories. For example, allow editors to modify
assets/ but not config/.Related Topics
- Workflow Patterns - Team workflows
- Lock Commands - File locking
- P2P Commands - Peer-to-peer sync
- Deployment - Server setup