Experimentally, both the common dir and the worktree's git dir have a
.git/logs. But, as might be expected, the worktree's one has the
reflog for its HEAD and not any of the refs/ reflogs.
Implicitly, we are deciding here that the dgit quilt cache is shared
between all worktrees. That seems fine. I think we don't ever rely
on its actual current value, so even concurrent dgit runs ought to be
fine.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
changedir $maindir;
# When we no longer need to support squeeze, use --create-reflog
# instead of this:
- ensuredir ".git/logs/refs/dgit-intern";
- my $makelogfh = new IO::File ".git/logs/refs/$splitbraincache", '>>'
+ ensuredir "$maindir_gitcommon/logs/refs/dgit-intern";
+ my $makelogfh = new IO::File "$maindir_gitcommon/logs/refs/$splitbraincache", '>>'
or die $!;
my $oldcache = git_get_ref "refs/$splitbraincache";
my $child = open GC, "-|"; defined $child or die $!;
if (!$child) {
chdir $maindir or die $!;
- if (!stat ".git/logs/refs/$splitbraincache") {
+ if (!stat "$maindir_gitcommon/logs/refs/$splitbraincache") {
$! == ENOENT or die $!;
printdebug ">(no reflog)\n";
exit 0;