代码之家  ›  专栏  ›  技术社区  ›  fuenfundachtzig

Subversion:我可以一次提交几个已签出的文件夹吗?

  •  3
  • fuenfundachtzig  · 技术社区  · 16 年前

    假设我的SVN存储库中有几个不同文件夹的工作副本分散在我的文件系统中。它们的父目录不是存储库的一部分。例如。

    somedir1\
       workingcopyOfA\
       workingcopyOfB\
    somedir2\
       somedir3\
           workingcopyOfC\
       workingcopyOfD\
    

    现在,它们都包含我希望立即签入的更改(调用 svn

    这可能吗?这就是变更单的目的吗?如果我使用 svn

    (这里有一些类似的问题,但它们指的是不同的问题。)

    编辑:澄清:工作副本都属于同一个存储库,但属于不同的部分,即存储库如下所示:

    RepoDirA\
    RepoDirB\
    RepoDirC\
    RepoDirD\
    
    5 回复  |  直到 16 年前
        1
  •  3
  •   Bahbar    16 年前

    正如其他人所指出的,这是不可能的,因为有充分的理由(见D Garcia的答案)。

    如果eclipse支持类似的东西,我怀疑它会在背后创建多个签入。

    不要 svn co -N root svn update path/to/subsetOfInterest 用于中间目录)。这样,它们都生活在同一个工作目录中,并允许对它们进行原子化处理。

        2
  •  1
  •   Aaron Digulla    16 年前

    我知道Eclipse可以做到这一点,但可能他们在内部使用了一些技巧(因为您也可以提交使用不同存储库的项目,例如CVS中的项目和SVN中的项目)。

    我建议你和你的客户试一下。如果它不工作,它将打印一个错误。你不可能打破任何东西。

        3
  •  1
  •   D Garcia    16 年前

    看来你做不到。我在这里试过了,在那里我经常签出多份工作副本。Subversion对您试图签入的文件夹的公共根目录中没有.svn目录感到恼火。

    请注意,这是在subversion 1.4.5中实现的。

        4
  •  0
  •   Jochen    16 年前

        5
  •  0
  •   Gray-M    16 年前

    我认为变更列表集是在一个存储库一个存储库的基础上进行维护的——因此在您的示例中,工作副本是B&C必须都在同一个存储库中。 然后,您必须将每个工作副本分别添加到同一变更列表中。

    我不能测试它(完成),但设置似乎工作。

    推荐文章