2009-07-16 143 views
5

这可能是SVN 101,但我必须问:SVN结帐后重新整理项目

我正在开发一种具有蹩脚的目录结构的项目。为了让它在我最喜欢的IDE中构建和运行,在我检查完项目后,我将整个项目复制到一个不同的目录并将其移动到我(和我的IDE)的喜好中。

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

例如,如果我退房/home/me/dev/proj/index.jsp,然后将它(和它的.svn文件元数据)复制到/home/me/dev/better-proj/web/index.jsp,即index.jsp的驻留在不同的目录中的事实,应该没问题就其SVN状态,对不对?错误?或者我只是要求麻烦?

回答

6

你在问问题。很多麻烦。如果您尝试更新根目录,则会导致完整的错误(大量障碍物,“恢复的”文件等)。另外,你如何复制单个文件的元数据? SVN元数据位于每个目录的.svn文件夹中。您可以可能能够更新和提交未更改的个别目录(即目录本身已被移动或重命名,但其所有子项完全与回购中相同)。然后,你可能不会。这很危险。

您应该自定义您的IDE以符合项目的使用/构建方式,或重新安排项目以匹配使用/构建项目的方式。在后一种情况下,您需要调查svn move子命令(即svn help move)。 SVN的图形用户界面也可能会有帮助,如TortoiseSVN(用于Windows),如果你要做大量的重新排列。

0

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

但是,这显然不是你在找什么。

我认为你对你提出的工作流程有问题。这真的不是一个好主意。为什么不移动svn中的工作项?

1

因此,您在项目中使用与团队中其他人不同的结构?我不确定这是如何工作的诚实。我会与所有参与者交谈,并使用svn:move在所有您可以同意的地方获取所有包含历史记录的文件。

1

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

是否有理由不能使用svn move来重新组织仓库中的项目?你不会以这种方式失去任何历史,你会让你的生活变得更轻松。

2

如果目的地仍在工作副本内,请使用svn movedocumentation)。无论哪种方式,您都不会有史以来想自己操纵.svn元数据,因为这会导致冲突和一般头痛。

如果目的地是另一个仓库的工作副本,你要对目的地回购源回购之后svn adddocumentation)做一个svn exportdocumentation)。

也值得一读:Subversion Basic Work Cycle