切换至SAMBA共享盘后,Cornerstone操作SVN生成._前缀备份文件求助
解决Cornerstone操作SAMBA共享SVN工作副本时生成._前缀文件的问题
这是个典型的跨文件系统与SVN客户端交互的问题,我帮你梳理下原因和可行的解决办法:
为什么会生成._前缀文件?
这些._*文件其实是Mac系统为了兼容非APFS/HFS+文件系统而生成的资源分支/扩展属性存储文件。当你在Mac上访问SAMBA共享的CentOS服务器(通常用ext4文件系统)时,由于Linux文件系统不支持Mac特有的扩展属性,系统会自动把这些属性单独存成._开头的文件。而Cornerstone在执行还原、提交等操作时会修改文件内容,触发系统生成这些附属文件,SVN默认没有忽略它们,所以就显示为未版本控制的文件了。
解决办法
1. 让SVN全局忽略._文件(快速治标)
如果不想折腾服务器配置,最简单的方式是让SVN自动忽略所有._开头的文件:
- 打开终端,编辑SVN的全局配置文件:
open ~/.subversion/config - 找到
global-ignores这一行,去掉行首的注释符号(#),然后在列表末尾添加._*,修改后类似:global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store ._* - 保存配置后,再打开Cornerstone,这些
._文件就不会再显示为未版本控制的文件了。
2. 配置SAMBA服务器支持Mac扩展属性(彻底治本)
如果你有权限修改CentOS上的SAMBA配置,可以从根源上避免生成._文件:
- 编辑SAMBA的配置文件:
sudo vi /etc/samba/smb.conf - 在你的共享目录对应的配置段(比如
[your-share])里添加以下参数:vfs objects = fruit streams_xattr fruit:metadata = stream fruit:model = MacSamba fruit:posix_rename = yes fruit:veto_appledouble = no fruit:wipe_intentionally_left_blank_rfork = yes fruit:delete_empty_adfiles = yes - 重启SAMBA服务让配置生效:
这个配置会让SAMBA支持Mac的扩展属性存储,不再需要生成sudo systemctl restart smb._文件来兼容。
3. 批量清理已存在的._文件
如果已经积累了很多._文件,可以用终端命令批量删除:
# 先预览要删除的文件,确认无误后再执行删除 find . -name "._*" -type f # 确认后执行删除 find . -name "._*" -type f -delete
内容的提问来源于stack exchange,提问作者Snow Ball
相关产品推荐
相关产品推荐

