freshshell / fresh

Keep your dotfiles fresh.

Home Page:https://freshshell.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Fresh update stumples on directories with "<file/dirname>.git" files.

smstern opened this issue · comments

I am using the git-completion.bash file from the git/git repo.

The issue is that during fresh update their are multiple unneeded git pull(s) are triggered.

The content of my freshrc file

fresh freshshell/fresh bin/fresh --bin
fresh git/git contrib/completion/git-completion.bash

The result of the first fresh update looks fine.

* Updating freshshell/fresh
| Already up to date.
| Current branch master is up to date.
Cloning into '/home/ubuntu/.fresh/source/git/git'...
remote: Enumerating objects: 207, done.
remote: Counting objects: 100% (207/207), done.
remote: Compressing objects: 100% (99/99), done.
remote: Total 275421 (delta 124), reused 173 (delta 108), pack-reused 275214
Receiving objects: 100% (275421/275421), 124.73 MiB | 5.35 MiB/s, done.
Resolving deltas: 100% (204536/204536), done.
Your dot files are now fresh.

The output of subsequent call of fresh update.

ubuntu@fresh:~$ fresh update
* Updating freshshell/fresh
| Already up to date.
| Current branch master is up to date.
* Updating git/git
| Already up to date.
| Current branch master is up to date.
* Updating t/t5515
| Already up to date.
| Current branch master is up to date.
* Updating t/t5515
| Already up to date.
| Current branch master is up to date.
* Updating t/t5515
| Already up to date.
| Current branch master is up to date.
* Updating t/t5515
| Already up to date.
| Current branch master is up to date.
* Updating t/t5515
| Already up to date.
| Current branch master is up to date.
* Updating t/t5515
| Already up to date.
| Current branch master is up to date.
* Updating t/t5515
| Already up to date.
| Current branch master is up to date.
* Updating t/t5515
| Already up to date.
| Current branch master is up to date.
Your dot files are now fresh.

I expect additionall unneeded 8 calls of t/t5515 belongs to the files below.

ubuntu@fresh:~$  find ~/.fresh/source/git/git/ -name "*.git"
/home/ubuntu/.fresh/source/git/git/.git
/home/ubuntu/.fresh/source/git/git/t/t5515/fetch.br-unconfig_.._.git
/home/ubuntu/.fresh/source/git/git/t/t5515/refs.br-unconfig_.._.git
/home/ubuntu/.fresh/source/git/git/t/t5515/fetch.br-unconfig_--tags_.._.git
/home/ubuntu/.fresh/source/git/git/t/t5515/refs.master_.._.git
/home/ubuntu/.fresh/source/git/git/t/t5515/fetch.master_--tags_.._.git
/home/ubuntu/.fresh/source/git/git/t/t5515/fetch.master_.._.git
/home/ubuntu/.fresh/source/git/git/t/t5515/refs.master_--tags_.._.git
/home/ubuntu/.fresh/source/git/git/t/t5515/refs.br-unconfig_--tags_.._.git

My impression is that the perl script version only checks the ending of the file/directory name.

Bash version (last version)

done < <(find $FRESH_PATH/source -type d -name '.git' | sort)

Perl version (first version)

my $wanted = sub {
      /\.git\z/ && push @paths, dirname($_);
};

The issue is solved by pull request #162