Exception: undefined method 'name' for nil:NilClass
Exception: undefined method 'full_path' for nil:NilClass
Exception: No such file or directory @ rb_sysopen - (filename)
Exception: Permission denied @ rb_sysopen - (filename)
Name can contain only letters, digits, emoji ...
Name has already been taken and Path has already been taken
Exception: Error importing repository into (namespace) - No space left on device
- 导入成功,但显示
Total number of not imported relations: XX
消息 - 导入时出现 Gitaly 调用错误
如果您在导入或导出时遇到问题,请使用 Rake 任务启用调试模式:
# Import
IMPORT_DEBUG=true gitlab-rake "gitlab:import_export:import[root, group/subgroup, testingprojectimport, /path/to/file_to_import.tar.gz]"
# Export
EXPORT_DEBUG=true gitlab-rake "gitlab:import_export:export[root, group/subgroup, projectnametoexport, /tmp/export_file.tar.gz]"
然后,查看以下关于特定错误消息的详细信息。
Exception: undefined method 'name' for nil:NilClass
username
无效。
Exception: undefined method 'full_path' for nil:NilClass
namespace_path
不存在。例如,某个群组或子群组拼写错误或丢失,或者您在路径中指定了项目名称。任务仅创建项目。如果您想将其导入到新的群组或子群组,请先创建它。
Exception: No such file or directory @ rb_sysopen - (filename)
在 archive_path
中指定的项目导出文件丢失。
Exception: Permission denied @ rb_sysopen - (filename)
git
用户无法访问指定的项目导出文件。
解决此问题:
- 将文件所有者设置为
git:git
。 - 更改文件权限为
0400
。 - 将文件移动到公共文件夹(例如
/tmp/
)。
Name can contain only letters, digits, emoji ...
Name can contain only letters, digits, emoji, '_', '.', '+', dashes, or spaces. It must start with a letter,
digit, emoji, or '_', and Path can contain only letters, digits, '_', '-', or '.'. It cannot start
with '-', end in '.git', or end in '.atom'.
在 project_path
中指定的项目名称由于某些原因无效。仅在 project_path
中放置项目名称。例如,如果您提供子群组的路径,会因为 /
不是项目名称中的有效字符而失败。
Name has already been taken and Path has already been taken
具有该名称的项目已存在。
Exception: Error importing repository into (namespace) - No space left on device
磁盘空间不足,无法完成导入。在导入过程中,tarball 被缓存到您配置的 shared_path
目录中。请验证磁盘是否有足够的空闲空间来容纳缓存的 tarball 和磁盘上的解压缩项目文件。
导入成功,但显示 Total number of not imported relations: XX
消息
如果您收到 Total number of not imported relations: XX
消息,并且在导入过程中没有创建议题,请检查 exceptions_json.log。您可能会看到类似 N is out of range for ActiveModel::Type::Integer with limit 4 bytes
的错误,其中 N
是超过 4 字节整数限制的整数。如果是这样,您可能会遇到关于议题的 relative_position
字段重新平衡的问题。
# Check the current maximum value of relative_position
Issue.where(project_id: Project.find(ID).root_namespace.all_projects).maximum(:relative_position)
# Run the rebalancing process and check if the maximum value of relative_position has changed
Issues::RelativePositionRebalancingService.new(Project.find(ID).root_namespace.all_projects).execute
Issue.where(project_id: Project.find(ID).root_namespace.all_projects).maximum(:relative_position)
重复导入尝试,并检查议题是否成功导入。
导入时出现 Gitaly 调用错误
如果您尝试将大型项目导入开发环境,Gitaly 可能会抛出关于调用次数过多的错误。例如:
Error importing repository into qa-perf-testing/gitlabhq - GitalyClient#call called 31 times from single request. Potential n+1?
此错误是由于开发环境设置的 n+1 调用限制。要解决此错误,请将 GITALY_DISABLE_REQUEST_LIMITS=1
设置为环境变量。然后重启您的开发环境并再次导入。