解决方案
设置父目录的 svn:ignore
属性:
svn propset svn:ignore dirname .
如果要忽略多项内容,请按属性值中的换行符分隔。在这种情况下,使用外部编辑器编辑属性值更容易:
svn propedit svn:ignore .
其他提示
这是一个示例目录结构:
\project
\source
\cache
\other
在 project
中,您会看到未添加缓存目录并显示为此目录。
> svn st
M source
? cache
要设置ignore属性,请执行
svn propset svn:忽略缓存。
其中 svn:ignore
是您正在设置的属性的名称, cache
是属性的值,。
是您正在设置此属性的目录。它应该是 cache
目录的父目录,需要该属性。
要检查设置了哪些属性:
> svn proplist
Properties on '.':
svn:ignore
要查看 svn:ignore
的值:
> svn propget svn:ignore
cache
删除先前设置的属性:
svn propdel svn:ignore
重要提及:
在命令行上,您无法使用
svn add *
这也会添加被忽略的文件,因为命令行会扩展 *
,因此 svn add
认为您希望添加所有文件。因此请改用:
svn add --force .
由于我花了一段时间试图让它工作,应该注意的是,如果文件已经存在于SVN中,则需要 svn delete
,然后编辑 svn :忽略
属性。
我知道这似乎很明显,但是当我认为它会在本地忽略它们时,它们在我的 svn status
列表中一直显示为?
。
要稍微扩展,如果您使用svn命令行工具执行此操作,则需要键入:
svn propedit svn:ignore path/to/dir
将打开您选择的文本编辑器,然后键入'*'忽略其中的所有内容,并保存+退出 - 这将包括svn中的目录本身,但忽略其中的所有文件,忽略该目录,使用父路径,然后在文件中键入目录的名称。保存后,运行更新('svn up'),然后检查相应的路径。
在父目录中设置 svn:ignore
属性:
$ cd parentdir
$ svn ps svn:ignore . 'cachedir'
这将覆盖 svn:ignore
的任何当前值。您可以使用以下命令编辑值:
$ svn pe svn:ignore .
这会打开你的编辑器。您可以添加多个模式,每行一个。
您可以使用以下方式查看当前值:
$ svn pg svn:ignore .
如果您使用的是GUI,则应该有一个菜单选项来执行此操作。
感谢所有的捐款上。我只想分享一些额外的信息从我的经验而忽略文件。
当文件夹已经在修订控制
后 svn进口 和 svn有 这些文件,我们通常做的第一次。
所有运行的高速缓存,附件夹将版本控制之下。因此,前 svn ps svn:忽略, 我们需要删除它从储存库中。
与SVN1.5版上,我们可以使用 svn del --keep-local your_folder
,
但对一个较早的版本,我的解决方案是:
- svn出口 一个干净的复制的文件夹(没有
.svn
隐藏文件夹) - svn del 地方和存储库,
- svn ci
- 回复制的文件夹
- 做 svn圣 并确认文件夹中都已标记为'?'
- 现在我们可以做的 svn ps 根据解决方案
当我们需要多个文件夹到可以忽略
- 一个目录中我有两个文件夹,需要设定为
svn:ignore
- 如果我们设置一个,另一个将被删除。
- 然后,我们想知道我们需要 svn pe
svn pe
将需要编辑的文本文件,并且可以使用这种命令,如果需要设置你的文本编辑器的使用 vi:
export SVN_EDITOR=vi
- 有"o"你可以打开一个新的线
- 类型的所有文件夹中的名字,你想要忽略
- 打esc'关键逃离编辑模式
- 类型":执行匹配",然后点击 输入 保存和退出
该文件看起来的东西,只是这样的:
runtime
cache
attachments
assets
先删除它......
如果你的目录 foo
已经受版本控制,请先删除它:
svn rm --keep-local foo
...然后忽略:
svn propset svn:ignore foo .
...如果你想忽略多个目录(比如 build /
temp /
和 * .tmp
文件),您可以分两步完成(忽略第一步并编辑忽略属性(请参阅此处的其他答案),或者可以编写类似
svn propset svn:ignore "build
temp
*.tmp" .
在命令行上。
如果您正在使用特定的SVN客户端 TortoiseSVN ,那么在提交时,您拥有右键单击项目并选择“添加到忽略列表”选项。
忽略多个条目的命令有点棘手,需要反斜杠。
svn propset svn:ignore "cache\
tmp\
null\
and_so_on" .
此命令将忽略当前目录中名为 cache
, tmp
, null
和 and_so_on
的任何内容。
我遇到了忽略嵌套目录的问题;我想忽略的顶级目录不会显示'svn status'但所有子目录都显示。这对其他人来说可能是不言而喻的,但我想我会分享它:
实施例
/中继线
/中继/高速缓存
/中继/高速缓存/ subdir1
/中继/高速缓存/ subdir2
cd /trunk
svn ps svn:ignore . /cache
cd /trunk/cache
svn ps svn:ignore . *
svn ci
“谢谢你” 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签出。在提交的时候,我将这些文件移动到一个“旧”子目录中,并告诉svn忽略'old'。
Bash one liner for multiple ignores:
svn propset svn:ignore ".project"\n'".settings"\n'".buildpath" "yourpath"
如果您的项目目录名为/ Project,并且您的缓存目录名为/ Project / Cache,那么您需要在/ Project上设置subversion属性。属性名称应为“svn:ignore”;并且属性值应为“Cache”。
有关详细信息,请参阅Subversion手册中的此页面。属性。
杰森的回答将起到作用。但是,不要将svn:ignore设置为“。”。在缓存目录中,您可能希望包含“缓存”在 parent 目录的svn:ignore属性中,以防缓存目录不总是存在。我是在一些“一次性”的情况下这样做的。文件夹。
保留SVN将无视的目标:
- 这将从存储库中删除文件,但保持目录在SVN控制下: 醇>
- 然后设置忽略目录(和所有内容): 醇>
svn delete --keep-local path / directory_to_keep / *
svn propset svn:ignore" *"路径/ directory_to_keep
如果您正在使用像TortoiseSVN这样的SVN的前端,或者某种IDE集成,那么在同一菜单中也应该有一个忽略选项,就像提交/添加操作一样。
设置svn:忽略财产。大多数UI svn工具都有一种方法可以执行此操作以及链接中的命令行讨论。
因为你使用的版本其实很简单:
- 浏览你的检查出副本
- 击目录忽略
- 在"忽略框右点编辑
- 类型*.* 忽略你所有的文件(或*。jpg只是jpg文件,等等。)
也可以观察你的斜杠。我发现在我的忽略设置文件中包含 images / *
并没有忽略 ./ images /
。当我运行 svn status -u
时,它仍显示?图片代码>。所以,我只是将忽略设置更改为
images
,没有斜杠。进行状态检查并将其清除。
以下一种方式解决 Eclipse :
首先,将文件夹与项目同步:
团队 - >同步
在下一个视图团队视图中,您可以看到可以提交给SVN服务器的所有资源。
因此,选择要忽略的资源的资源文件夹,然后可以使用
忽略它团队 - >添加到
svn:ignore
。
之后,在确认窗口中,选择第一个选项:“按名称忽略”。
例如,如果我想忽略目标文件夹及其.class资源,我将进行同步,并在同步视图中,我将选择目标文件夹。之后,我会选择
team->添加
到 svn:ignore
,然后我将确认确认窗口中的第一个选项。
在失去了很多时间寻找如何做这个简单的活动之后,我决定发布它并不难找到合适的解释。
首先让样本结构
$ svn st ?项目/主干/目标 ?项目/中继/ myfile.x
1–首先在mycase vim中配置编辑器 export SVN_EDITOR = vim
2– “ svn propedit svn:ignore project / trunk /”将打开一个新文件,您可以在我们的案例类型中添加您的文件和子目录“ target”保存并关闭文件并正常工作
$ svn st ?项目/中继/ myfile.x
感谢。