Giter VIP home page Giter VIP logo

bit's Introduction

Twitter Follow

Tweet

bit
GitHub release (latest SemVer) Version Version Version

bit is an experimental modernized git CLI built on top of git that provides happy defaults and other niceties:

  • command and flag suggestions to help you navigate the plethora of options git provides you
  • autocompletion for files and branch names when using bit add or bit checkout
  • automatic fetch and branch fast-forwarding reducing the likelihood of merge conflicts
  • suggestions work with git aliases
  • new commands like bit sync that vastly simplify your workflow
  • commands from git-extras such as bit release & bit info
  • fully compatible with git allowing you to fallback to git if need be.
  • get insight into how bit works using bit --debug.

--- New ---

  • bit pr view and checkout pull requests from Github (Requires GitHub CLI)
  • easily update bit using bit update
  • single binary
  • much more suggestions available! (Roughly 10x more)
  • Install with homebrew & macports
  • Interactive prompt with env variable: BIT_INTERACTIVE=true

--- Coming Soon ---

  • bit anticipates when you'll need to type git status and will display it proactively
  • bit fix for all the times you did something you really wish you didn't
  • improved bit sync
  • QOL improvements when switching branches or deleting tags

Installation

Click here for installation instructions

Update

run bit update

Customization:

  • BIT_THEME=inverted
  • BIT_THEME=monochrome
Common commands at your finger tips

bit

Commit, bump a tag and push with a single command

bit

Instant git statistics and config information

bit

Bit specific command Usage

Create a new commit (roughly equivalent to git commit -am "commit message")

bit save [commit message]

Save your changes to the current branch [amends current commit when ahead of origin] (roughly equivalent to git commit -a or conditionally git commit -a --amend --no-edit)

bit save

Synchronize your changes to origin branch (Beta) (roughly equivalent to git pull -r; git push)

bit sync

(roughly equivalent to git pull -r; git push; git pull -r origin master; git push) bit sync origin master

You have access to ALL git commands as well.

bit commit -m "I can still use git commands", bit pull -r origin master

Example Workflow

bit switch example-branch Branch does not exist. Do you want to create it? Y/n

yes

Switched to a new branch 'example-branch'

[Makes some changes]

bit save "add important feature"

for multiline commits simply don't put the final quote until you're done typing

[fix an error for important feature]

bit save

[push changes to origin]

bit sync

[two days later confirm your branch is in sync with origin branch]

bit sync

[rebase your changes from origin master]

bit sync origin master

Donate

If you would like to support the development of bit, consider sponsoring me.

Principles

  1. Think in the age of the cloud
  2. Embed the spirit of modern day workflows
  3. Favor simplicity over complexity
  4. Bit should have happy defaults
  5. Bit must be fully compatible with Git

Inspiration

Thanks to Gitless, git-extras, researchers in the field and of course the developers of git itself! Also, thanks to go-prompt for the interactive prompt library

News

Changelog

v1.1.2

  • enhancement: add bit sw as alias for bit switch
  • fix: bit save will amend commits only when the commit doesn't exist in any other branch v1.1
  • enhancement: enable interactive prompt (keep bit running) with env variable: BIT_INTERACTIVE=true

v1.0

  • enhancement: significantly more autocompletions
  • enhancement: use fuzzy search for branch suggestions
  • refactor: completions now represented in tree data structure
  • fix: bit save no longer shows debug error outside debug mode
  • fix: use --is-inside-work-tree to determine whether inside a git repo
  • fix: gracefully handle bad release tags for bit release bump
  • fix: bit pr not listing PR in some cases
  • security: fix vuln on Windows where an exe in a malicious repository could run arbitrary code. Special thanks to RyotaK - https://github.com/Ry0taK for identifying this issue

