【问题标题】:How can I checkout a specific file from svn? [duplicate]如何从 svn 签出特定文件? [复制]
【发布时间】:2012-01-21 07:43:45
【问题描述】:

我在这里发疯了。

我正在为我的博士学位编写代码。项目。我有两个版本的特定 .cpp 文件,我想同时使用它们(在它们之间交替使用)。我想保留其他文件的最新版本。

我尝试使用svn copy,但它不会在现有文件上运行。我试图删除该文件,但svn copy 只会说它不会覆盖存储库中存在的文件,即使它们在目标文件夹中丢失。除了将整个版本检出到单独的目录并将文件手动复制到所需的文件夹之外,我如何将本地文件夹中的单个文件恢复到以前的版本?

我不想更新整个树,只更新本地副本。

或者,是否有其他版本控制系统可以在 ssh 上运行并为我提供此功能?

谢谢

【问题讨论】:

  • 尝试:svn update -r {revision_number} {path_to_file}

标签: svn version-control


【解决方案1】:

前言

手册中:svn help update+svn help cat+svn help diff可以成为你最好的朋友。阅读命令说明、-r 选项的含义、TARGET-URL 或 PATH 的格式

如果您想在两个版本的文件之间切换并且不要并行使用,您可以使用单个 WorkingCopy 并只更改其中所需文件的版本。

操作方法:

  • 提交-提交-提交。记住 firstsecond 需要的file.cpp 的修订版本(假设它们是 N 和 M,我们将 repo 的最后修订版本命名为 HEAD。N
  • 内部工作副本(完全更新到 HEAD) - 返回到单个文件 file.cpp 的修订版 N:svn up -r N file.cpp,切换到 M:svn up -r M file.cpp,获取最新版本,HEAD:svn up file.cpp
  • 如果您只想查看不同版本的文件,不使用,您可以cat文件的任何修订(与WC中的修订无关)或diff 在单个文件的两个修订之间(可能使 WC 不受这些命令的影响)

示例:

来自我的 WC,简短的 up 示例

>svn up -r 1687 dcmode.htm
Updating 'dcmode.htm':
U    dcmode.htm
Updated to revision 1687.

>svn up dcmode.htm
Updating 'dcmode.htm':
U    dcmode.htm
Updated to revision 8734.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多