spesk1 9f042ce786 Updating README 4 years ago
lib 57e290e657 Add a newline so we dont have characters left over from the carrage return 5 years ago
.gitignore 55da5018b7 Added functionality to auto ignore sg log and to append to .gitignore 5 years ago
LICENSE e9964d18eb Add LICENSE 5 years ago 9f042ce786 Updating README 4 years ago
example.config 2c46a5ccdd Added a few more knocking features 5 years ago 17e640f990 Updated install to not overwrite config if already in place 5 years ago
sg 7a6fb7d58a Playing around with --view output a bit for readability 5 years ago


Project to abstract some of the weirder git operations or things that I forget. Should always be able to be used alongside git, as opposed to trying to replace it outright. Mainly writing to learn more about Git and Perl, unlikely to be widely useful.

        Display git status of files and other information                                                                                                                             
        Dump .git/config to STDOUT. Not really useful but exposed for testing of reading config into internal data structure                                                          
        --push-all [--commit-msg]                                                                                                                                                     
        Push all untracked and modified files                                                                                                                                         
                * Can be used with interactive mode                                                                                                                                   
                * Can provide a commit msg with --commit-msg (otherwise a generic will be provided)                                                                                   
        Enable interactive mode with supported opts                                                                                                                                   
        Reset all current changes so that the file tree matches origin master                                                                                                         
        --reset-from-upstream [ --upstream-url ]                                                                                                                                      
        If upstream is defined will reset local branch to match upstream ( does not push changes to origin )                                                                          
                * Assumes you have an upstream configured                                                                                                                             
                * Pass SSH/HTTPS URL to --upstream-url to add an upstream                                                                                                             
        --configure-local-user [--user,--email]                                                                                                                                       
        Configure local git user                                                                                                                                                      
                * Can be used with interactive mode                                                                                                                                   
        Default is ~/.sg/sg.config, can use this opt to use another file                                                                                                              
                * See example.config                                                                                                                                                  
        Will try and knock the defined git server at the defined ports before any operation                                                                                           
                * See example.config                                                                                                                                                  
                * Can pass this by itself to perform a knock and exit                                                                                                                 
        Will try and knock the defined git server and clone the provided repo                                                                                                         
                * Will not check if you're in a git dir                                                                                                                               
        Will try and knock the defined git server and git pull  



Can use provided to install

TODO - Features:

  • Warn about upstream updates

TODO - Stuff to fix:

  • Problems with --push-all when running from a relative path in the git dir (as opposed to the root)
  • multipule TODO:'s in various files
  • Code is getting messy, see TODOs
  • Added basic color support, should really be moved somewhere else so the module can make proper use of it
  • Won't recognize as a git dir unless in the top level of the repo