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

SVN检验后重新安排项目

svn
  •  5
  • yalestar  · 技术社区  · 15 年前

    这可能是SVN 101,但我必须问:

    我正在做一个目录结构很差的项目。为了让它在我最喜欢的IDE中构建和运行,在我签出项目之后,我将整个项目复制到另一个目录,并将其移动到我(和我的IDE)喜欢的位置。

    所以我的基本问题是:我能安全地编辑/更新/合并一个与存储库的目录结构不同的目录结构中的文件吗?

    例如,如果我退房 /home/me/dev/proj/index.jsp 然后将其(及其.svn元数据)复制到 /home/me/dev/better-proj/web/index.jsp ,index.jsp驻留在另一个目录中的事实应该可以考虑到它的svn状态,对吗?错了?或者我只是在自找麻烦?

    5 回复  |  直到 15 年前
        1
  •  6
  •   rmeador    15 年前

    你在自找麻烦。很多麻烦。如果你试图更新根目录,结果你会完全精神错乱(很多障碍物,“恢复”文件等)。另外,如何复制单个文件的元数据?SVN元数据位于每个目录的.svn文件夹中。你 可以 能够更新和提交未更改的单个目录(即目录本身已被移动或重命名,但其所有子目录与repo中的完全相同)。再说一遍,你可能不会。这很危险。

    您应该定制您的IDE以匹配项目的使用/构建方式,或者重新排列项目以匹配其使用/构建方式。在后一种情况下,您需要调查 svn move 子命令(即 svn help move )SVN的GUI可能也很有用,比如Tortoissesvn(对于Windows),如果您要进行大量的重新排列的话。

        2
  •  2
  •   matpie    15 年前

    如果目的地仍在您的工作副本中,请使用 svn move ( documentation )不管怎样,你不会 曾经 想要操纵 .svn 元数据本身,因为这将导致冲突和一般的头疼。

    如果目标是另一个存储库的工作副本,则需要执行 svn export ( documentation )关于来源回购 svn add ( documentation )在目的地回购。

    也值得一读: Subversion Basic Work Cycle

        3
  •  1
  •   Matthew Vines    15 年前

    所以你在项目中的工作结构与你团队中的其他人不同?我不确定这是怎么回事。我会和所有相关人员交谈,并使用svn:move来获取所有您都能同意的地方的所有历史文件。

        4
  •  1
  •   Dan Davies Brackett    15 年前

    如果您试图将版本化目录放入不是其父目录的版本化目录中,则会遇到此方法的问题。除此之外,你不应该碰到其他任何事情,除了与一份不连贯的工作副本相关的文书工作头痛。

    你不能用的原因是什么? svn move 重新组织存储库中的项目?这样你就不会失去任何历史,也会让你的生活更轻松。

        5
  •  0
  •   Community Mr_and_Mrs_D    7 年前

    我误解了你的问题。我以为你在找类似svn move命令的东西。 (see these questions)

    但这显然不是你想要的。

    我认为你在为你提出的工作流程找麻烦。这真的不是个好主意。为什么不在SVN中移动工作项?