GithubHelp home page GithubHelp logo

svc's People

Contributors

atalakey avatar skirkpatrick avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

svc's Issues

Implement tutorial

Should explain proper conventions and workflow for using version control interactively. Essentially, emulate the front end of a shell prompt, leading the user through the process of creating a repo, committing, branching, merging, etc, all the while explaining what each does and why we do it. Should give the user commands and continuously prompt until input matches. Remember, this is meant to be an introductory tool into version control, so don't assume the user knows anything about it.

Implement log

Shouldn't be too hard. Just reading and displaying the metadata file, basically.

Add unit tests to packages

Go makes unit testing stupid easy. Unit tests should be made for all packages to test for edge cases, as well as more generic tests (if possible) to assure desired functionality.

Better modularity

Keeping code modular is important for organization, scalability, expandability, and maintainability. To that avail, code can (almost) always be more modular, or at least organized in a more logical fashion. Don't just modularize for the sake of modularization, though.

Portability

I develop on Linux and have not tested on Windows or Mac, though I know some places with portability issues. Testing and fixes need to be done for Windows and Mac as portability is one of Go's strong suits.

Implement revert

Similar to reset, but the user specifies how many commits to undo. This is ridiculously confusing in Git (largely due to how Git implements Refs and whatnot), but should be very straight forward in SVC.

.svcignore

Implement ignore functionality using a .svcignore file.

Not sure if regex or wildcards would be better. Should probably be done after #2

Implement delete

Straight forward. Should delete the current repo, essentially just by deleting the .svc directory. Considering letting user optionally specify a branch to delete (if no branch specified, delete entire repo).

Implement commit

Pretty straight forward. Should prompt for commit message and summary (no Vim). Possibly signal end with ^D. Should then write necessary data to metadata file and stash compressed versions of committed files.

Implement reset

Should simply restore repo to state of most recent commit.

ioutil package for IO wrappers

Input needs to be much more user friendly and less verbose in the code. Output looks silly having escape characters everywhere. Simple wrappers would help a lot, and having them in their own package will allow us to persist package-scope buffers.

Implement merge

Should be done after branch for obvious reasons. Thinking of using kdiff or a similar tool to keep things simple.

Implement branch

Similar in concept to Git branches. For simplicity, just have a directory for each branch in .svc folder. Metadata file will need to be updated.

Create Readme

There is no readme. There should be. Should explain ideology as well as setup instructions. A license would probably be good at some point, too.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.