As I fully intend to release this to the public at some point, I'd ask those of you who use git, or some other DVCS, about...
What operations are essential to your DVCS workflow?
Git makes a whole lot of things possible, but this flexibility comes at a price of complexity. I'd like to reduce the complexity "as far as possible, but no further".
So far supported are the following operations:
Meta:
- Creating a new repository (init)
- Copying a repository (clone)
- Showing who changed which line of code in a given file last (blame)
- Showing changes between working directory and HEAD (diff)
- Showing a log of commits, both on the repo as a whole and a given file / directory (log)
- Showing info on the current repo, including remote URL and available branches (info, new composite command)
- Showing status of the current repo, including unmerged commits, unpushed commits, and local changes (status, new composite command)
- Add files / directories to VCS (add)
- Move / rename files / directories in VCS (move)
- Remove files / directories from VCS (rm)
- Revert a file to its committed state (checkout)
- Find commit introducing a change by binary search (bisect)
- Commit local changes to local repo (commit)
- Combine multiple local commits into one (squash, new composite command)
- Temporarily putting away local changes, reapplying them, removing them (stash)
- Undo a local commit (uncommit, new composite command replacing --amend)
- Merge incoming commits to your current branch (merge)
- Create a local branch (branch)
- Re-base local commits to HEAD (rebase)
- Remove a local branch (branch -d)
- Switch to a different local branch (switch)
- Publish local commits to remote repository (push)
- Get incoming commits from remote repository (fetch)
To stress, this is not about providing everything, this is about providing everything you need in order to make a public beta viable. I am looking at reducing git's complexity, not emulating it -- but I would like to not be lacking essential features before going public.
Thank you in advance for your feedback.