Original `config` and `description` files are missing from repositories folders after restore

Summary

I want to migrate from an omnibus install to a dockerized gitlab-ce instance. Both are v11.6.5.

Backup and Restore feature doesn't work as it should. Gitlab repositories folder content is not same after restore. e.g Modifications to some-repo.git/description or some-repo.git/config are lost on the restored gitlab instance.

Steps to reproduce

  1. Having a running gitlab-ce v11.6.5

  2. Kickoff a backup gitlab-rake gitlab:backup:create

  3. Move the backup to the new instance

  4. Follow restore instructions from https://docs.gitlab.com/ce/raketasks/backup_restore.html

  5. Check repositories folder content on the new gitlab instance

What is the current bug behavior?

It seems that the rake task gitlab:backup:create relies on git bundle features to save repositories. the task will pack each bundle alongside other data in the tar archive. The restore task seems to untar the backup archive, loop over repositories bundles and git clone repo.bundle them...

It means that any manual update done, e.g to a repository.git/description file will be lost.

What is the expected correct behavior?

I should be able to retrieve the exact same content/configurations/datas between my saved instance and the restored one.

The whole dataset from the backed up gitlab instance should be archived and restored unaltered.

Results of GitLab environment info

Expand for output related to GitLab environment info
Backup instance:

GitLab information Version: 11.6.5 Revision: 237bddc Directory: /opt/gitlab/embedded/service/gitlab-rails DB Adapter: postgresql URL: obfuscated HTTP Clone URL: obfuscated/some-group/some-project.git SSH Clone URL: git@obfuscated:some-group/some-project.git

GitLab Shell Version: 8.4.3 Repository storage paths: default: obfuscated/git-data/repositories Hooks: /opt/gitlab/embedded/service/gitlab-shell/hooks Git: /opt/gitlab/embedded/bin/git

New instance:

GitLab information Version: 11.6.5 Revision: 237bddc Directory: /opt/gitlab/embedded/service/gitlab-rails DB Adapter: postgresql URL: obfuscated HTTP Clone URL: obfuscated/some-group/some-project.git SSH Clone URL: git@obfuscated:some-group/some-project.git Using LDAP: no

GitLab Shell Version: 8.4.3 Repository storage paths: default: /var/opt/gitlab/git-data/repositories Hooks: /opt/gitlab/embedded/service/gitlab-shell/hooks Git: /opt/gitlab/embedded/bin/git

Assignee Loading
Time tracking Loading