2011-11-25 56 views
0

我现在正在使用较新版本的SVN(1.7)时出现了一些令人担忧的事情。Tortoise SVN 1.7复制文件问题

我有一个较旧的项目,我想将一些CI构建脚本复制到一个新项目中。我原来习惯于使用右键单击拖放,然后点击“导出所有版本化的项目”或任何它被调用来获取没有SVN历史记录的文件副本。

没有找到该选项后,我做了一个快速谷歌发现:

http://groups.google.com/group/tortoisesvn/browse_thread/thread/66b30b120756e2ea/47023377b04ef1db?show_docid=47023377b04ef1db

现在我去只是复制和粘贴我的文件,而不是和它的一些原因,保留了最新的图标在shell,我认为它可能只是操作系统不更新文件夹,所以忽略它,当我去提交时,我检查了日志,以确保它不是以某种方式链接到旧项目,它说没有版本信息。

无论如何,现在我确实提交了我在日志中查看并查看所有对照前一个存储库的检查,然后我的...因此,它具有我当前的日志条目作为新项目,以前的所有条目都具有旧的历史记录项目......这是一个错误还是在这里出了问题?

我不知道为什么这无关库将刚刚从复制的文件从其他无关的项目的任何信息......

+0

也许你可以使用确切的Subversion术语来解释你的问题:工作拷贝,存储库,签出,提交......现在,它对我来说没有任何意义。 –

+0

你可以显示存储库/存储库和文件的一部分?目前还不清楚是从哪个位置复制到哪个位置 – mliebelt

+0

我认为上述内容相当简洁,我已经退房了Old-Project,我想从中导出一些文件到另一个退房新项目(在不同的仓库中)我曾经选择t下摆所有,然后右键点击拖放,然后选择“在这里导出版本化的项目”或者其他的东西,然后它会把文件放在那里。然而,在阅读发布的链接后,它说你应该只是正常的shell拷贝,所以我做了,但是由于某种原因,当我提交New-Project时,它包含来自Old-Project的日志条目,用于添加这些文件。 – Grofit

回答

0

行为听起来很有益的。拥有从旧项目复制的文件的修订历史记录是有益的。 如果您不希望从旧项目中查看修订历史记录,则可以在修订日志对话框中选中“停止复制/重命名”框。 当您使用资源管理器拖放文件时,我怀疑您还在旧的工作副本中复制了隐藏的.svn文件夹。如果您真的想摆脱修订历史,您可以使用repo浏览器进入存储库,选择您的旧项目文件并导出到您的新项目工作副本文件夹。然后从您的新项目工作副本中将这些文件添加到您的新项目存储库中。

+0

看看它是如何变化可能是有用的,但因为我没有做任何事情,只是复制一个文件似乎很奇怪,但如果这是所需的行为会给你答案! – Grofit

0

我想你是在讨论在两个不同的subversion项目之间复制文件。如果这是你想要的,在一个“working-copy”中签出文件,然后递归删除所有“.svn”文件夹。这会将“工作副本”“转换”为一堆文件(无需修订历史记录或基本远程存储库)。

由于文件现在只是一堆文件,因此您可以将它们复制到“新”存储库中并与svn add ...命令一起添加。当然,您也必须检查它们。

当您尝试执行文件的交叉存储库移动时,将目录从“旧”工作副本移动到“新”工作副本将放置“.svn “一个工作副本的文件夹放入另一个工作副本。由于这些文件夹包含目录的subversion工作副本配置的位,因此您可以在一个工作副本中有效地混合配置。这往往有一些相当不良的影响。如果我是你,我只需要抓取“重要”文件的副本并删除整个存储库。然后,我会使用新检出的存储库第二次尝试操作(并且注意不要复制“.svn”文件夹,或者拖放操作可帮助您自动复制它们)。

正常情况下复制“。SVN”文件夹需要工作副本(这是什么使tortise可能的,很好用的部分);然而,颠覆的设计是不是这样的,你可以将这些文件夹安全地复制工作副本之间