Fresh update stumples on directories with "<file/dirname>.git" files.
smstern opened this issue · comments
smstern commented
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.
done < <(find $FRESH_PATH/source -type d -name '.git' | sort)
my $wanted = sub {
/\.git\z/ && push @paths, dirname($_);
};