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

使用Tortoissesvn移动目录的正确方法是什么?

  •  8
  • Holgerwa  · 技术社区  · 16 年前

    如果我将一个目录拖到同一个存储库中的另一个位置,并将其拖到乌龟的新位置,则无法 移动前检查修订 ,因为这些旧修订的URL不再有效。

    如何移动目录 仍然能够在移动之前访问修订?


    例子 : 如果我移动

    trunk/folder1/source
    

    trunk/folder2/source
    

    然后我现在可以在folder2下看到“source”文件夹,我可以签出头部修订,这意味着生成移动的修订。

    但是,如果我尝试签出在移动之前提交的旧版本,我会得到一个错误,即URL不存在。 我想是因为旧版本的URL仍然指向旧路径。

    但必须有一种方法来解决这个问题,否则,如果松开对旧版本的访问,就没有意义了。

    6 回复  |  直到 16 年前
        1
  •  4
  •   Soviut    16 年前

    您可以通过多种方式移动目录。

    最简单的方法是用鼠标右键拖动目录,然后在放置时单击“svn move versioned files here”。

    可以使用rename函数将文件从“blah.js”重命名为“mydirectory/blah.js”。

    最后,您可以在提交之前使用提交窗口并在其中拖动项目。当文件设置为要移动时,复选框旁边会出现一个小的红点。

        2
  •  3
  •   William Leara    16 年前

    以前的答案中没有提到的是SVN特性“PEG修订”。当要引用不再存在的目录结构时,请使用PEG修订版。从SVN手册:

    在版本1.1中,引入了Subversion 一种让你准确地说出 你的意思是主街。它叫做 PEG修订,并提供给 颠覆的唯一目的是 确定一条独特的历史线。 因为至多只有一个版本化的对象 可在任何给定位置占用一条路径 时间,或者更准确地说,在任何一个 修订“路径和 只需要修改一个PEG 指的是 历史。规定了PEG修订 到Subversion命令行客户端 使用at语法,因为 语法包括在符号__处附加__ (@)和PEG修订到 修订的路径 相关。

    例如。: http://svn.example.com/skinproj@148

    有关详细信息,请参阅SVN手册: http://svnbook.red-bean.com/en/1.5/svn.advanced.pegrevs.html

        3
  •  2
  •   Amber    16 年前

    不只是拖放,而是使用 正确的 鼠标按钮,释放后,在弹出的上下文菜单中选择“svn move versioned files here”。

        4
  •  1
  •   gbjbaanb    16 年前

    打开存储库浏览器,然后使用鼠标右键拖放(第一次执行时感觉很奇怪),或者使用“复制到…”菜单项。

    这不会影响您的工作副本,然后您可以更新wc以获取新目录,并从wc中删除+提交旧目录。

        5
  •  0
  •   Holgerwa    16 年前

    问题是: 我试图签出一个旧版本,同时在存储库浏览器中查看头部版本的树。在那个视图中,我试图签出一个旧版本的trunk/folder2/源文件,因为移动,旧版本中不存在这个版本。

    解决方案:

    • 检查日志中是否有您需要的修订
    • 切换整个存储库浏览器 到那个版本
    • 现在您可以看到所需的文件夹 在它原来的路径中 回到那个版本
    • 签出此文件夹

    感谢大家的提示,这让我找到了正确的方向。

        6
  •  -1
  •   Stefan Egli    16 年前

    我不确定我是否正确理解你的问题。听起来有点像这样:

    假设你有文件夹

    /svn/trunk/folder1
    

    把它移到

    /svn/trunk/folder2
    

    则无法使用此URL访问文件夹1:

    /SVN/行李箱/文件夹2
    

    你必须使用

    /svn/trunk/
    

    根据版本,您可以看到folder1或folder2。