如何在修订版中找到已删除分支的副本

问题描述 投票:0回答:2

我有一个分支:http://myrepo/Branch1

该分支有10个修订版:1-10。

然后将分支复制到以下位置:http://myrepo/Branch2

然后删除Branch1。

从Branch2的“显示日志”对话框中,可以很容易地看到所有Branch1修订版(通过确保“未复制/重命名停止”未被取消)。

但是,如果给我一个像5这样的修订版,找到已删除分支的副本的最佳方法是什么? (在这种情况下Branch2)。

svn tortoisesvn
2个回答
2
投票

看来你基本上都在询问Subversion开发人员将其称为“前向历史搜索”:给定一个特定的路径和修订版,在较年轻的版本中找到由该路径构成的副本。这个功能的一个实际用途是,“嘿,我知道^ / trunk / lib / foo.c的版本1412中有一个主要的错误 - 我们的软件的各种版本分支和标签中的哪一个需要获得修复错误吗?”

从核心技术的角度来看,这很有挑战性,因为Subversion只在内部跟踪反向的历史 - 对于每个“节点”,它都知道它的祖先。但是没有跟踪继任者。

你提到“解开”“复制/重命名停止”选项让我相信你正在使用图形化的Subversion UI,例如TortoiseSVN。我对这个用户界面并不熟悉,但我有这个(古老的)内存,它维护着存储库历史的本地缓存。这样的缓存可以比Subversion的核心API和命令行客户端更好地回答“前向历史搜索”的问题,但是当然,TortoiseSVN开发人员必须做出有意识的决定来公开该功能。

没有这样的事情,你需要找到或构建工具,比如在存储库的根目录上输入svn log -vq,通过为每条路径构建一种历史树来追踪所有副本 - 然后允许您在树上找到给定点,并在修改时间通过其各种叉子和死角向前走,同时报告它找到的内容。

不幸的是,我知道没有这样的工具。


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.