Skip to content

Repository Management

Organize tasks across multiple git-backed repositories.

What is a Repository?

A TaskRepo repository is a git-initialized directory containing task markdown files.

Structure:

~/tasks/
├── tasks-work/
│   ├── .git/
│   ├── tasks/
│   │   ├── task-{uuid}.md
│   │   └── task-{uuid}.md
│   └── README.md
└── tasks-personal/
    ├── .git/
    └── tasks/

Creating Repositories

Create New Repository

tsk create-repo work

Creates tasks-work directory with git initialization.

Multiple Repositories

tsk create-repo work
tsk create-repo personal
tsk create-repo opensource

List Repositories

tsk repos

Shows all repositories in parent directory.

When to Use Multiple Repositories

By Context

  • work - Work-related tasks
  • personal - Personal tasks
  • opensource - Open source contributions

By Team

  • frontend-team - Frontend tasks
  • backend-team - Backend tasks
  • devops-team - DevOps tasks

By Project

  • project-alpha - Tasks for Project Alpha
  • project-beta - Tasks for Project Beta

By Sprint

  • sprint-24 - Current sprint tasks
  • sprint-25 - Next sprint tasks

Working with Repositories

Add Task to Specific Repository

tsk add --repo work

List Tasks from Repository

tsk list --repo work

Move Tasks Between Repositories

tsk move 1 personal

Move with subtasks:

tsk move 1 work --with-subtasks

Repository Configuration

Each repository is a standalone git repository.

Add Git Remote

cd ~/tasks/tasks-work
git remote add origin https://github.com/user/tasks-work

GitHub Repository Creation

TaskRepo can create GitHub repositories:

tsk repos-search work  # Search existing repos

Set default GitHub org in config:

default_github_org: "myorg"

Syncing Repositories

Sync All Repositories

tsk sync

Sync Specific Repository

tsk sync --repo work

Sync Without Push

tsk sync --no-push

README Generation

Each repository automatically generates README.md with task tables.

Features: - Task summary - Active tasks table - Archived tasks in tasks/archive/README.md - Auto-updated on sync

Repository Naming

Convention: tasks-{name}

Examples: - tasks-work - tasks-personal - tasks-sprint-24 - tasks-project-alpha

Collaboration

Share Repository

  1. Create repository with GitHub remote
  2. Push tasks: tsk sync --repo work
  3. Team members clone: git clone <url>
  4. Initialize TaskRepo: tsk init
  5. Sync regularly: tsk sync

Conflict Resolution

See Conflict Resolution for handling merge conflicts.

Best Practices

One Repository Per Context

Don't create too many repositories. Group related tasks together.

Regular Syncing

Sync often to avoid conflicts: tsk sync

Meaningful Names

Use clear repository names: work not repo1

Team Conventions

Agree on repository organization with your team

Parent Directory

All repositories live in the parent directory.

Default: ~/tasks

Change in config:

parent_dir: ~/my-tasks

Repository Discovery

TaskRepo automatically discovers repositories in the parent directory by looking for directories matching tasks-* pattern.

See Also