svn log / diff前端像gitk?

时间:2010-12-17 07:00:35

标签: svn user-interface rapidsvn

我想研究一下由SVN管理的Google Chrome源代码所做的更改。可以在http://src.chromium.org/viewvc/chrome/

找到网络界面

我想知道是否有一个GUI前端允许我在本地检查时间线。使用git,我只需运行gitk foo.c

我尝试了qsvn和rapidsvn但是无法弄清楚如何让他们完成这项工作。我似乎必须在GUI中导入存储库,但我已经检出了存储库。

4 个答案:

答案 0 :(得分:27)

如果您想从svn-repo浏览源代码,并且您喜欢gitk,为什么不使用gitk? 只是做

git svn init http://subversion.domain.org/repos
git svn fetch
git svn rebase

并且您将svn repo“转换”为本地git仓库,您可以在其中使用gitk
如果你想更新你当地的git repo,只需重新运行fetch&变基
有关详细信息,请查看git-svn(1)

答案 1 :(得分:3)

与git和mercurial这样的分布式VCS不同,在subversion中,当我们进行结账时,我们不会得到存储库的“克隆” - 只是一个特定的版本。

在RapidSVN中,我们可以单击文件,右键单击选择日志...以获取文件更改的历史记录,但这涉及到服务器的连接以下载信息。 (有些客户喜欢TortoiseSVN缓存其中一些,但不确定RapidSVN)。

答案 2 :(得分:2)

要回答我自己问题的第二部分,我已经签出了工作副本,qsvnrapidsvn都可以用来查看日志。在qsvn中,转到菜单 - >工作副本 - >加。在rapidsvn中,转到菜单 - >书签 - >添加现有工作副本。

如@Raghuram所解释的那样,查看日志比使用git要慢得多。

答案 3 :(得分:0)

我尝试了几个SVN客户端,寻找类似gitk的东西(没有文件参数)。我认为在大多数SVN客户端中显示特定文件的历史记录比在整个项目中显示具有差异的历史记录更容易。

如果有办法同时查看提交消息,受影响的文件和差异,但我没有在UI中找到它,请发表评论让我知道我错过了什么。我怀疑任何本地SVN客户端都会这样做,因为必须从服务器获取旧版本的差异。

最好,但不适用于现有的SVN结帐:

git-svn首先检查svn repo,然后获得完整的GIT功能。对于历史悠久的项目,初始结账需要花费很长时间,除非您制作浅层克隆:How to git-svn clone the last n revisions from a Subversion repository?

他人:

rapidsvn:将现有的仓库添加为“书签”。右键单击“。” - >日志。这会获取所有修订版本,因此实现起来非常缓慢。 “日志历史记录”对话框在单独的选项卡中包含日志消息和受影响的文件,因此您无法同时查看这两个文件。 (尽管如此,您可以将日志消息的开头视为修订表中的列)。发展停滞不前(https://github.com/RapidSVN/RapidSVN最后一次改变2013年 - 5月)

subclipse进行日食:开放视角 - > SVN资源库探索。右键点击某些内容 - >显示历史。影响该文件或子树的SVN rev的修订列表很快就会出现,因为它默认只提取前25个。 (你可以获取更多或全部)。显示受影响的路径,您可以看到当前版本,但我没有看到获得差异的方法。 (除了可能一次只有一个文件,通过右键单击文件并执行“比较...”,这会显示一个与之比较的菜单。)

RabbitVCS:屏幕截图显示了通常的修订/日志消息/受影响的文件3窗格设置,没有差异。在图形文件浏览器(Nautilus(GNOME)/ Thunar(Xfce))之上实现,不作为独立应用程序提供。也不适用于Dolphin(KDE)。

subcommander:上次发布= 2009年的2.0.0beta5。尝试使用时崩溃了几次。

svn-workbench:受影响的文件将在修订列表的新窗口中打开。它比其他东西更不实用。我认为它已被抛弃,而且应该是可能的。从Debian / Ubuntu中删除,因此它不显示包搜索。

qsvn:没试过,因为当作者切换到git用于所有内容时,上游开发停止了。

http://svn-ref.assembla.com/linux-svn-client-reviews.html提到了几个闭源商业SVN客户端,我没试过。我厌倦了在gitk之外寻找gitk行为,并且继续前进并且git-svn克隆了我感兴趣的repo。难怪人们切换远离SVN,因为它显然无法有效地显示提交的差异。