From 25fcf0c265c682f092ce49a6849e5e09b38dffa9 Mon Sep 17 00:00:00 2001 From: slavaGanzin Date: Tue, 4 Oct 2016 21:26:19 +0300 Subject: git-auto-fetch: README.md --- plugins/git-auto-fetch/README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 plugins/git-auto-fetch/README.md (limited to 'plugins/git-auto-fetch/README.md') diff --git a/plugins/git-auto-fetch/README.md b/plugins/git-auto-fetch/README.md new file mode 100644 index 000000000..7f5eac49d --- /dev/null +++ b/plugins/git-auto-fetch/README.md @@ -0,0 +1,22 @@ +# Git auto fetch + +Automatically fetches all changes from all remotes every time you cd into yout git-initialized project. + +####Usage +Add ```git-auto-fetch``` to the plugins array in your zshrc file: +```shell +plugins=(... git-auto-fetch) +``` + +Every time you change directory to your git project all remotes will be fetched in background. Log of ```git fetch --all``` will be saved into .git/FETCH_LOG + +####Toggle auto fetch per folder +If you are using mobile connection or for any other reason you can disable git-auto-fetch for any folder: + +```shell +$ cd to/your/project +$ git-auto-fetch +disabled +$ git-auto-fetch +enabled +``` -- cgit v1.2.3-70-g09d2 From dbee3dd9c69c8d2e3299f2f7e7c68fabd06e33c5 Mon Sep 17 00:00:00 2001 From: slavaGanzin Date: Wed, 26 Oct 2016 23:47:51 +0300 Subject: 1. autofetch on zle-line-init 2. GIT_AUTO_FETCH_INTERVAL --- plugins/git-auto-fetch/README.md | 11 +++++++++-- plugins/git-auto-fetch/git-auto-fetch.plugin.zsh | 20 ++++++++++++++++---- 2 files changed, 25 insertions(+), 6 deletions(-) (limited to 'plugins/git-auto-fetch/README.md') diff --git a/plugins/git-auto-fetch/README.md b/plugins/git-auto-fetch/README.md index 7f5eac49d..04f1c9445 100644 --- a/plugins/git-auto-fetch/README.md +++ b/plugins/git-auto-fetch/README.md @@ -1,6 +1,6 @@ # Git auto fetch -Automatically fetches all changes from all remotes every time you cd into yout git-initialized project. +Automatically fetches all changes from all remotes while you are working in git-initialized directory. ####Usage Add ```git-auto-fetch``` to the plugins array in your zshrc file: @@ -8,7 +8,14 @@ Add ```git-auto-fetch``` to the plugins array in your zshrc file: plugins=(... git-auto-fetch) ``` -Every time you change directory to your git project all remotes will be fetched in background. Log of ```git fetch --all``` will be saved into .git/FETCH_LOG +Every time you launch a command in your shell all remotes will be fetched in background. +By default autofetch will be triggered only if last fetch was done at least 60 seconds ago. +You can change fetch interval in your .zshrc: +``` +GIT_AUTO_FETCH_INTERVAL=1200 #in seconds +``` +Log of ```git fetch --all``` will be saved into .git/FETCH_LOG + ####Toggle auto fetch per folder If you are using mobile connection or for any other reason you can disable git-auto-fetch for any folder: diff --git a/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh b/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh index 949709e4c..e9946ef3f 100644 --- a/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh +++ b/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh @@ -1,7 +1,10 @@ -function git-fetch-on-chpwd { +GIT_AUTO_FETCH_INTERVAL=${GIT_AUTO_FETCH_INTERVAL:=60} + +function git-fetch-all { (`git rev-parse --is-inside-work-tree 2>/dev/null` && dir=`git rev-parse --git-dir` && [[ ! -f $dir/NO_AUTO_FETCH ]] && + (( `date +%s` - `date -r $dir/FETCH_LOG +%s` > $GIT_AUTO_FETCH_INTERVAL )) && git fetch --all &>! $dir/FETCH_LOG &) } @@ -15,6 +18,15 @@ function git-auto-fetch { echo "${fg_bold[red]}disabled${reset_color}") } -chpwd_functions+=(git-fetch-on-chpwd) -git-fetch-on-chpwd -unset git-fetch-on-chpwd +eval "original-$(declare -f zle-line-init)" + +function zle-line-init () { + git-fetch-all + original-zle-line-init +} +zle -N zle-line-init + +# chpwd_functions+=(git-fetch-on-chpwd) +# git-fetch-on-chpwd +unset git-auto-fetch +unset original-zle-line-init -- cgit v1.2.3-70-g09d2 From b4007b54000d9ea681d69bb5e3dba0fdddaa91d9 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Wed, 26 Sep 2018 23:59:57 +0200 Subject: git-auto-fetch: small README fixes --- plugins/git-auto-fetch/README.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'plugins/git-auto-fetch/README.md') diff --git a/plugins/git-auto-fetch/README.md b/plugins/git-auto-fetch/README.md index 04f1c9445..35f3c2f71 100644 --- a/plugins/git-auto-fetch/README.md +++ b/plugins/git-auto-fetch/README.md @@ -1,9 +1,11 @@ -# Git auto fetch +# Git auto-fetch Automatically fetches all changes from all remotes while you are working in git-initialized directory. -####Usage -Add ```git-auto-fetch``` to the plugins array in your zshrc file: +#### Usage + +Add `git-auto-fetch` to the plugins array in your zshrc file: + ```shell plugins=(... git-auto-fetch) ``` @@ -14,10 +16,10 @@ You can change fetch interval in your .zshrc: ``` GIT_AUTO_FETCH_INTERVAL=1200 #in seconds ``` -Log of ```git fetch --all``` will be saved into .git/FETCH_LOG +Log of `git fetch --all` will be saved into `.git/FETCH_LOG` -####Toggle auto fetch per folder +#### Toggle auto fetch per folder If you are using mobile connection or for any other reason you can disable git-auto-fetch for any folder: ```shell -- cgit v1.2.3-70-g09d2