Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Full list of Git subcommands to implement #66

initialcommit-io started this conversation in Ideas
Discussion options

@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 😸

You must be logged in to vote

Replies: 4 comments 8 replies

Comment options

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.

You must be logged in to vote
7 replies
Comment options

@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.

Comment options

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

Comment options

@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.

Comment options

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

Comment options

@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.

Comment options

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 😸

You must be logged in to vote
0 replies
Comment options

Hi @initialcommit-io,

I'm back from my holidays and will have a look at everything that has happened around here over the next few days :)

You must be logged in to vote
1 reply
Comment options

@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 :)

Comment options

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
You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

AltStyle によって変換されたページ (->オリジナル) /