在SVN签出多个项目

在SVN签出多个项目,svn,tortoisesvn,Svn,Tortoisesvn,我有以下SVN结构: /Project1 /trunk ( Shared code between all clients of project 1 ) /branches Client1 ( Specific code for version project 1 of the client 1 ) Client2 ( Specific code for version project

我有以下SVN结构:

/Project1
    /trunk
        ( Shared code between all clients of project 1 )
    /branches
        Client1
            ( Specific code for version project 1 of the client 1 )
        Client2
            ( Specific code for version project 1 of the client 2 )
    /tags
    ...


/Project2
    /trunk
        ( Shared code between all clients of project 2 )
    /branches
        Client1
            ( Specific code for version project 2 of the client 1 )
        Client2
            ( Specific code for version project 2 of the client 2 )
    /tags
    ...


/Shared
    /trunk
        ( Shared code between project 1 and project 2 )
    /branches
        ...
    /tags
    ...
/Project1_Client1
  ... all the subdirectories as usual
  /Client1All
  /Shared
我想知道当我签出
Project1/branchs/Client1
时,是否可以自动签出
Project1/trunk
Shared/trunk
,以便在wwwroot具有以下结构:

/Project1_Client1
    ( Specific code for version project 1 of the client 1 )
    ( Shared code between all clients of project 1 )
    ( Shared code between project 1 and project 2 )

以下是获得解决方案所需的步骤(多亏了@Corbin和@Lazy_-Badget的提示,请查看以下步骤):

  • 将以下外部定义添加到目录
    /Project1/branchs/Client1

    /Project1/trunk Client1All
    /Shared/trunk Shared
    
  • 因此,在将目录
    /Project1/branchs/Client1
    签出为目录
    Project1\u Client1
    时,您应该获得以下本地结构:

    /Project1
        /trunk
            ( Shared code between all clients of project 1 )
        /branches
            Client1
                ( Specific code for version project 1 of the client 1 )
            Client2
                ( Specific code for version project 1 of the client 2 )
        /tags
        ...
    
    
    /Project2
        /trunk
            ( Shared code between all clients of project 2 )
        /branches
            Client1
                ( Specific code for version project 2 of the client 1 )
            Client2
                ( Specific code for version project 2 of the client 2 )
        /tags
        ...
    
    
    /Shared
        /trunk
            ( Shared code between project 1 and project 2 )
        /branches
            ...
        /tags
        ...
    
    /Project1_Client1
      ... all the subdirectories as usual
      /Client1All
      /Shared
    

  • 听起来你可能会强迫svn:externals做这个把戏。