Search code examples
gogs

Git mirror setup with bare upstream repo for Gogs


Given an existing bare repository on a network share, I'd like to be able to use Gogs for issue tracking (etc.) without disrupting the workflow for everyone else who's already using the bare repo.After reading up a bit, I was under the impression that a mirror would provide this functionality, and I would be able to set it up in Gogs through a Migration. When adding a Migration in Gogs by providing the path to the network bare repository and selecting "This repository will be a mirror", however, I get the following error:

Migration failed: check bare: exit status 128 - fatal: bad object HEAD

Looking at the log, I can see the following:

2016/06/13 13:19:20 [T] action.newRepoAction: myuser/the-repo-name
[git-module] git clone --mirror --quiet X:\path\to\bare\repo.git X:\path\to\gogs\repo.git
2016/06/13 13:19:30 [W] Delete repository wiki [X:\path\to\gogs\the-repo-name.wiki.git]: exit status 2

Strangely enough, I can issue git clone --mirror through git bash and have it execute successfully.

$ git clone --mirror /X/path/to/repo.git my-mirror.git
Cloning into bare repository 'my-mirror.git'...
done.

My questions are the following:

  1. Is this set up possible? That is, can I commit to the Gogs mirror and have my commits pushed upstream to the bare repo, and viceversa (commits from other users to the bare being synchronized with my Gogs mirror)?
  2. If so, how can I get this to work on Gogs?

Many thanks in advance!

PS: I also get the error above when attempting the Migration on a brand new bare repo, so I wouldn't think the issue lies in the bare repo itself.


Solution

  • After trying this again on the last release of gogs (v0.9.13), the issue seems to have been fixed.