Hello,
Because we have a fairly large repository, our developers rely on
worktrees created off a bare mirror clone. I'd like to enable
maintenance, and since the worktrees are rather short-lived instances,
we cannot point 'git maintenance' to it.
So the proper solution is to do it from the bare clone itself.
However, 'git maintenance register' silently fails (with an 0 exit
code). There are two tell-tale signs:
1. 'git config --global --get maintenance.repo' returns '.'
2. There are no Crontab entries inserted.
Running 'git maintenance register' from a worktree created off the
bare clone works as expected.
To reproduce:
git init --bare test-me
git -C test-me maintenance register
git config --global --get maintenance.repo
The workaround, for now, is to run this from a worktree, then use 'git
config' to reset to the corresponding bare clone location.
Thanks,
Clément
From: Eric Sunshine <hidden> Date: 2021-02-23 05:04:11
On Mon, Feb 22, 2021 at 9:02 PM Clement Moyroud
[off-list ref] wrote:
So the proper solution is to do it from the bare clone itself.
However, 'git maintenance register' silently fails (with an 0 exit
code). There are two tell-tale signs:
1. 'git config --global --get maintenance.repo' returns '.'
2. There are no Crontab entries inserted.
I can confirm that problem 1 is a bug. However, I am unable to
reproduce problem 2.
Note that the crontab entry won't be created until you run `git
maintenance start`. Is it possible that you are forgetting that step?
(Be aware that `git maintenance start` will show a misleading "no
crontab for <user>" message if you don't already have a crontab file,
but the crontab entry will be created nevertheless, as evidenced by
`crontab -l`.)
I have a patch which fixes the problem with the bare repo path being
incorrectly registered as ".", but I still need to create a regression
test for it.
From: Eric Sunshine <hidden> Date: 2021-02-23 07:37:30
On Tue, Feb 23, 2021 at 12:03 AM Eric Sunshine [off-list ref] wrote:
On Mon, Feb 22, 2021 at 9:02 PM Clement Moyroud
[off-list ref] wrote:
quoted
So the proper solution is to do it from the bare clone itself.
However, 'git maintenance register' silently fails (with an 0 exit
code). There are two tell-tale signs:
1. 'git config --global --get maintenance.repo' returns '.'
I have a patch which fixes the problem with the bare repo path being
incorrectly registered as ".", but I still need to create a regression
test for it.
On Mon, Feb 22, 2021 at 9:03 PM Eric Sunshine [off-list ref] wrote:
quoted
1. 'git config --global --get maintenance.repo' returns '.'
2. There are no Crontab entries inserted.
I can confirm that problem 1 is a bug. However, I am unable to
reproduce problem 2.
Note that the crontab entry won't be created until you run `git
maintenance start`. Is it possible that you are forgetting that step?
(Be aware that `git maintenance start` will show a misleading "no
crontab for <user>" message if you don't already have a crontab file,
but the crontab entry will be created nevertheless, as evidenced by
`crontab -l`.)
My bad. I misread the manpage, and didn't try to run 'git maintenance start'
on the bare repo, since the first step did not look right.
I have a patch which fixes the problem with the bare repo path being
incorrectly registered as ".", but I still need to create a regression
test for it.