SVN:忽略但不删除文件夹

SVN:忽略但不删除文件夹,svn,tortoisesvn,Svn,Tortoisesvn,我有一个垃圾文件夹,我的应用程序在其中放置临时文件。我不想提交它们(当然),但文件夹必须存在,否则应用程序将崩溃 如果我使用标准的TortoiseSVN ignore特性,它会将“svn:ignore junk_folder”属性添加到父文件夹中,但它也会删除“junk_folder”,这是不可能发生的 如果我只恢复delete操作(由TortoiseSVN执行),但保留添加“svn:ignore”属性,则此解决方案将失败。TortoiseSVN会将“垃圾邮件文件夹”中的文件报告为非版本化,这是

我有一个垃圾文件夹,我的应用程序在其中放置临时文件。我不想提交它们(当然),但文件夹必须存在,否则应用程序将崩溃

如果我使用标准的TortoiseSVN ignore特性,它会将“svn:ignore junk_folder”属性添加到父文件夹中,但它也会删除“junk_folder”,这是不可能发生的

如果我只恢复delete操作(由TortoiseSVN执行),但保留添加“svn:ignore”属性,则此解决方案将失败。TortoiseSVN会将“垃圾邮件文件夹”中的文件报告为非版本化,这是我想要避免的

是否有任何解决方案可以让我完全忽略SVN中的特定文件夹(因此,无论在其中放入什么,都不会报告为未版本,也不会自动提交),而不删除它


编辑:我忘了添加我所说的已经版本化的文件夹。看起来,如果您忽略(svn:ignore或TortoiseSVN中的正确选项)一个尚未版本化的文件夹(在第一次提交之前),那么一切都正常。但是,如果您在存储库中已经存在的文件夹上执行此操作,则TortoiseSVN会将其标记为已删除,并在下次提交时将其从两个存储库(但不是从本地工作副本)中删除。

我将此用于编译器中间输出文件夹之类的操作,并且它从未删除任何内容

为了重新测试这一点,我在我的一个工作副本中找到了一个未版本目录。我右键单击目录,并导航到“添加到忽略列表”选项。它扩展为目录名。我选择了目录名并收到一条弹出消息,指出它已添加到忽略列表中。检查工作副本状态时,父文件夹只有属性修改。没有标记要删除的文件


作为旁注,您还可以在使用“检查修改”时隐藏未版本的文件,并在对话框底部附近添加复选框提交对话框。

我相信您可以在该文件夹中为“*”添加一个svn:ignore,而不是在“垃圾文件夹”本身上(换句话说,忽略“垃圾文件夹/*”)

我不知道TortoiseSVN是否有用于此的按钮,但在命令行中,您可以使用以下命令执行此操作:

svn propset svn:忽略“*”垃圾文件夹

(至少我认为这是正确的语法,我不知道。如果有人认为这是错误的,请纠正我)

你的意思是“如果我使用标准的OrtoiseSVN忽略功能,它会将
svn:ignore junk_folder
属性添加到父文件夹,但它也会删除
junk_folder

Subversion不会删除您要求其忽略的文件夹。事实上,这就是
svn:ignore
:的全部目的:允许您拥有一个不在存储库中的文件夹,而不必Subversion抱怨它

这个
垃圾文件夹是如何创建的?它是由您使用的脚本完成的,还是手动完成的?它到底什么时候被删除?您的意思是,当您执行新签出时,
junk\u文件夹
不存在,还是说一旦您在其父目录中添加
svn:ignore
属性,Ortoisesvn就会将其删除

如果您需要将该文件夹永久保存在存储库中,但它必须保持为空,则可以将
垃圾文件夹
添加到存储库中,然后创建一个
svn:ignore
属性,该属性设置为
*
。这将忽略文件夹中的任何内容


我的建议是确保无论脚本需要什么
junk\u文件夹
如果它不存在,就创建它,而不要将它添加到存储库中。您可以使用将其保留在存储库之外。这将是最好的处理方法。没有理由在您的存储库中应该有一个名为
垃圾文件夹
的空目录。

我使用的是Eclipse Subversive和Tortoise SVN

我解决这个问题的方法是使用来自Tortoise的properties对话框(但我认为Eclipse具有相同的特性)

如果右键单击工作副本中的文件夹,例如“tmp”或“cache”等,只需添加“svn:ignore”属性并在其中添加通配符即可。您需要使用“高级”按钮添加它,因为它不是要添加的属性的快速列表

我主要在Joomla上开发网站,定期安装程序或其他组件会将文件放在回购协议中我不想要的地方。如前所述,“svn:ignore”使用“右键单击ignore”方法删除这些文件夹意味着这些文件夹被完全排除在repo之外,这不是您想要的-您想要排除这些文件夹的内容,或者有时只是具有特定扩展名的文件


在得到stackoverflow的很多建议后,我今天注册了,只是为了回答这个问题,所以希望它对某人有所帮助-我尝试附加屏幕截图,但没有足够的代表:(

你能不能不简单地添加文件夹而不添加任何内容,这样签出时会产生一个空文件夹?@Wug-我想因为他的应用程序会在那里创建文件,所以他不希望SVN不断告诉他该目录中有未版本的文件。没错。我不希望任何关于此文件夹中内容或更改的报告,尤其是因为垃圾文件夹中有数千个文件和文件夹,而我的提交对话框中有大量这样的条目。因此,添加该文件夹,并在
垃圾文件夹
上设置
svn:ignore*
,忽略该文件夹的内容,而不是文件夹本身?我有一些带有配置目录之类内容的svn项目和日志目录,这些目录必须存在,并且本身已经版本化,但没有版本化的内容。SVN不会为此而困扰我。也许我只是用错了:)你写的东西真奇怪!每当我使用此选项时,它都会立即将该文件夹标记为已删除,并在下次提交时将其删除。这会导致应用程序崩溃。这已测试了大约数百次,因此我不敢相信你会在文件夹上使用此选项(否)