han8809 发表于 2018-9-18 11:04:27

设置SVN,Git忽略MAC的.DS_Store文件的方法

  I. 显示Mac隐藏文件的命令:
  defaults write com.apple.finder AppleShowAllFiles -bool true
  隐藏显示Mac隐藏文件的命令:
  defaults write com.apple.finder AppleShowAllFiles -bool false
  II. 删除目录下的.DS_Store:
  Find /path/to/files –type f –name “.DS_Store” -print –delete
  或者:
  Find /path/to/files –type f –name “.DS_Store” -print0 | xargs –0 rm -rdf
  III. 配置SVN忽略.DS_Store文件:
  svn propset svn:ignore “.DS_Store” /path/to/files
  [文档 http://svnbook.red-bean.com/en/1.5/svn.ref.svn.c.propset.html]
  或者配置全局配置文件:
  编辑 ~/.subversion/config文件 搜索 global-ignores 然后添加 .DS_Store
  (配置SVN仓库忽略.DS_Store文件:
  svn propset –revprop -r HEAD svn:ignore “.DS_Store” http://svn.site.com/path/to/repository/project
  但SVN仓库默认不允许队revision property做修改,所以,这个命令可能无法执行,需要编辑一个hook(http://www.qinbin.me/svn-hook-hook-introduction/)(http://www.zeali.net/entry/533)文件,这个文件需要有执行权限
  例子如下(Windows):
  @ECHO OFF
  set repos=%1
  set rev=%2
  set user=%3
  set propname=%4
  set action=%5
  //设置超级用户,超级用户可以修改其他人的日志,其他人只能修改自己的日志
  set superUser=username
  //只允许日志svn:log的修改
  if /I not ‘%propname%’==’svn:log’ goto ERROR_PROPNAME
  //只允许修改日志,增加、删除等操作不允许
  if /I not ‘%action%’==’M’ goto ERROR_ACTION*
  //只允许用户修改自己的日志
  for /f “usebackq”   %%k in   (`svnlook author %repos% -r %rev%`)   do   @set var=%%k
  set rightUser=0
  if “%3″ == “%superUser%” set rightUser=1
  if “%3″ == “%var%” set rightUser=1
  if %rightUser% == 0 goto ERROR_USER
  goto :SUCCESS_EXIT
  :ERROR_USER
  echo 只允许用户修改自己的日志 >&2
  goto ERROR_EXIT
  :ERROR_PROPNAME
  echo 只有日志信息能被修改 >&2
  goto ERROR_EXIT
  :ERROR_ACTION
  echo 只允许修改日志,不允许增加、删除等操作 >&2
  goto ERROR_EXIT
  :ERROR_EXIT
  exit 1
  :SUCCESS_EXIT
  exit 0
  )
  (SVN 文档http://svnbook.red-bean.com/)
  IV. 用命令行防止.DS_Store文件生成
  Defaults write com.apple.desktopservices DSDontWriteNetworkStores true
  V. 对于使用git的情况:
  增加.DS_Store到库的顶层目录下.gitignore文件
  然后git add .gitignore
  Git commit –m “.DS_Store remove”
  全局配置方法:
  Git config —global core.excludesfile = /path/to/.gitignore
  然后配置这个.gitignore文件就像配置项目目录下的.gitignore文件一样

页: [1]
查看完整版本: 设置SVN,Git忽略MAC的.DS_Store文件的方法