summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorIbrahim Serdar Acikgoz <serdaracikgoz86@gmail.com>2018-12-03 23:48:39 +0300
committerGitHub <noreply@github.com>2018-12-03 23:48:39 +0300
commitf37956a676e02b9eafe33fd51d13039efaf412a0 (patch)
treec320d84961ba3ec88af790401aed4da702f44104 /README.md
parentDevelop (#18) (diff)
downloadgitbatch-f37956a676e02b9eafe33fd51d13039efaf412a0.tar.gz
update readme
Diffstat (limited to 'README.md')
-rw-r--r--README.md44
1 files changed, 29 insertions, 15 deletions
diff --git a/README.md b/README.md
index 817249e..45d6e51 100644
--- a/README.md
+++ b/README.md
@@ -1,28 +1,38 @@
[![Build Status](https://travis-ci.com/isacikgoz/gitbatch.svg?branch=master)](https://travis-ci.com/isacikgoz/gitbatch) [![MIT License](https://img.shields.io/badge/license-MIT-brightgreen.svg)](/LICENSE) [![Go Report Card](https://goreportcard.com/badge/github.com/isacikgoz/gitbatch)](https://goreportcard.com/report/github.com/isacikgoz/gitbatch)
## gitbatch
-Aim of this tool to make your local repositories synchronized with remotes easily. Since my daily work is tied to many repositories I often end up walking on many directories and manually pulling updates etc. To make this routine more elegant, I made a decision to create a simple tool to handle this job in a seamless way. Actually I am not a golang developer but I thought it would be cool to create this tool with a new language for me. While developing this project, I am getting experience with golang. As a result, I really enjoy working on this project and I hope it will be a useful tool. I hope this tool can be useful for others too.
+Aim of this tool to make your local repositories synchronized with remotes easily. Since my daily work is tied to many repositories I often end up walking on many directories and manually pulling updates etc. To make this routine more elegant, I created a simple tool to handle this job. I really enjoy working on this project and I hope it will be a useful tool.
-**Disclamier**
-- This is still a work in progress project.
-- Authentication reuqired repostires are **NOT SUPPORTED** using ssh is recommended if you need to authenticate to fetch/pull
+**Disclaimer**
+- Authentication required repositories are **not supported** using ssh is recommended if you need to authenticate to fetch/pull
- [Connecting to GitHub with SSH](https://help.github.com/articles/connecting-to-github-with-ssh/)
- [GitLab and SSH keys](https://docs.gitlab.com/ee/ssh/)
- [BitBucket Set up an SSH key](https://confluence.atlassian.com/bitbucket/set-up-ssh-for-git-728138079.html)
-- This project is not widely tested in various environments. (macOS and Ubuntu is okay but didn't tried on Windows)
+- Some strange behavior is expected and feedbacks are welcome. For now, known issues are:
+ - At very low probability app fails to load repositories, try again it will open next time (multithreading problem)
+ - Sometimes when you scroll too fast while pulling/fetching/merging, some multithreading problem occurs and app crashes (will fix soon)
+ - colors vary to your terminal theme colors, so if the contrast is not enough on some color decisions; discussions are welcome
-Here is the initial look of the project:
-[![asciicast](https://asciinema.org/a/qmZDhmUjwWmZvdpZGYIRW56h7.svg)](https://asciinema.org/a/qmZDhmUjwWmZvdpZGYIRW56h7)
+Here is the screencast of the app:
+[![asciicast](https://asciinema.org/a/B4heYReiNgqwUbWL2RYnTzt5H.svg)](https://asciinema.org/a/B4heYReiNgqwUbWL2RYnTzt5H)
## installation
-the project is at very early version but it can be tested;
+for now, installation requires golang compiler and minimum golang 1.10 is recommended.
+- if you don't have golang installed refer to [golang.org](https://golang.org/dl/)
+- you should have $GOPATH env variable set and your $PATH includes $GOPATH/bin
+
+to install run the command;
+```bash
+go get -u github.com/isacikgoz/gitbatch
+```
+I prefer using gopath like this in my zshrc or bashrc;
```bash
-go get github.com/isacikgoz/gitbatch
+export GOPATH=$HOME/go
+export PATH=$PATH:$GOPATH/bin
```
## Use
-run the command the parent of your git repositories. For start-up options simply:
-`gitbatch --help`
+run the `gitbatch` command from the parent of your git repositories. For start-up options simply `gitbatch --help`
### Controls
@@ -53,6 +63,11 @@ run the command the parent of your git repositories. For start-up options simply
↖ (pushables) ↘ (pullables) → (branch) (✗ if dirty) (repository folder name) (• if queued)
- if pushables or pullables appear to be "**?**", that means no upstream configured for the active branch
+ - to resolve this issue;
+ 1. change directory the repository and checkout to the branch prints **?** on upstream
+ 2. make sure remote is set by running `git remote -v`
+ 3. run `git config --local --add branch.<your branch name>.remote=<your remote name>`
+ 4. run `git config --local --add branch.<your branch name>.merge=refs/heads/<your branch name>`
- the queued indicator color represents the operation same as mode color
#### Commit Screen
@@ -60,20 +75,19 @@ run the command the parent of your git repositories. For start-up options simply
- you can see the diff by simply pressing **d** on the selected commit
## Further goals
-- add testing, currently this is the M.V.P. so that people can swiftly get hands on
+- add testing
- select all feature
- arrange repositories to an order e.g. alphabetic, last modified, etc.
- shift keys, i.e. **s** for iterate **shift + s** for reverse iteration
-- binary distrubiton over [homebrew](https://github.com/Homebrew/brew) or similar
- recursive repository search from the filesystem
-- full src-d/go-git integration (*waiting for merge abilities*)
+- full src-d/go-git integration (*having some performance issues*)
- implement config file to pre-define repo locations or some settings
- resolve authentication issues
-- *maybe* handle conflicts with [fac](https://github.com/mkchoi212/fac) integration
## Credits
- [go-git](https://github.com/src-d/go-git) for git interface
- [gocui](https://github.com/jroimartin/gocui) for user interface
+- [logrus](https://github.com/sirupsen/logrus) for logging
- [lazygit](https://github.com/jesseduffield/lazygit) as app template
- [color](https://github.com/fatih/color) for colored text
- [kingpin](https://github.com/alecthomas/kingpin) for command-line flag&options