2009-09-01 147 views
4

我的回购有一个包含一些非常大的文件的目录,每当这些更改时它浪费了我每天更新的几分钟时间......它们不是我需要的文件。SVN:阻止子目录更新?

也许理想情况下,他们会在自己的回购站,但这不是我的选择...有没有一种方法可以让SVN不包括该目录,当我更新整个工作目录,但将允许我手动更新该子目录,如果我想每周左右?

最好使用龟,而不是命令行...

PS:我尝试使用忽略,但由于某种原因,似乎要删除的子目录...虽然这可能是我做错了。

回答

3

是的,你可以使用Subversion的新版本(版本1.5)--depth feature。你可以像下面这样做:用--depth immediates

  • 对于所有目录除了

    • 检查出你的项目的根目录要排除,检查出有没有--depth选择这些目录(或等价的一个,--depth infinity

    Subversion会记住您的深度偏好,因此当您从项目根目录执行update时,您省略的目录(包含大文件)将被跳过。

    TortoiseSVN在GUI中也支持checkout depth

    请注意,虽然1.5或更高版本的Subversion客户端将支持上述选项,但为了高效工作,服务器也必须更新到1.5或更高版本。否则,由于服务器不理解--depth请求,客户端将会询问所有内容并在客户端过滤掉更新。显然这不会解决您的更新问题花费太长时间。

  • 4

    Subversion 1.6增加了一项新功能,名为Spare Directory Exclusion(它甚至比1.5中的--depth更好),因为您可以直接指定不希望在单个命令中更新哪个目录。

    svn update --set-depth=exclude www 
    

    要找到的例子in the blog

    我真的不知道这是如何工作在乌龟(我认为这是不可能的)。

    +0

    它可能在TSVN。尝试“更新到修订”命令。然后选择您要/不想要的目录。它会从您的工作副本中“删除”未经检查的目录! – 2013-06-05 03:36:39

    1

    你能不能只是添加一个svn:ignore?