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

subversion-签出父目录

  •  10
  • Steve  · 技术社区  · 16 年前

    在我的存储库中,假设我有:

    Animal
      Dog
         Beagle
         Hound
         ...
    

    假设我把狗登记到一个工作目录,我意识到,哎呀,我真的很想把动物登记下来。

    我可以删除我的工作副本,狗目录,和结帐动物,但有没有办法我可以这样做,而不删除和再次结帐?

    如果我的dog工作副本将animal作为父文件夹,并且我签出animal而不删除dog,则会得到类似“subversion未能添加目录版本相同的名称已存在”的结果。

    我也在用乌龟。谢谢。

    4 回复  |  直到 9 年前
        1
  •  4
  •   Palmin    16 年前

    这是不可能直接的。

    最简单的方法是删除工作副本并重新签出 Animal .

    如果你有什么变化 Dog 你想保留的,移动 到一个临时地点,结帐 动物 然后复制 回到 动物 目录。

        2
  •  2
  •   John Feminella    16 年前

    你在找 svn switch ,它将更新工作副本以反映新路径。不过,修改过的文件不会被触及。在Tortoisesvn中,右键单击并从上下文菜单中选择“切换…”。

    更常见的用例 向量交换网络交换机 是在源于同一点的分支之间切换,以便可以对同一代码有不同的视图。但是您可以在存储库中的任意路径之间切换。

        3
  •  0
  •   Alex Robinson    12 年前

    我发现避免从svn服务器下载已经在我磁盘上的内容,然后使用 --depth empty . 比如说: svn co --depth empty Animal ; cd Animal ; svn update --depth empty Dog

    不管怎样,我的想法是 Dog 作为目录 Animal/.svn/entries .

    这个“ --深度为空 “防止svn下载实际内容,但svn确实生成了子目录(在本例中, )SVN确实为 子目录 动物/.svn/条目 .

    然后将dog子目录替换为已有的副本。

    你可以通过在某个文件中 做一个 svn update Animal 目录。应该从svn服务器中提取被破坏的文件。

        4
  •  0
  •   Umesh Kadam    9 年前

    是的,您可以映射父目录。

    要做到这一点,你只需要删除 .svn 从“dog”(子)目录和do SVN Update 在父目录上。它将使现有文件成为 Versioned 复制并将下载的增量内容 Dog 来自SVN服务器的目录。

    请注意:您应该有准确的目录结构作为svn目录结构。