【问题标题】:Tortoise SVN: how to svn update folder but NOT its subfolders?Tortoise SVN:如何更新文件夹而不是其子文件夹?
【发布时间】:2010-11-27 16:09:09
【问题描述】:

这可能有一个简单的解决方案,但我可能一点也不擅长使用 Tortoise SVN。

我有这个工作目录,我前段时间检查过:

/folder
   file1
   file2
   /subfolder1
   /subfolder2

现在我要做的就是SVN 更新我的工作目录,只为/folder 中的文件,而不是它的子文件夹。我该怎么做?

请注意,在 SVN 服务器存储库中,/folder 现在包含我希望在 SVN 更新后在工作目录中看到的新文件 file3file4

编辑因为可能不清楚:SVN 更新期间不得触及子文件夹,我根本不希望它触及它们。我尝试使用 Greg 答案,但它不起作用,并且 警告:在更新期间,子文件夹 1 和子文件夹 2 将从您的工作副本中删除

谢谢。

【问题讨论】:

    标签: svn file tortoisesvn subdirectory


    【解决方案1】:

    您可以使用以下命令使 SVN 更新为非递归:

    svn update --depth=files
    

    --depth 参数可以采用以下参数:emptyfilesimmediatesinfinity

    要使用 GUI 而不是命令行执行此操作,您可以使用 Update to revision,可在此处找到:

    然后选择Head 修订版,您可以指定更新的递归程度:

    在你的情况下,选择Immediate children, including folders 是最合适的。

    【讨论】:

    • 我在问这个问题之前试过这个,但它不起作用,它正在删除子文件夹,不知道为什么。我再试一次,我会告诉你的。
    • 如果你也想带子文件夹,选择“直接子级,包括文件夹”
    • Juts 再试一次,我选择“Only file children”,文件被更新,SVN 服务器上的新文件也被检出,但问题是工作副本中的所有子文件夹都被删除了!
    • @Greg:如果我选择立即子级,包括文件夹“问题只是再次出现,但这次在子文件夹中包含的文件中,这些文件在更新期间被删除。我不知道这是要走的路。我不需要更新子文件夹,我希望 SVN 根本不 otuch subdfolder,我将来会更新它们,我希望他只更新主文件夹及其所有文件而不接触/删除子文件夹。
    • 你可以试试带有immediatesempty属性的命令行更新命令,让我们知道它们有什么作用?
    【解决方案2】:

    我通常从“检查修改”对话框执行部分更新。我启动它,单击“检查存储库”以获取可用更新,然后右键单击要获取的确切项目。

    【讨论】:

    • 谢谢!这就像一个魅力!这是完美的答案!我不知道为什么人们一直支持格雷格的回答,这对它的详细说明很好,但这是错误的。
    【解决方案3】:

    使用 TortoiseSVN 的 Update to Revision 代替 Update。将HEAD 指定为要更新到的修订版(或您要更新到的任何修订版),然后选中“仅更新顶层文件夹”框。

    如果您通过 TortoiseSVN 发出 SVN 命令或使用命令行 SVN 客户端,Greg 的解决方案可以正常工作。

    【讨论】:

    • 没有名为“仅更新顶部文件夹”的选项 Myabe 您的意思是“仅此项目”。我正在使用 TortoiseSVN 1.6.10 Build 19898 你的版本是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 2012-11-12
    • 2010-11-05
    相关资源
    最近更新 更多