【问题标题】:Tortoise SVN 1.7 Copying file issueTortoise SVN 1.7 复制文件问题
【发布时间】:2011-12-03 06:10:52
【问题描述】:

由于我使用的是新版本的 SVN (1.7),现在发生了一些令人担忧的事情。

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

在没有找到该选项后,我快速搜索了一下,发现:

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

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

无论如何,既然我实际上提交了,我会查看日志并查看针对先前存储库的所有签入然后我的...所以它有我当前的日志条目是新项目,而之前的所有内容都有旧项目的历史记录...这是一个错误还是这里出了什么问题?

我不知道为什么这个不相关的存储库仅仅通过复制文件就会有来自其他不相关项目的任何信息......

【问题讨论】:

  • 也许您可以使用确切的 Subversion 术语来重新表述您的问题:工作副本、存储库、签出、提交...现在,这对我来说毫无意义。
  • 你能显示存储库/存储库和文件的一部分吗?目前尚不清楚哪个是从哪里复制到哪个位置。
  • 我认为上面的内容相当简洁,我有一个旧项目的签出,我想将一些文件从中导出到另一个新项目的签出(都在单独的存储库中) .我曾经将它们全部选中并右键单击拖放,然后选择“在此处导出版本化项目”或类似的内容,然后它会将文件放在那里。但是,在阅读发布的链接后,它说您应该只是普通的 shell 副本,所以我这样做了,但是由于某种原因,当我提交 New-Project 时,它包含来自 Old-Project 的我添加的那些文件的日志条目。

标签: svn tortoisesvn


【解决方案1】:

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

【讨论】:

  • 看看它是如何变化的可能很有用,但是因为我除了复制一个文件之外什么都没做,看起来很奇怪,但如果这是所需的行为会给你答案!
【解决方案2】:

我认为您是在谈论在两个不同的颠覆项目之间复制文件。如果这是您想要的,请检查一个“工作副本”中的文件,然后递归删除所有“.svn”文件夹。这会将“工作副本”“转换”成一堆文件(没有修订历史记录或基本远程存储库)。

由于这些文件现在只是一堆文件,您可以将它们复制到“新”存储库中并使用svn add ... 命令添加。当然,您还必须签入。

当您尝试跨存储库移动文件时,将目录从“旧”工作副本移动到“新”工作副本会将一个工作副本的“.svn”文件夹放入另一个工作副本。由于这些文件夹包含目录的一些颠覆工作副本配置,因此您可以有效地将配置混合在一个工作副本中。这通常会产生一些非常不受欢迎的影响。如果我是你,我会简单地获取“重要”文件的副本并删除整个存储库。然后我会使用新签出的存储库再次尝试该操作(注意不要复制“.svn”文件夹,或者拖放可以帮助您自动复制它们)。

通常需要在工作副本中复制“.svn”文件夹(这是使tortise 成为可能且易于使用的一部分);但是,subversion 的设计并不是让您可以安全地在工作副本之间复制这些文件夹

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 2014-01-17
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    相关资源
    最近更新 更多