Skip to main content
Documentation

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. 1. Create Organization

    Create an organization on Ditshub to manage team access and billing.

  2. 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. 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'.

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 review

Access Control

RolePermissionsUse Case
AdminFull control, settings, deleteProject leads, IT
MaintainerPush to main, merge PRsSenior team members
EditorPush branches, create PRsRegular contributors
ViewerRead-only accessClients, stakeholders

Related Topics