53

Git中,如果我有一个项目,里面有很多项目,假设有很多 Java 项目,我可以.gitignore在根目录中创建一个文件,它将在整个存储库中“受到尊重”。

如何为 SVN 项目执行此操作?

例如,如何为.gitignore以下内容进行“svn ignore”设置(通过 cmd 行)?

*.class
*.jar
*.war
*.ear
target/
.classpath
.settings/
.project
.metadata
bin/

问题中最重要的部分:如何使它适用于根目录中的新文件夹?例子:

svn propset svn:ignore "*.class" . -R在我的根目录下运行并提交。好的:

root
- folder1/
-- *.class (ignored)
-- other files (ok)
- folder2/
-- *.class (ignored)
-- other files (ok)

现在,我创建文件夹 3。以前的svn:ignore设置将不适用,对吧?有没有办法做到这一点?

4

4 回答 4

80

您可以使用svn:ignore. 您通常需要告诉 SVN 对文件应用特殊属性:

svn propset svn:ignore "*.jpg" .

(注意命令末尾的点。)

对于多个文件,您可以添加换行符。

键入与此处完全相同的换行符:

svn propset svn:ignore "file1
file2
file3" dir1

检查文件是否被忽略:

svn status --no-ignore

然后提交代码。

是的,许多重复的问题已经可用。

你可以参考我最喜欢的svn cheatguide

svn-ignore.txt您可以使用忽略的文件和目录创建一个文件 , :

*.class
*.jar
*.war
*.ear
 target/
.classpath
.settings/
.project
.metadata
 bin/

现在尝试以下操作:

svn propset svn:ignore -RF /root/svn-ignore.txt . [dot for current dir]

-R用于递归。

于 2013-06-25T16:10:23.940 回答
1

这就是我正在做的模仿.svnignore

svn为被调用创建一个包装器~/bin/svn

#!/bin/bash
case "$1" in
commit|status|apply-ignore)
    if test -f .svnignore ; then
        echo "Apply .svnignore: $(/usr/bin/svn propset svn:ignore -F .svnignore .)"
    fi
    ;;
esac
case "$1" in
apply-ignore) ;;
*) exec /usr/bin/svn "$@" ;;
esac

然后添加~/bin到你的路径之前/usr/bin

PATH=~/bin:$PATH ; export PATH

它适用.svnignorecommitstatus命令,也可以使用svn apply-ignore.

于 2020-02-21T12:36:06.777 回答
0

我以稍微不同的方式解决了这个问题。这只有在您使用 Bash shell 并安装了 Perl 时才有效,但这几乎是每台 Mac 和 Linux 机器。

将以下内容添加到您的.bashrc.bash_profile文件中:

alias _ss="svn status | egrep -v '`cat .svnignore|perl -p -e 's/\n/|/'`'"

不要忘记重新启动终端或执行以下操作:

source ~/.bashrc
(or .bash_profile if that's what you used)

现在创建一个名为.svnignore的文件,并将其放在您的存储库签出的目录中。

files/to/ignore
another/file
tmp
node_modules

现在当你跑

_ss

在工作副本的根目录中,它将读取 .svnignore 文件并忽略其中的任何内容。

我版本 .svnignore 文件的方式与版本 .gitignore 文件的方式相同。

注意:这只会影响svn status命令,它不会阻止您添加/提交被忽略的文件。

于 2014-03-25T19:24:42.797 回答
0

如果你和很多人一样使用 TortoiseSVN,有一个简单的方法可以忽略文件。你可以在 Windows 资源管理器中的任何地方打开 TortoiseSVN 菜单并选择设置,在常规选项卡中单击标有Subversion的部分下的编辑按钮。它将启动记事本。或默认文本编辑器,文件名为config

在文件中找到带有global-ignores的行并用 # 注释掉:

### Set global-ignores to a set of whitespace-delimited globs
### which Subversion will ignore in its 'status' output, and
### while importing or adding files and directories.
### '*' matches leading dots, e.g. '*.rej' matches '.foo.rej'.
# global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo __pycache__
#   *.rej *~ #*# .#* .*.swp .DS_Store [Tt]humbs.db

取消注释该行并使用要忽略的文件添加或替换文件模式并保存文件。

global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo __pycache__
    #   *.rej *~ #*# .#* .*.swp .DS_Store [Tt]humbs.db
于 2021-07-28T14:03:16.013 回答