2012-07-25 63 views
36

我有一個SVN項目有樹這樣的:svn籤深度

/project 
    /dir1 
     /subdir1 
      -file1 
      -file2 
      ..... 
     -file1 
     -file2 
     ..... 
    /dir2 
     -file1 
     -file2 
     ..... 
    /dir3 
     /subdir1 
      -file1 
      -file2 
      ..... 
     /subdir2 
      -file1 
      -file2 
      ..... 
     /subdir3 
      -file1 
      -file2 
      ..... 
     /subdir4 
      -file1 
      -file2 
      ..... 
    /dir4 
     -file1 
     -file2 
     ..... 
-file1 
-file2 

我需要從/項目

  • 全/ DIR1
  • 全/ DIR2籤

    • 所有文件
    • full/dir4
    • From/dir3我只需要/ subdir1和/ subdir3

    我可以使用svn命令行檢查這些文件/文件夾的某種深度嗎? 如果是的話我該怎麼辦? 結帳後可以將subdir2添加到dir3嗎? 如何更新以此方式創建的工作副本?將正常的「svn up」命令只更新這些文件夾或完整更新項目將執行?

  • 回答

    54

    你需要的是叫做sparse checkout

    在您的情況,您可以:

    svn co --depth files file:///project project 
    cd project 
    svn up --set-depth infinity dir1 dir2 dir4 
    svn up --set-depth empty dir3 
    svn up --set-depth infinity dir3/subdir1 dir3/subdir3 
    

    我可以添加subdir2結賬後DIR3?

    是:svn up --set-depth infinity dir3/subdir2

    創造了這個辦法,我如何更新工作副本?將正常的「svn up」 命令更新只有這些文件夾或完整更新的項目纔會執行 ?

    是的,svn up將只更新這些文件和文件夾,即更新深度將被保留。

    +0

    感謝lot.So如果我明白,如果一個新的文件夾(例如dir5)將被添加到項目也不會被更新。我對嗎? – 2012-07-26 06:17:07

    +0

    是的,dir5的父文件夾已將depth設置爲'files',因此將更新新文件,但不會更新新文件夾。 – ks1322 2012-07-26 07:43:37

    +3

    如果你想自動添加新的頂級子目錄,使用'--depth immediates'而不是'--depth文件'應該可以做到。 – 2013-11-11 12:06:51

    0

    1)使用svn了--set深入的空文件/文件夾的路徑

    //它會從系統中刪除該文件

    2)使用svn了--set-無限深度文件/文件夾路徑

    //它將從SVN服務器上的文件重新生成到本地系統