-
-
Notifications
You must be signed in to change notification settings - Fork 120
Full list of Git subcommands to implement #66
-
@abhijitnathwani @paketb0te I think one thing we need to prioritize is adding in more subcommands so that Git-Sim covers at least all the basic Git subcommands.
Currently, git-sim supports the following 13 subcommands: log, status, add, restore, commit, stash, branch, tag, reset, revert, merge, rebase, cherry-pick
And even for these 13, there are some features not implemented yet, notably a wider set of ways to use Git rebase, which currently only allows 1 basic form of the command and no options for flexible rebases Git can do. Also, we don't have any detection so far for things like merge conflicts when merging. There also might be edge cases that are basically bugs right now or have confusing behavior, like resetting or reverting on a commit that isn't on the active branch.
Anyway, I think we should try to make a roadmap of Git subcommands that we'd like to implement. Here are some of my suggestions in order of priority:
- git checkout (in progress)
- git switch (in progress)
- git rm
- git mv
- git clean
- git fetch
- git pull
- git push
- git clone
- git reflog
- git diff
- git config
- git submodule
- git show
- git bisect
- git blame
I'm already working on the "git checkout" command which I can repurpose for "git switch" as well.
For the networking commands like fetch/push/pull I got a good suggestion in a comment on my original release, that we could clone the local repo to a dummy copy and perform the networked operation there. That would enable Git-Sim to get information about the operation and objects involved without directly impacting the local repo that the user is working in.
Let me know if either of you are interested in working on any specific subcommands or if you have suggestions for other subcommands to implement 😸
Beta Was this translation helpful? Give feedback.
All reactions
Replies: 4 comments 8 replies
-
Hi @initialcommit-io
I'll take up mv, rm and clean. Once I have some working version, I'll put the simulation here for review.
Beta Was this translation helpful? Give feedback.
All reactions
-
🚀 1
-
@abhijitnathwani Oh nice! Hope you're enjoying the vacation!! I'm not sure exactly when I'll have mine finished, so if it's after the 24th I'll just follow up with you to see whether it makes sense to release them on their own or roll them with the ones you're working on.
Beta Was this translation helpful? Give feedback.
All reactions
-
Hi @abhijitnathwani !
Just a note - the subcommand Typer functions were refactored in the dev branch to the commands.py file. Keep this in mind for any commands you work on.
Also, I've implemented the first version of fetch, pull, push, and clone on the dev branch. I still have some tweaks to do but am hoping to release by next weekend. Do you think you'd be able to have mv, rm, and clean done by then? If so we can release it all together.
Let me know.
Best,
Jacob
Beta Was this translation helpful? Give feedback.
All reactions
-
@abhijitnathwani I just implemented initial versions of rm, mv, and clean. Sorry to swipe these but I wanted to get these in before I do a 3 month update post about git-sim. For now these are just on the dev branch but I will move them to main for the next release probably sometime this week.
Beta Was this translation helpful? Give feedback.
All reactions
-
Hey @initialcommit-io . Sorry I couldn't get it done in time. I returned from vacation last week and a lot of things had been caught up with my $DAYJOB. I'll give these a try and let you know if I spot any issues! Thanks
Beta Was this translation helpful? Give feedback.
All reactions
-
@abhijitnathwani No worries at all - I know what you mean. Sure testing them would be very helpful! Let me know if you find any bugs or can think of any improvements.
Beta Was this translation helpful? Give feedback.
All reactions
-
Hi @paketb0te and @abhijitnathwani !
Hope you both are doing great. Just a note that I released git-sim 0.2.9 today which has first versions of the following new subcommands:
- switch
- checkout
- clone
- fetch
- pull
- push
@abhijitnathwani Hopefully we can get rm, mv, and clean soon to add to those.
I also added a variety other fixes, such as showing a list of conflicted files when a merge conflict occurs during git-sim merge.
Also these smaller ones:
- Add -m option to merge subcommand to allow user to set commit message
- Add global option --highlight-commit-messages to make commit message text bigger and bold, and hide commit ids
- Add global flag --transparent-bg to generate output images with transparent background
If you have time feel free upgrade our git-sim version to 0.2.9 and test some of it out 😸
Beta Was this translation helpful? Give feedback.
All reactions
-
I'm back from my holidays and will have a look at everything that has happened around here over the next few days :)
Beta Was this translation helpful? Give feedback.
All reactions
-
🎉 1
-
@paketb0te Woooohoooo!!!!! Hope you had an amazing holiday!
I won't lie I've been like "I hope manu is having an amazing vacation but I also can't wait to have their input and help again!" 😺
There are many new features/improvements over the past few weeks. Excited for you to test them out and hear your thoughts :)
Beta Was this translation helpful? Give feedback.
All reactions
-
Just thought I'd add an updated list here of the remaining Git subcommands to provide initial implementations for:
- git reflog
- git diff
- git config
- git submodule
- git show
- git bisect
- git blame
Beta Was this translation helpful? Give feedback.