设置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文件一样
转自:http://bmanlog.sinaapp.com/?p=32
设置SVN,Git忽略MAC的.DS_Store文件的方法的更多相关文章
- [macOS] git忽略所有的.DS_Store文件
最彻底的方法如下: vi ~/.gitignore_global 输入以下内容 # OS generated files # ###################### .DS_Store .DS_ ...
- git 忽略已跟踪的文件
对于未跟踪的文件,可以编辑.gitignore文件进行忽略. 对于已跟踪的文件,编辑.gitignore文件不会起作用,它只针对未被跟踪的文件,也就是你先设置规则,然后添加的新文件符合这些规则的就会被 ...
- Git 忽略.idea/workspace.xml文件
在使用idea进行提交代码时,执行提交时一直出现modified: .idea/workspace.xml 非常让人烦恼. 问题原因: 原因在于Git的忽略,Git在同步代码时,设置本地忽略文件的 ...
- git 忽略不提交的文件3种情形
1..gitignore文件 :从未提交过的文件,从来没有被 Git 记录过的文件 也就是添加之后从来没有提交(commit)过的文件,可以使用.gitignore忽略该文件.只能作用于未跟踪的文件( ...
- git中避免提交.DS_Store文件[转载]
1. 先删除原有的.DS_Store: find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch 命令解释:在当前文件夹 ...
- git忽略规则以及.gitignore文件不生效解决办法
正文 Git忽略规则: #此为注释 – 内容被 Git 忽略 .sample # 忽略所有 .sample 结尾的文件 !lib.sample # 但 lib.sample 除外 /TODO # 仅仅 ...
- Git忽略提交规则 .gitignore文件
在使用Git的过程中,我们喜欢有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交.简单来说一个场景:在你使用git add .的时候,遇到 ...
- git忽略对已入库文件的修改
项目开发过程中,会遇到本地配置文件每个开发人员不同的情况,但如果遇到类似数据库配置这种最终需要加入 git 版本控制的配置,则会陷入两难境地.要么不跟踪,要么有人提交后其他人同步下来必须手动修改,非常 ...
- git忽略已经提交的文件【转载】
有时候我们添加.gitignore文件之前已经提交过了文件..gitignore只能忽略那些原来没有被track的文件(自添加以后,从未 add 及 commit 过的文件),如果某些文件已经被纳入了 ...
随机推荐
- 解决VM安装VMTools后错误提示,实现文件共享
在VM里给Red Hat 9.0安装VMTools后重启,在系统启动过程中出现三处提示,分别为:第一处:Mounting local filesystem: Error: Cannot mount f ...
- vs2015打开cshtml文件失败的解决方法
最近不知道为什么,用vs2015打开cshtml识图文件的时候会报错.也不知道是什么原因,google之后得到解决方法如下: Close VS Delete the content of %Local ...
- Python 学习笔记4
我是一个艺术家. 今天继续学习python啊.争取看到python流程控制.
- localStorage请使用getItem 和setITem
最近看别人的代码,发现他们在从localStorage里面的时候喜欢用dot来操作,而不是get setItem,记得以前说过这个事.下面再说一次吧. 用dot方式来操作( 每次以'hello'= ...
- 依赖跟踪如何工作的(How dependency tracking works)
这一块主要是理论的讲解,本人刚接触这块不久,就不敢翻译了,请参见园子里其他人的现有文章 http://www.cnblogs.com/TomXu/archive/2011/11/22/2256820. ...
- 比较全的 C# 操作 Word的代码
using System;using System.Collections.Generic;using System.Text;using Microsoft.Office.Interop.Word; ...
- finally语句包含return的情况
结论:1.不管有木有出现异常,finally块中代码都会执行:2.当try和catch中有return时,finally仍然会执行:3.finally是在return后面的表达式运算后执行的(此时并没 ...
- elasticsearch 批量插入
将下面数据写入requests { "create": { "_index": "index1", "_type": & ...
- java程序使用memcached
Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载. 1.linux环境下安装与启动memcache: 以编译安装的方式安装.具体参看: http://wang ...
- 《JS权威指南学习总结--1.2客户端JS》
1.2客户端JS --本节讲述客户端JS部分各章节的讲述内容 一.第十三章讲述JS代码通过<script>标签来嵌入到HTML文件中. 二.第十四章讲解WEB浏览器脚本技术,并涵盖客户端J ...