首页 文章

SVN:忽略但不删除文件夹

提问于
浏览
13

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

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

如果我只恢复删除操作(由TortoiseSVN执行)但是添加“svn:ignore”属性,则此解决方案将失败 . TortoiseSVN会将“junk_folder”中的文件报告为非版本化,我想避免使用 .

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

EDIT :我忘了添加我尚未版本化(在第一次提交之前)然后一切正常 . 但是,如果您对已存在于存储库中的文件夹执行此操作,TortoiseSVN会将其标记为已删除,并在下次提交时从两个存储库(但不是从本地工作副本)中删除它 .

4 回答

  • 2

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

    我不知道TortoiseSVN是否有一个按钮,但是从命令行可以使用以下命令执行:

    svn propset svn:忽略“*”junk_folder

    (至少我认为这是正确的语法,在我的头脑中 . 如果有人认为这是错误的,请纠正我)

  • 2

    我将它用于编译器中间输出文件夹之类的东西,它从未删除任何东西 .

    为了重新测试这个,我在我的一个工作副本中找到了一个无版本的目录 . 我右键单击该目录,并导航到"Add to ignore list"选项 . 它扩展到目录名称 . 我选择了目录名称并收到一条弹出消息,指出它已被添加到忽略列表中 . 检查工作副本状态,父文件夹仅修改了属性 . 没有文件被标记为删除 .

    Ignoring Files And Directories

    enter image description here

    As a side note ,您还可以在使用"Check for Modifications"和提交对话框时使用对话框底部附近的复选框隐藏未版本控制的文件 .

  • 12

    我正在使用Eclipse Subversive和Tortoise SVN .

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

    如果右键单击工作副本中的文件夹,例如'tmp'或'cache'等,您只需添加'svn:ignore'属性并在其中放置一个外卡 . 您需要使用高级按钮来添加它,因为它不是要添加的快速属性列表 .

    我主要在Joomla上开发网站,定期安装程序或其他组件将文件留在我不想要的地方 . 并且正如所提到的'svn:使用'右键单击忽略'方法忽略这些文件夹意味着这些文件夹完全被排除在repo之外,这不是你想要的 - 你希望排除这些文件夹的内容,或者有时只是带有一定的延伸 .

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

  • 1

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

    Subversion不会删除您要求忽略的文件夹 . 事实上,这就是 svn:ignore 的全部目的:如果没有Subversion抱怨它,你可以拥有一个不在存储库中的文件夹 .

    这个 junk_folder 是如何创建的?是由您使用的脚本,还是手动执行?究竟何时被删除?你的意思是当你做一个新的结账时, junk_folder 不存在,或者TortoiseSVN在其父目录中添加 svn:ignore 属性后立即将其删除?

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

    我的建议是确保任何脚本需要 junk_folder 如果它不存在则创建它,而不是将它添加到您的存储库 . 您可以使用this pre-commit hook将其保留在存储库之外 . 这将是解决这个问题的最佳方法 . 没有理由为什么名为 junk_folder 的空目录应该在您的存储库中 .

相关问题