Skip to content

Latest commit

 

History

History
67 lines (51 loc) · 1.86 KB

PLAN.md

File metadata and controls

67 lines (51 loc) · 1.86 KB

RubyGit Implementation Plan

This is the plan for the RubyGit project, which provides an object-oriented wrapper around the Git command line. The project follows a clear architecture with three main objects: Worktree, Index, and Repository.

Implementation of git commands will follow a logical progression to build upon previous functionality and deliver value early. Here is the order:

Git commands

1. Basic Repository Operations (Some Already Implemented)

  • ✅ git init
  • ✅ git clone
  • ✅ git status
  • ✅ git add
  • git commit
  • git log

2. Branch Management

  • git branch (create, list, delete)
  • git checkout/switch
  • git merge
  • git rebase

3. Remote Operations

  • git remote (add, remove, list)
  • git fetch
  • git pull
  • git push

4. Advanced Repository Operations

  • git tag
  • git stash
  • git cherry-pick
  • git reset
  • git revert

5. Specialized Operations

  • git blame
  • git bisect
  • git submodule
  • git worktree
  • git reflog

Rationale

  1. Start with the basic workflow: This follows the typical Git workflow that developers use daily. You've already implemented init, clone and status, so add and commit are the natural next steps to complete the basic functionality.
  2. Branch management: Once basic repository operations are in place, branch management is essential for any Git workflow.
  3. Remote operations: These commands build on local operations but add networking capabilities.
  4. Advanced operations: These provide more specialized functionality that builds on the core commands.
  5. Specialized operations: These are less commonly used but provide powerful capabilities for specific use cases.

This approach allows functional value to be delivered early while building a foundation for more complex operations. It also aligns with my idea of how users typically learn and use Git, making the library more intuitive.