v0.9

  • enhancement: improve bit sync behavior including bit sync <upstream> <branch>
  • enhancement: bit sync provides a rebase option for diverged branches`
  • fix: enable compatibility with non-english languages
  • enhancement: bit merge suggestions

v0.8

  • feature: checkout Pull Requests from github (requires gh pr list to work)
  • enhancement: install with homebrew: brew install bit-git
  • enhancement: Color themes BIT_THEME=inverted or BIT_THEME=monochrome light terminal backgrounds
  • fix: bit clone outside a git repo
  • enhancement: bit is now a single binary

v0.7

  • feature: update your cli with bit update

v0.6

  • fix: improved git compatibility for older versions of git
  • feature: emacs key binds
  • feature: relative and absolute branch times
  • feature: completions for rebase & log
  • enhancement: smarter suggestions
  • fix: show proper descriptions for some flags
  • fix: prevent panic on classical tab completion for some users

v0.5

  • bit switch, bit co, bit checkout will show prompt
  • fix bit tab completion (bitcomplete)
  • fix edge case where there is an invalid ref
  • various minor fixes
  • more completions
  • better suggestion filtering
  • absolute and relative times for branch suggestions

v0.4

  • multiline support with Go Survey Library
  • color mitigation to have roughly similar colors across OSs
  • fix README go get installation instructions
  • QOL improvements for bit sync

How to uninstall

go binaries are self-contained so uninstalling simply requires deleting the binary(ies)

rm `which bit`

If you ran bit complete optionally remove a line from your bash_profile, .zshrc etc.

complete -o nospace -C /Users/{_USER_}/go/bin/bit bit

How to install

using cURL (Simplest way to install)

Like bit? Sponsor bit for $5

curl -sf https://gobinaries.com/chriswalz/bit | sh;
bit complete;
echo "Type bit then press <ENTER> to show interactive prompt"
bit;

To overwrite installation location

export PREFIX=/opt/bit/git && mkdir -p ${PREFIX} ## optional: override default install location /usr/local/bin

bit, bit checkout & bit switch will show interactive prompts after you press ENTER

using go

Caveats: GOPATH and GOBIN need to be set. Verify with go env. If they are not set, add this to your .bashrc or .bash_profile etc. AND open new terminal

export GOPATH=$HOME/go
export GOBIN=$(go env GOPATH)/bin
go install github.com/chriswalz/bit@latest;
bit complete

using Homebrew (For MacOS users)

brew install bit-git
bit complete
bit

Not working? Try brew doctor

using MacPorts (For MacOS users)

sudo port selfupdate
sudo port install bit

using go (For Windows Users)

go env -w GO111MODULE=on

# if latest is not working, replace it with the latest tag found here https://github.com/chriswalz/bit/releases
go get github.com/chriswalz/bit@latest; 
bit

using Chocolatey (For Windows Users)

choco install bit-git

using zinit

zinit ice lucit wait"0" as"program" from"gh-r" pick"bit"
zinit light "chriswalz/bit"

Note: On Windows only the interactive prompt completion works not classic tab completion

using AUR (For Arch Linux Users)

For building a stable version from source, use the bit package

For building the latest git version from source, use the bit-git package

Note: These Packages are community-driven and not offically published my the bit maintainer.

Verify installation with:

bit

Dependencies: Git

Platform Support:

  • iTerm2 (macOS)
  • Terminal.app (macOS)
  • Command Prompt (Windows)
  • WSL/Windows Subsystem for Linux (Windows)
  • gnome-terminal (Ubuntu)

bit's People

Contributors

bo98 avatar chriswalz avatar chriswalz-bg avatar crivotz avatar crunchtime-ali avatar cxsu avatar digitalcoyote avatar edoreld avatar herbygillot avatar hultner avatar mcarifio avatar mmcculloh-dms avatar raccoonback avatar sarathsp06 avatar szemek avatar vladimyr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bit's Issues

Crash on pressing tab for autocompletion

Installed using curl, cd project, bit [tab] & crash

panic: runtime error: slice bounds out of range [:5] with length 4

goroutine 1 [running]:
github.com/posener/complete/v2.Complete(0x65e967, 0x3, 0x6d3c20, 0xc0001f55a0)
	/go/pkg/mod/github.com/posener/complete/[email protected]/complete.go:83 +0x514
github.com/posener/complete/v2.(*Command).Complete(...)
	/go/pkg/mod/github.com/posener/complete/[email protected]/command.go:20
main.main()
	/go/pkg/mod/github.com/chriswalz/[email protected]/bitcomplete/complete.go:57 +0x75b

OS: ubuntu 18.04
SHELL: zsh 5.4.2
Terminal: tilix/guake-terminal/io.elementary.terminal

Feature request: be more like readline

I'd expect the following behavior that isn't currently present:

  • ctrl+c should clear the input buffer, not exit completely
  • alt+left/alt+right should go back and forward a word. I think this is specific to my .inputrc; in that case the feature request changes to 'read inputrc' :P
  • more readline keybindings; in particular ctrl+o will run the current command without clearing the input buffer

runtime error

Describe the bug
Error appears on running bit command

To Reproduce
Steps to reproduce the behavior:

  1. Download Bit 0.7.5 on Mac with the curl instructions
  2. Run bit

Expected behavior
bit runs with no error

Screenshots
Screenshot 2020-10-20 at 08 33 41

Desktop (please complete the following information):

  • OS: 10.5.7
  • Terminal: iTerm2
  • Shell: zsh 5.8

Additional context (Add any other context about the problem here)

bitcomplete not installing via go get

Thanks for adding this method, however:

go get -u github.com/chriswalz/bit/bitcomplete;
cannot find package "github.com/posener/complete/v2" in any of:
        /snap/go/6439/src/github.com/posener/complete/v2 (from $GOROOT)
        /home/don/go/src/github.com/posener/complete/v2 (from $GOPATH)
cannot find package "github.com/posener/complete/v2/predict" in any of:
        /snap/go/6439/src/github.com/posener/complete/v2/predict (from $GOROOT)
        /home/don/go/src/github.com/posener/complete/v2/predict (from $GOPATH)

invalid github.com/

I am getting this error when I follow the hard method for getting bit on WSL1 for Windows 10.
golang 1.15.2
input
sudo GO111MODULE=on go get github.com/chriswalz/bit@latest;
I get permission denied if I don't sudo.
Output
package github.com/chriswalz/bit@latest: invalid github.com/ import path "github.com/chriswalz/bit@latest"

runtime error: index out of range [1] with length 1

Tried installing using curl commands, installed successfully.
While testing bit I got

runtime error: index out of range [1] with length 1
goroutine 1 [running]:
runtime/debug.Stack(0x6bf1c0, 0xc000182008, 0xc00008d760)
	/usr/local/go/src/runtime/debug/stack.go:24 +0x9f
github.com/chriswalz/bit/cmd.HandleExit()
	/go/pkg/mod/github.com/chriswalz/[email protected]/cmd/util.go:320 +0xc5
panic(0x636820, 0xc000180300)
	/usr/local/go/src/runtime/panic.go:969 +0x175
github.com/chriswalz/bit/cmd.AllGitSubCommands(0x0, 0x0, 0x0)
	/go/pkg/mod/github.com/chriswalz/[email protected]/cmd/util.go:350 +0x549
github.com/chriswalz/bit/cmd.AllBitAndGitSubCommands(0x7fa240, 0xc00010e040, 0x5, 0x8)
	/go/pkg/mod/github.com/chriswalz/[email protected]/cmd/util.go:377 +0x59
github.com/chriswalz/bit/cmd.glob..func3(0x7fa240, 0x82e7e8, 0x0, 0x0)
	/go/pkg/mod/github.com/chriswalz/[email protected]/cmd/rootShell.go:21 +0x65
github.com/spf13/cobra.(*Command).execute(0x7fa240, 0xc00018a010, 0x0, 0x0, 0x7fa240, 0xc00018a010)
	/go/pkg/mod/github.com/spf13/[email protected]/command.go:846 +0x2c2
github.com/spf13/cobra.(*Command).ExecuteC(0x7fa240, 0x5def05, 0xc0001cc000, 0xc0001d4000)
	/go/pkg/mod/github.com/spf13/[email protected]/command.go:950 +0x375
github.com/spf13/cobra.(*Command).Execute(...)
	/go/pkg/mod/github.com/spf13/[email protected]/command.go:887
github.com/chriswalz/bit/cmd.Execute()
	/go/pkg/mod/github.com/chriswalz/[email protected]/cmd/rootShell.go:66 +0x31
main.bitcli(...)
	/go/pkg/mod/github.com/chriswalz/[email protected]/main.go:49
main.main()
	/go/pkg/mod/github.com/chriswalz/[email protected]/main.go:42 +0x171

Integration-test output on zsh startup when using with zinit

Describe the bug

Error or zsh load using zinit install instructions

To Reproduce

Add to .zshrc:

zinit ice lucit wait"0" as"program" from"gh-r" pick"bit"
zinit light "chriswalz/bit"

When starting zsh in a directory which is not a git repository, I see:

fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
integration-test-10362

If starting zsh inside a git repository, it seems to run a git status:

On branch test
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
    new file:   ../foo
    new file:   foo

integration-test-26035

Expected behavior

No output whatsoever

Desktop (please complete the following information):

  • OS: Manjaro Linux
  • Terminal: xfce4
  • Shell: zsh

extras don't seem to work

Hi!
First of all - bit seems really awesome! Love the new workflow.

Tried using the extras, having some issues:

➜ bit info
--- INFO ---
fork/exec /tmp/bit/git-extras/git-info.sh: text file busy
--- SUMMARY ---
fork/exec /tmp/bit/git-extras/git-summary.sh: text file busy
--- EFFORT ---
fork/exec /tmp/bit/git-extras/git-effort.sh: text file busy
➜ bit effort
git: 'effort' is not a git command. See 'git --help'.
Command may not exist exit status 1

bit log

bit log
Branch was fast-forwarded

is it a bug?

display issue

image

zsh 5.1.1 (x86_64-ubuntu-linux-gnu)
ubuntu 1604
git 2.7.4
windows terminal 1.3.2651.0
font source-code-pro

WSL Support - Verified

Found this on Hackernews and promised to check in. It does in fact work, including autocompletion, on WSL2 with Ubuntu 20.04.1 LTS, kernel 4.19.104, with the Windows terminal app.

In fact, this is preferable to cmd which I currently experience the same issue as #29

`bit sync` assumes remote is named `origin`, override doesn't work

I (almost) always rename the original remote repository upstream.

When I create a new repository that does not have a remote called origin:

$ git init
$ echo "# Hello World!" >> README.md
$ git commit -a -m "Add readme"
$ git remote add upstream [email protected]:mhogerheijde/somerpo.git
$ bit sync
exit status 1
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
nothing to save or commit
fatal: No configured push destination.
Either specify the URL from the command-line or configure a remote repository using

    git remote add <name> <url>

and then push using the remote name

    git push <name>

Which is to be expected, since git itself also doesn't know. But I cannot tell bit to use a different upstream.

When I set an upstream repo for the master branch

$ git push --set-upstream upstream

Everything works as expected.

The --help output hints at that you should be able to use a different upstream:

$ bit sync --help
sync
sync origin master
sync local-branch

Usage:
  bit sync [flags]

Flags:
  -h, --help   help for sync

But this command doesn't work

$ bit sync upstream master
exit status 1
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.
[...]

bit switch crashes when providing no name

I get this:

❯ bit switch
runtime error: index out of range [-1]
goroutine 1 [running]:
runtime/debug.Stack(0x6aa880, 0xc00000e018, 0xc000061ba8)
	/usr/local/go/src/runtime/debug/stack.go:24 +0x9f
github.com/chriswalz/bit/cmd.HandleExit()
	/go/pkg/mod/github.com/chriswalz/[email protected]/cmd/util.go:341 +0xc5
panic(0x6252e0, 0xc0000168a0)
	/usr/local/go/src/runtime/panic.go:969 +0x175
github.com/chriswalz/bit/cmd.RunGitCommandWithArgs(0xc00000c090, 0x1, 0x1)
	/go/pkg/mod/github.com/chriswalz/[email protected]/cmd/rootShell.go:111 +0x42f
main.main()
	/go/pkg/mod/github.com/chriswalz/[email protected]/main.go:44 +0x1f9

Some info:

❯ uname --all
Linux ThinkPad-P53 5.4.0-48-generic #52~18.04.1-Ubuntu SMP Thu Sep 10 12:50:22 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
❯ git version --build-options
git version 2.17.1
cpu: x86_64
no commit associated with this build
sizeof-long: 8
❯ bit --version
git version 2.17.1

`bit info` is very verbose

This makes it hard to read the important points. Maybe this could be trimmed down to only the remote and recent commits? Or make the info configurable with flags, so that you have to pass -a to see it all?

--- INFO ---

## Remote URLs:

origin	[email protected]:rust-lang/docs.rs.git (fetch)
origin	[email protected]:rust-lang/docs.rs.git (push)
personal	[email protected]:jyn514/docs.rs.git (fetch)
personal	[email protected]:jyn514/docs.rs.git (push)

## Remote Branches:

  origin/HEAD -> origin/master
  origin/master
  personal/about
  personal/automate-all-the-things
  personal/behind-the-times
  personal/cleanup-lol
  personal/clippy
  personal/copy
  personal/crates
  personal/css
  personal/css-optional
  personal/deduplicate
  personal/deprecation-warning
  personal/fix-links
  personal/impl-from-err
  personal/ios
  personal/local
  personal/master
  personal/no-cache
  personal/no-duplicates
  personal/no-more-targets
  personal/non-null
  personal/old-docs
  personal/optional-rustfmt
  personal/prometheus
  personal/query
  personal/readme
  personal/redirects
  personal/releases-feed
  personal/remove-git2
  personal/sqlx
  personal/tests
  personal/version
  personal/welcome-to-the-matrix
  personal/whitespace

## Local Branches:

  always-foreground
  broken
  clippy
  copy
  crates
  css
  css-optional
  fix-metrics
  fix-tera
  impl-from-err
  ios
  limit-cpu
  lip-asyncin
  lip-asyncing
  load-registry-config
  master
  no-mutex
  non-null
  old-docs
  once_cell
  orig-async-lock
  query
* readme
  redirects
  router
  self-check
  sets
  sqlx
  sqlx-oops
  targeted-upgrade
  tired-of-hosting-parties
  tokio-redux
  tokio-spawn
  tracking-policy
  version
  whitespace

## Most Recent Commit:

commit 51110c564d1f4eaa8c650ee47dce3c498fbb3bf7
Author: Joshua Nelson <[email protected]>

    Show readmes even if the build fails

## Configuration (.git/config):

filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
filter.lfs.clean=git-lfs clean -- %f
user.name=Joshua Nelson
[email protected]
user.signingkey=E655823D8D8B1088
credential.helper=store
push.default=simple
core.eol=lf
core.editor=vim
core.preloadindex=true
core.excludesfile=~/.gitignore
core.autocrlf=false
alias.save=git-save
alias.update=submodule update
alias.conf=config
alias.module=submodule
alias.deepen=git pull --unshallow
alias.unshallow=git pull --unshallow
alias.a=add
alias.b=branch
alias.c=commit
alias.conf=config
alias.d=diff
alias.h=help
alias.l=log --graph --oneline
alias.r=remote
alias.s=status -sb --ignore-submodules
alias.t=tag
alias.v=!git --version
alias.recent=for-each-ref --sort=-committerdate --format='%(committerdate:short): %(refname:short): %(contents:subject)' refs/heads/
alias.signed=log --show-signature
diff.algorithm=minimal
submodule.fetchjobs=4
merge.tool=vimdiff
sendemail.smtpserver=smtp.gmail.com
sendemail.smtpserverport=587
sendemail.smtpencryption=tls
[email protected]
sendemail.smtppass=reubifikmyicbgdn
pull.rebase=true
includeif.gitdir:~/src/yottadb/.path=~/src/yottadb/.gitconfig
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
[email protected]:rust-lang/docs.rs.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
[email protected]:jyn514/docs.rs.git
remote.personal.fetch=+refs/heads/*:refs/remotes/personal/*
branch.version.remote=personal
branch.version.merge=refs/heads/version
branch.tired-of-hosting-parties.remote=personal
branch.tired-of-hosting-parties.merge=refs/heads/tired-of-hosting-parties
branch.copy.remote=personal
branch.copy.merge=refs/heads/copy
branch.css.remote=personal
branch.css.merge=refs/heads/css
branch.css-optional.remote=personal
branch.css-optional.merge=refs/heads/css-optional
branch.crates.remote=personal
branch.crates.merge=refs/heads/crates
branch.impl-from-err.remote=personal
branch.impl-from-err.merge=refs/heads/impl-from-err
branch.whitespace.remote=personal
branch.whitespace.merge=refs/heads/whitespace
branch.ios.remote=personal
branch.ios.merge=refs/heads/ios
branch.old-docs.remote=personal
branch.old-docs.merge=refs/heads/old-docs
branch.query.remote=personal
branch.query.merge=refs/heads/query
branch.sqlx.remote=personal
branch.sqlx.merge=refs/heads/sqlx
branch.redirects.remote=personal
branch.redirects.merge=refs/heads/redirects
branch.non-null.remote=personal
branch.non-null.merge=refs/heads/non-null
branch.clippy.remote=personal
branch.clippy.merge=refs/heads/clippy
branch.readme.remote=personal
branch.readme.merge=refs/heads/readme

--- SUMMARY ---

 project  : docs.rs
 repo age : 4 years, 9 months
 active   : 474 days
 commits  : 1940
 files    : 1752
 authors  : 
   481	Onur Aslan                    24.8%
   458	Joshua Nelson                 23.6%
   274	Pietro Albini                 14.1%
   227	Chase Wilson                  11.7%
   119	QuietMisdreavus               6.1%
    78	Wim Looman                    4.0%
    52	Guillaume Gomez               2.7%
    36	Koenraad Verheyden            1.9%
    26	Mark Rousskov                 1.3%
    22	Zexbe                         1.1%
    17	Michael Howell                0.9%
    10	Alan Du                       0.5%
     9	Folyd                         0.5%
     9	Reese Williams                0.5%
     7	cynecx                        0.4%
     6	Camelid                       0.3%
     6	Jonas Schievink               0.3%
     5	Jon Gjengset                  0.3%
     4	Jacob Hoffman-Andrews         0.2%
     4	Lzu Tao                       0.2%
     4	Maarten de Vries              0.2%
     4	Nemo157                       0.2%
     4	Robin Hundt                   0.2%
     4	Sam Reis                      0.2%
     4	Sora Morimoto                 0.2%
     4	ohaddahan                     0.2%
     3	Alex Shorsher                 0.2%
     3	Andreas Fuchs                 0.2%
     3	Corey Farwell                 0.2%
     3	Giacomo Pasini                0.2%
     3	LEARAX                        0.2%
     3	Sebastian Thiel               0.2%
     3	Wesley Norris                 0.2%
     2	Ashe Connor                   0.1%
     2	Fabio Valentini               0.1%
     2	Jack Gerrits                  0.1%
     2	Laurent Arnoud                0.1%
     2	Mara Bos                      0.1%
     2	Russell Cousineau             0.1%
     2	Samuel Tardieu                0.1%
     2	lzutao                        0.1%
     1	Alex Burka                    0.1%
     1	Ashley Mannix                 0.1%
     1	Benedikt Werner               0.1%
     1	Benjamin Coenen               0.1%
     1	Christoph Schulz              0.1%
     1	Dimitri Sabadie               0.1%
     1	Donough Liu                   0.1%
     1	Giang Nguyen                  0.1%
     1	Ivan Tham                     0.1%
     1	Johannes Löthberg             0.1%
     1	Jonathan Bastien-Filiatrault  0.1%
     1	Kaleb Elwert                  0.1%
     1	Koxiaet                       0.1%
     1	Lucio Franco                  0.1%
     1	Matthew Hall                  0.1%
     1	Mike Boutin                   0.1%
     1	Nemikolh                      0.1%
     1	Nicholas Young                0.1%
     1	Ohad Dahan                    0.1%
     1	Pascal Hartig                 0.1%
     1	Pradip Caulagi                0.1%
     1	Rekai Musuka                  0.1%
     1	Ryan Scheel                   0.1%
     1	Yuki Izumi                    0.1%
     1	Yuki Okushi                   0.1%
     1	bluss                         0.1%
     1	codetrotter                   0.1%
     1	theduke                       0.1%
     1	陈梓立                        0.1%

--- EFFORT ---

Commits | Files
    199 Cargo.lock
    188 Cargo.toml
    186 src/web/mod.rs
    166 src/web/rustdoc.rs
    135 src/bin/cratesfyi.rs
    133 src/docbuilder/rustwide_builder.rs
    111 src/web/releases.rs
    101 src/web/crate_details.rs
     96 templates/style.scss
     90 src/db/add_package.rs
     87 src/docbuilder/mod.rs
     80 src/db/file.rs
     79 README.md
     78 src/lib.rs
     76 src/storage/mod.rs

problems with ssh

Describe the bug
The bit is not working with repositories with access via ssh. When executing a checkout action on a branch for example, when entering my ssh password and confirming no success is obtained and no error either.

I tried with the same repository using https and had success when informing username and password performing the same action.

To Reproduce
A video showing the action performed.

Bit cast

Expected behavior
Succeed using ssh access.

Desktop (please complete the following information):

  • OS: Arch Linux
  • Terminal: Alacritty
  • Shell: zsh

Doesn't work very well with light color scheme

Describe the bug
A clear and concise description of what the bug is.
Text is almost unreadable or completely unreadable in a dozen or so different light color schemes from the popular base16 framework for terminal/syntax colours. Tried a dozen or so light color-schemes and only one were somewhat readable.

To Reproduce
Steps to reproduce the behavior:

  1. Pick a color scheme such as base16_github, grayscale-light, solarized light, one-lighter, papercolor-light, material-lighter, classic-light, atelier-cave-light
  2. Start bit
  3. Try to read text
  4. See unreadable text, no text or similar

Expected behavior
Text that's readable, configuration for a more basic light theme would be fine.

Screenshots
If applicable, add screenshots to help explain your problem.
Didn't screenshot them all but here's a few that exhibit said problem.

Screenshot 2020-10-26 at 22 19 25

Screenshot 2020-10-26 at 22 18 22

Screenshot 2020-10-26 at 22 17 11

Screenshot 2020-10-26 at 22 16 36

Screenshot 2020-10-26 at 22 16 26

Screenshot 2020-10-26 at 22 15 43

Screenshot 2020-10-26 at 22 15 01

Screenshot 2020-10-26 at 22 13 17

Desktop (please complete the following information):

  • OS: 64bit Mac OS X 10.15.7 19H2 x86_64 Darwin 19.6.0
  • Terminal: iterm
  • Shell: zsh

Additional context (Add any other context about the problem here)
As mentioned above, I'd be happy with a more simple monochrome that's configurable that works with light color-schemes as well. Of course the ideal would be support for actually base16_shell themes like a lot of "modern" cli tools got. But a simpler fallback for light color scheme users without base16 would still be desirable.

Getting runtime error

Getting runtime error after running cmd bit.

System Software Overview:

  System Version: macOS 10.15.6 (19G73)
  Kernel Version: Darwin 19.6.0
  Boot Volume: Macintosh HD
  Boot Mode: Normal
  Secure Virtual Memory: Enabled
  System Integrity Protection: Enabled

image

Feature request: more completions!

Some commands I use often that aren't currently suggested (or need 90% of the typing to be suggested):

  • git rebase -i $(git merge-base HEAD master) - this one is a stretch
  • git rebase -i master - bit will not complete master, you have to type it in yourself
  • git status - for some reason typing st shows pull --rebase origin master before commands starting with st?
  • git show - same bug, shows commands that don't start with sh before show
  • git checkout <branch> -- file - bit will complete up to <branch> but not further
  • git checkout -p; git add -p - bit will not show -p in the initial list. This one is a stretch.
  • git log <branch> - bit will not complete <branch>. It would also be nice to complete file names.
  • git diff --cached - diff needs up to dif to complete and --cached isn't suggested at all
  • git worktree add - bit will complete up to worktree but no further

Autocompletion menu not appearing in zsh

I've installed "the hard way", can confirm bit works, but the autocomplettion menu will just not appear.

Arch linux
❯ zsh --version
zsh 5.8 (x86_64-pc-linux-gnu)

Bit --version should be callable in folders that do not have a `.git` folder inside

Describe the bug
When running bit --version in a non-git folder

❯ bit --version
fatal: not a git repository (or any of the parent directories): .git

To Reproduce
Steps to reproduce the behavior:

  1. Install bit
  2. create an arbitrary directory mkdir /tmp/prettyArbitrary
  3. cd /tmp/prettyArbitrary
  4. bit --version

Expected behavior
Bit should output it's version despite the folder it being run from is not a git folder

Desktop (please complete the following information):

  • OS: Arch
  • Terminal: allacritty
  • Shell: zsh

Additional context
as mentioned in #30

Install issues for windows

Looks like should support windows, but the install instructions haven't been working for me.

$ curl -sf https://gobinaries.com/chriswalz/bit | sh;

  ==> Downloading github.com/chriswalz/bit@master
  ==> Resolved version master to v0.4.10
  ==> Downloading binary for windows amd64

  ==> Permissions required for installation to /usr/local/bin — alternatively specify a new directory with:
  ==>   $ curl -sf https://gobinaries.com/github.com/chriswalz/[email protected] | PREFIX=. sh
main: line 184: sudo: command not found

using git bash on windows 10

runtime error: slice bounds out of range [-1:]

I get this on some of my git repos:

λ bit
runtime error: slice bounds out of range [-1:]
goroutine 1 [running]:
runtime/debug.Stack(0x12aeb60, 0xc0000b4008, 0xc0000d76f0)
	/usr/local/go/src/runtime/debug/stack.go:24 +0x9f
github.com/chriswalz/bit/cmd.HandleExit()
	/go/pkg/mod/github.com/chriswalz/[email protected]/cmd/util.go:341 +0xc5
panic(0x1228560, 0xc0001a2000)
	/usr/local/go/src/runtime/panic.go:969 +0x175
github.com/chriswalz/bit/cmd.BranchList(0x5d, 0x4f, 0x4f)
	/go/pkg/mod/github.com/chriswalz/[email protected]/cmd/util.go:179 +0x550
github.com/chriswalz/bit/cmd.BranchListSuggestions(0x13e2980, 0xc000122000, 0x5d)
	/go/pkg/mod/github.com/chriswalz/[email protected]/cmd/util.go:208 +0x34
github.com/chriswalz/bit/cmd.CreateSuggestionMap(0x13e2980, 0xc0000d7c80, 0x1172357)
	/go/pkg/mod/github.com/chriswalz/[email protected]/cmd/rootShell.go:53 +0x88
github.com/chriswalz/bit/cmd.glob..func3(0x13e2980, 0x1416ba0, 0x0, 0x0)
	/go/pkg/mod/github.com/chriswalz/[email protected]/cmd/rootShell.go:20 +0x45
github.com/spf13/cobra.(*Command).execute(0x13e2980, 0xc0000961b0, 0x0, 0x0, 0x13e2980, 0xc0000961b0)
	/go/pkg/mod/github.com/spf13/[email protected]/command.go:846 +0x2c2
github.com/spf13/cobra.(*Command).ExecuteC(0x13e2980, 0x11d53a5, 0xc000100000, 0xc000108000)
	/go/pkg/mod/github.com/spf13/[email protected]/command.go:950 +0x375
github.com/spf13/cobra.(*Command).Execute(...)
	/go/pkg/mod/github.com/spf13/[email protected]/command.go:887
github.com/chriswalz/bit/cmd.Execute()
	/go/pkg/mod/github.com/chriswalz/[email protected]/cmd/rootShell.go:76 +0x31
main.bitcli(...)
	/go/pkg/mod/github.com/chriswalz/[email protected]/main.go:55
main.main()
	/go/pkg/mod/github.com/chriswalz/[email protected]/main.go:43 +0x18b

What does 'bit release' do?

'Generate a production release' doesn't say very much. Here is the output from running bit release offline:

$ bit release
Error: accepts 1 arg(s), received 0
$ bit release a
exit status 1
## readme...personal/readme
? Please provide a description of your changes [Enter 2 empty lines to finish] # I hit ctrl+c, because I don't know whether it's referring to the most recent commit or all commits since the latest release
On branch readme
Your branch is up to date with 'personal/readme'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        ...

nothing added to commit but untracked files present (use "git add" to track)
ssh: Could not resolve hostname github.com: Temporary failure in name resolution
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
ssh: Could not resolve hostname github.com: Temporary failure in name resolution
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

If bit is going to perform arbitrary git operations, I'd like to at least know what they are.

unclear use of "latest release"

at release page v0.4.19 seems latest version.

but when I type curl -sf https://gobinaries.com/chriswalz/bit | sh as README suggested, it downloaded v0.5.4.

Looks like at least one of them should be fixed -- changing the download link at gobinaries.com and/or changing latest release version

'Command may not exist' for commands that do exist

(sorry, posted a little early)

$ $GOPATH/bin/bit 
> bit pull
Your configuration specifies to merge with the ref 'refs/heads/readme'
from the remote, but no such ref was fetched.
Command may not exist exit status 1

Display issue

Describe the bug
Nothing is displayed at all. No dropdown and nothing

To Reproduce
Steps to reproduce the behavior:
bit

Expected behavior
Show colorful dropdown

Desktop (please complete the following information):

  • OS: Arch linux 5.8.14-arch1-1
  • Terminal: gnome-terminal
  • Shell: zsh 5.8 (x86_64-pc-linux-gnu), oh-my-zsh, p10k

Additional context (Add any other context about the problem here)

Add support for git switch -c

When I run git switch -c branch-name, I create a new branch.

When I run bit switch -c branch-name, it said "Branch was fast-forwarded". I didn't create a new branch.

Can we make bit switch -c branch-name create a new branch?

any plans to support l10n?

The difficulty of using git for the first time was that it was hard to read English explanations. It would be nice if bit would solve this. It will be good for beginners. (Perhaps the contributors will help translate)

Windows: cannot delete typed characters

version: install with go
terminal: Windows Powershell with Windows Terminal app
os: windows 10

steps to reproduce

cd <repo>
bit
# type puss <--- typo
# cannot backspace to delete 

Update process?

When using the curl install method, what is the planned upgrade path for new versions of bit? Just re-running that?

`bit sync` buggy behaviour with non-English locale

expected response: nothing to save or commit
actual response: Please provide a description of your changes...

LANG=en_EN.UTF-8 bit sync -> OK
LANG=ru_RU.UTF-8 bit sync -> not OK

therefore, bit sync -> not OK for me.

Interactive prompt completion does not display suggestions

I'm using macOS Catalina (10.15.7) and iTerm2 (3.3.2)

I installed bit through cURL:

curl -sf https://gobinaries.com/chriswalz/bit | sh;
curl -sf https://gobinaries.com/chriswalz/bit/bitcomplete | sh && echo y | COMP_INSTALL=1 bitcomplete

Autocompletion works but interactive suggestions don't show. Any ideas?

is there an option to show the git commands being executed?

I'm giving a try to bit, and I'm using bit sync to git pull

Is there some option to show the git command being executes when i run bit sync

If not, it would be a nice feature to have. In case something goes wrong, you can be sure what was executed and google around to fix it.

Feature request: `bit rebase --squash`

Like git rebase -i, but the prompt it opens up has all but the first commit set to squash instead of pick by default. Maybe it could have both an interactive and non-interactive mode? By 'interactive' I just mean 'opens the rebase prompt in your editor', like git.

err: strconv.Atoi: parsing "": invalid syntax

Describe the bug

bitcomplete errors instead of adding completions.

To Reproduce
Steps to reproduce the behavior:

$  GO111MODULE=on go get github.com/chriswalz/bit@latest;
go: finding github.com/chriswalz/bit v0.6.1
go: downloading github.com/chriswalz/bit v0.6.1
go: extracting github.com/chriswalz/bit v0.6.1
$ COMP_INSTALL=1 bitcomplete;
COMP_LINE  COMP_POINT  err: strconv.Atoi: parsing "": invalid syntax

Expected behavior

bitcomplete installs completions.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Ubuntu 20.04
  • Terminal: LXTerminal
  • Shell: bash

Additional context (Add any other context about the problem here)

HEAD is currently 5728e06.

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.