【问题标题】:How to ignore folder without removing it from my repository如何忽略文件夹而不将其从我的存储库中删除
【发布时间】:2011-10-16 10:58:30
【问题描述】:

我有这个 tmp/ 和 cache/ 目录,它们不断生成不需要提交的文件。

我如何设置它以便 svn 忽略它们,但不删除它们或从存储库中删除它们,它们是站点工作所必需的。

【问题讨论】:

  • 那么您是否已经将它们(缓存目录中的文件)添加到存储库?
  • 所以你需要把它们复制到某个地方,然后对它们都执行svn rm,然后添加svn:ignore属性,然后把它们放回去。这是做你想做的最简单(也是唯一)的方法

标签: svn repository


【解决方案1】:
$ cd /path/to/app/tmp
$ svn propset svn:ignore '*' .
$ cd /path/to/app/cache
$ svn propset svn:ignore '*' .

编辑:如果您之前已提交,请执行以下步骤

$ cd /path/to/app/tmp
$ svn st
M slkdjfag.jpg
M gasgsag.png
. #bunch of M's

$ svn rm * --force
$ svn ci -m'trunk: cleaning up tmp directory'
$ svn propset svn:ignore '*' .
$ touch a
$ svn st // shouldn't output anything

【讨论】:

  • 这就是我所做的,但是当我 svn status 时我仍然得到所有文件 M
  • 如果你之前提交过,你需要删除那些,cd /path/to/app/tmp/ ; svn rm *
  • 如果你有 .svn 目录,你也必须删除它们。
  • 所以基本上,我不能从 SVN 同步中删除一个文件夹并仍然将它保存在存储库中,我能做的最好的就是删除所有可修改的内容,并将忽略设置为文件夹的内容?
  • @Lachezar Todorov:你完全错了。没有任何正当理由手动删除.svn
【解决方案2】:

您可以将 svn 属性添加到父文件夹:svn:ignore。

如果你使用乌龟:Right click -> Properties -> SVN -> Properties... -> (add or edit)

在控制台中:svn propset svn:ignore [path/file(s)]

【讨论】:

  • 嗨,我这样做了,当我输入 svn status 时,所有文件仍然出现。似乎 svn ignore 完全排除了文件,并没有停止同步。但我不想删除这些文件夹,因为项目需要它们
  • 那些文件不应该被签入 - 当你更新它们时它们不受影响 - 这就是 svn:ignore 是什么......
  • @Petar Ivanov:已经添加的文件也将在更改时更新/提交。 svn:ignore仅影响新文件
  • 这就是我的意思 - 这些文件不应该被签入
【解决方案3】:

命令是:

svn propedit svn:ignore ./some_path

如果需要,您可以使用 * 表示路径中的“任何字符”,例如 *.project。

Tortoise svn 是用户友好界面的一个很好的解决方案(就像 Petar Ivanov 所说的那样)。如果您在 PC 上,它是“必备”软件。如果您在其他操作系统上或想要完全控制 svn,我建议您阅读有关使用 svn 的命令行的更多信息。这并不难,谷歌知道很多事情:)

您可以阅读更多相关信息:here

关于 cmd svn 的更多信息:here

【讨论】:

  • 嗨,我这样做了,当我输入 svn status 时,所有文件仍然出现。似乎 svn ignore 完全排除了文件,并没有停止同步。但我不想删除这些文件夹,因为项目需要它们
  • @Todorov 使用 TortoiseSVN 将删除文件夹以便能够忽略它。 Delete and add to ignore list 是唯一的选择。没有Ignore 命令:)
  • 在 Tortoise 中删除意味着从 svn 中删除,而不是从当前文件夹中删除。
猜你喜欢
  • 2011-12-15
  • 1970-01-01
  • 2017-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-03
  • 1970-01-01
  • 2020-10-11
  • 2011-11-06
相关资源
最近更新 更多