Skip to content

Commit 89cf543

Browse files
committed
chore: add the implementation plan
1 parent 3e952c0 commit 89cf543

File tree

3 files changed

+71
-1
lines changed

3 files changed

+71
-1
lines changed

.yardopts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
--hide-void-return
33
--markup-provider=redcarpet
44
--markup markdown
5+
--readme README.md
6+
- PLAN.md
57
- CHANGELOG.md
68
- CONTRIBUTING.md
79
- RELEASING.md

PLAN.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# RubyGit Implementation Plan
2+
3+
This is the plan for the RubyGit project, which provides an object-oriented wrapper
4+
around the Git command line. The project follows a clear architecture with three main
5+
objects: Worktree, Index, and Repository.
6+
7+
Implementation of git commands will follow a logical progression to build upon
8+
previous functionality and deliver value early. Here is the order:
9+
10+
## Git commands
11+
12+
**1. Basic Repository Operations (Some Already Implemented)**
13+
14+
* ✅ git init
15+
* ✅ git clone
16+
* ✅ git status
17+
* ✅ git add
18+
* git commit
19+
* git log
20+
21+
**2. Branch Management**
22+
23+
* git branch (create, list, delete)
24+
* git checkout/switch
25+
* git merge
26+
* git rebase
27+
28+
**3. Remote Operations**
29+
30+
* git remote (add, remove, list)
31+
* git fetch
32+
* git pull
33+
* git push
34+
35+
**4. Advanced Repository Operations**
36+
37+
* git tag
38+
* git stash
39+
* git cherry-pick
40+
* git reset
41+
* git revert
42+
43+
**5. Specialized Operations**
44+
45+
* git blame
46+
* git bisect
47+
* git submodule
48+
* git worktree
49+
* git reflog
50+
51+
## Rationale
52+
53+
1. **Start with the basic workflow**: This follows the typical Git workflow that
54+
developers use daily. You've already implemented init, clone and status, so add
55+
and commit are the natural next steps to complete the basic functionality.
56+
2. **Branch management**: Once basic repository operations are in place, branch
57+
management is essential for any Git workflow.
58+
3. **Remote operations**: These commands build on local operations but add networking
59+
capabilities.
60+
4. **Advanced operations**: These provide more specialized functionality that builds
61+
on the core commands.
62+
5. **Specialized operations**: These are less commonly used but provide powerful
63+
capabilities for specific use cases.
64+
65+
This approach allows functional value to be delivered early while building a
66+
foundation for more complex operations. It also aligns with my idea of how users
67+
typically learn and use Git, making the library more intuitive.

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# RubyGit
22

3-
**THIS PROJECT IS A WORK IN PROGRESS AND IS NOT USEFUL IN ITS CURRENT STATE**
3+
This project is not complete, but [{file:PLAN.md implementation plan}](PLAN.md) details what is available
4+
and the order of implementing new features.
45

56
[![Gem Version](https://badge.fury.io/rb/ruby_git.svg)](https://badge.fury.io/rb/ruby_git)
67
[![Build Status](https://github.com/main-branch/ruby_git/actions/workflows/continuous_integration.yml/badge.svg)](https://github.com/main-branch/ruby_git/actions/workflows/continuous_integration.yml)

0 commit comments

Comments
 (0)