我刚开始使用SVN,在源代码控制下有一个不需要的缓存目录。如何忽略SVN的整个目录/文件夹?
我在OS X和命令行上使用版本和TextMate。
我刚开始使用SVN,在源代码控制下有一个不需要的缓存目录。如何忽略SVN的整个目录/文件夹?
我在OS X和命令行上使用版本和TextMate。
当前回答
感谢以上所有的贡献。我只是想分享一些额外的信息,从我的经验忽略文件。
当文件夹已经处于修订控制之下时
在svn导入和svn co文件后,我们通常第一次做什么。
所有运行时缓存、附件文件夹都将受到版本控制。 因此,在SVN ps SVN:ignore之前,我们需要从存储库中删除它。
在SVN 1.5版本以上,我们可以使用SVN del——keep-local your_folder, 但对于早期版本,我的解决方案是:
SVN导出文件夹的干净副本(没有.svn隐藏文件夹) SVN del本地和存储库, svn ci 复制文件夹 是否svn st并确认文件夹被标记为“?” 现在我们可以根据解做svn ps了
当我们需要忽略多个文件夹时
在一个目录下,我有两个文件夹需要设置为svn:ignore 如果我们设置了一个,另一个就会被移除。 然后我们想知道我们是否需要svn
SVN PE需要编辑文本文件,如果需要设置文本编辑器,可以使用该命令:
export SVN_EDITOR=vi
用“o”你可以打开一个新的行 输入要忽略的所有文件夹名称 按“esc”键退出编辑模式 输入“:wq”,然后按Enter键保存并退出
该文件看起来就像这样:
runtime
cache
attachments
assets
其他回答
...如果您想忽略多个目录(比如build/ temp/和*.tmp文件),您可以分两步完成(忽略第一步并编辑忽略属性(参见这里的其他答案),或者可以编写如下内容
svn propset svn:ignore "build
temp
*.tmp" .
在命令行中。
"谢谢你" svn用如此丑陋,虚伪和难以忽视文件的方式。
所以我写了一个脚本svn-ignore-all:
#!/bin/sh
# svn-ignore-all
# usage:
# 1. run svn status to see what is going on at each step
# 2. add or commit all files that you DO want to have in svn
# 3. remove any random files that you don't want to svn:ignore
# 4. run this script to svn:ignore everything marked '?' in output of `svn status`
svn status |
grep '^?' |
sed 's/^? *//' |
while read f; do
d=`dirname "$f"`
b=`basename "$f"`
ignore=`svn propget svn:ignore "$d"`
if [ -n "$ignore" ]; then
ignore="$ignore
"
fi
ignore="$ignore$b"
svn propset svn:ignore "$ignore" "$d"
done
另外,为了忽略特定的文件/路径名列表,我们可以使用这个变体svn-ignore。我认为svn-ignore-all应该像xargs svn-ignore一样。
#!/bin/sh
# svn-ignore
# usage:
# svn-ignore file/to/ignore ...
for f; do
d=`dirname "$f"`
b=`basename "$f"`
ignore=`svn propget svn:ignore "$d"`
if [ -n "$ignore" ]; then
ignore="$ignore
"
fi
ignore="$ignore$b"
svn propset svn:ignore "$ignore" "$d"
done
还有一件事:我倾向于用许多随机文件污染我的svn签出。当提交的时候,我将这些文件移动到“old”子目录中,并告诉svn忽略“old”。
也要注意后面的斜杠。我发现在我的忽略设置文件中包含images/*不会忽略./images/。当我运行svn status -u时,它仍然显示?图像。我把忽略设置改成只有图像,没有斜杠。做了状态检查,清除了。
感谢以上所有的贡献。我只是想分享一些额外的信息,从我的经验忽略文件。
当文件夹已经处于修订控制之下时
在svn导入和svn co文件后,我们通常第一次做什么。
所有运行时缓存、附件文件夹都将受到版本控制。 因此,在SVN ps SVN:ignore之前,我们需要从存储库中删除它。
在SVN 1.5版本以上,我们可以使用SVN del——keep-local your_folder, 但对于早期版本,我的解决方案是:
SVN导出文件夹的干净副本(没有.svn隐藏文件夹) SVN del本地和存储库, svn ci 复制文件夹 是否svn st并确认文件夹被标记为“?” 现在我们可以根据解做svn ps了
当我们需要忽略多个文件夹时
在一个目录下,我有两个文件夹需要设置为svn:ignore 如果我们设置了一个,另一个就会被移除。 然后我们想知道我们是否需要svn
SVN PE需要编辑文本文件,如果需要设置文本编辑器,可以使用该命令:
export SVN_EDITOR=vi
用“o”你可以打开一个新的行 输入要忽略的所有文件夹名称 按“esc”键退出编辑模式 输入“:wq”,然后按Enter键保存并退出
该文件看起来就像这样:
runtime
cache
attachments
assets
如果您正在使用特定的SVN客户端TortoiseSVN,那么在提交时,您可以选择右键单击项目并选择“添加到忽略列表”。