Team Collaboration
Effective strategies for teams working together on creative projects. From small studios to enterprise productions, Dits scales with your team.
Collaboration Models
Centralized
Single server, structured workflow
- Central Ditshub server
- Branch protection rules
- Code review process
- CI/CD integration
Peer-to-Peer
Direct sharing without server
- Direct machine sync
- No central dependency
- Great for on-set work
- Mesh network support
Hybrid
Best of both worlds
- Central for main branches
- P2P for daily syncs
- Offline capable
- Flexible topology
Setting Up Team Access
Ditshub Team Setup
- 1. Create Organization
Create an organization on Ditshub to manage team access and billing.
- 2. Invite Team Members
# From web UI or CLI dits org invite alice@team.com --role editor dits org invite bob@team.com --role viewer - 3. Create Repository
# Create private team repo dits create myorg/project --private # Or push existing repo dits remote add origin https://ditshub.com/myorg/project dits push -u origin main
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
# Enable P2P discovery on local network
$ dits p2p start
P2P node started
Peer ID: QmYb2...xyz
Listening: 0.0.0.0:9001
# Discover teammates
$ dits p2p discover
Found peers:
alice-macbook (QmAbc...) - 192.168.1.10
bob-workstation (QmDef...) - 192.168.1.11
# Sync directly with peer
$ dits p2p sync alice-macbook
Syncing with alice-macbook...
Receiving: 45 chunks (234 MB)
Sending: 12 chunks (56 MB)
Sync complete.
# Auto-sync mode
$ dits p2p auto-sync --interval 5m
Auto-sync enabled every 5 minutes.Conflict 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