将每个新文件添加到svn,但忽略的文件除外

时间:2011-11-28 09:06:01

标签: svn configuration

我是颠覆新手。我已经创建了一个存储库,我想进行第一次提交。

有些文件和文件夹不应签入,例如cache/log/。我使用过svn propset svn:ignore -F svn_ignore.txt

我希望有一种简单的方法将新文件添加到svn。有没有办法在尊重svn:ignore设置的同时做到这一点?以下命令添加每个文件,甚至是忽略的文件:

svn add --force .

alias svn_add_all='svn st|grep ^?|sed s/?//|xargs svn add $1'

编辑这是我得到的:

$ svn status
?       web/images/test/film_super8.jpg
?       web/images/test/ea_dl_manager.jpg
?       web/images/test/minecraft_anaglyph.png
$ svn propget svn:ignore
cache/*
log/*
web/images/blog/*
web/images/test/*

2 个答案:

答案 0 :(得分:3)

  

模式严格适用于该目录 - 它们不携带   递归到子目录。

请参阅SVN documentation

因此,您必须在所有目录上应用模式,或者仅在需要忽略的目录上应用模式。

因此模式不应该包含像你这样的目录。 web/images/blog/*无效。 您应该转到blog文件夹并将svn:ignore设置为*

某些客户端具有“递归应用”功能,可以为您执行此操作。我不知道你是否可以用“默认”客户端做到这一点 但在你的情况下,它将毫无用处。当必须在任何地方忽略特定文件或模式时(例如Visual Studio项目的*.suo文件),可以使用它。

答案 1 :(得分:2)

svn status不应显示被忽略的文件 但问题可能在于您忽略文件的方式:请参阅“Command Line svn:ignore a file

  

你没有svn:ignore一个文件。

     

您在目录上放置svn:ignore属性以忽略该文件名模式!

# Add just the single file to the current directories ignore list (like above)
# Note the dot at the end of the command is important
svn propset svn:ignore secret.txt .

# See that things worked
svn propget svn:ignore .    # Notice the single file was added to the list
svn status --no-ignore      # You should see an 'I' next to the ignored files