Databricks Repos拉取Git分支后文件缺失问题咨询
Databricks Repos执行Git Pull后远程分支文件未正常显示的常见原因
- 忽略规则匹配过滤
Databricks Repos同步文件时会同时执行两类忽略校验:一类是仓库根目录.gitignore中定义的过滤规则,另一类是平台内置的默认过滤规则,会自动屏蔽系统临时文件(如.DS_Store、Thumbs.db)、保留路径(.git、_resources目录下内容)、平台不支持识别的后缀格式文件。只要文件命中任意一条规则,就不会在Repos UI中展示。这类「文件短暂出现、再次拉取后消失」的现象,大概率是规则缓存延迟生效导致的:第一次拉取时忽略规则缓存未完成加载,文件临时展示;第二次拉取时规则校验完成,命中规则的文件直接被过滤隐藏。 - 文件大小、类型超出平台限制
Databricks Repos当前对可同步的单文件设置了100MB的大小上限,超过阈值的大文件、没有对应预览能力的二进制文件,同步过程中会被静默跳过,不会出现在文件列表里。 - 多层缓存不同步
Repos的文件展示依赖控制平面Git元数据、工作区节点本地文件的多层缓存,当仓库文件量级大、拉取时存在网络波动时,很容易出现缓存不一致的问题:第一次拉取时部分文件直接从未更新的缓存加载,短暂出现在列表中;第二次拉取触发全量元数据校验时,未完成实际同步的文件会被标记为不存在,从列表中隐藏。这类缓存问题可以通过执行Discard all changes重置本地工作区状态后重新拉取解决。 - 稀疏检出、Git子模块配置影响
Databricks Repos底层基于Git稀疏检出能力实现仓库同步,如果之前通过API或后台配置修改过稀疏检出规则,规则未覆盖的文件路径根本不会被拉取到工作区,自然不会展示。另外Repos默认不会递归拉取Git子模块内容,存放在子模块中的文件无论执行多少次Pull,都不会出现在主仓库的文件列表中。 - 文件路径不符合平台规范
如果文件名包含Databricks文件系统不支持的特殊字符、同路径下存在仅大小写不同的同名文件(比如同目录下同时有test.py和Test.py)、文件全路径长度超过平台支持的2048字符上限,这类存在合规问题的文件同步时会被静默跳过,也会出现首次加载临时展示、二次校验后隐藏的现象。
内容的提问来源于stack exchange,提问作者Jorge
相关产品推荐
相关产品推荐

