我想研究对由 SVN 管理的 Google Chrome 源代码所做的更改。可以在http://src.chromium.org/viewvc/chrome/找到 Web 界面
我想知道是否有允许我在本地检查时间线的 GUI 前端。使用 git 我可以简单地运行gitk foo.c
.
我尝试了 qsvn 和 rapidsvn,但不知道如何让它们完成这项工作。看来我必须在 GUI 中导入存储库,但我已经签出了存储库。
我想研究对由 SVN 管理的 Google Chrome 源代码所做的更改。可以在http://src.chromium.org/viewvc/chrome/找到 Web 界面
我想知道是否有允许我在本地检查时间线的 GUI 前端。使用 git 我可以简单地运行gitk foo.c
.
我尝试了 qsvn 和 rapidsvn,但不知道如何让它们完成这项工作。看来我必须在 GUI 中导入存储库,但我已经签出了存储库。
如果你喜欢从 svn-repo 浏览源代码,并且喜欢 gitk,为什么不使用 gitk?做就是了
git svn init http://subversion.domain.org/repos
git svn fetch
git svn rebase
并且您已将 svn 存储库“转换”为本地 git 存储库,您可以在其中使用 gitk
如果您想更新本地 git 存储库,只需重新运行 fetch & rebase以获取
更多信息,请查看git-svn(1)
与 git 和 mercurial 等分布式 VCS 不同,在 subversion 中,当我们进行结帐时,我们不会获得存储库的“克隆”——只是一个特定版本。
在 RapidSVN 中,我们可以单击文件,右键单击选择 Log... 以获取文件更改的历史记录,但这涉及到服务器的连接以下载信息。(一些客户喜欢 TortoiseSVN 缓存其中的一些,但不确定 RapidSVN)。
为了回答我自己问题的第二部分,当我已经签出工作副本时,两者qsvn
都rapidsvn
可以用来查看日志。在qsvn
中,转到菜单 -> 工作副本 -> 添加。在rapidsvn
中,转到菜单 -> 书签 -> 添加现有工作副本。
正如@Raghuram 所解释的,查看日志比在 git 中慢得多。
我尝试了一些 SVN 客户端,寻找类似的东西gitk
(没有文件参数)。我认为在大多数 SVN 客户端中显示特定文件的历史记录比显示整个项目的差异历史记录更容易。
如果有办法同时查看提交消息、受影响的文件和差异,但我在 UI 中没有找到它,请发表评论让我知道我错过了什么。不过,我怀疑任何本地 SVN 客户端都会这样做,因为必须从服务器获取要区分的旧版本。
git-svn
首先检查 svn repo,然后您将获得完整的 GIT 功能。对于历史悠久的项目,初始签出需要很长时间,除非您进行浅克隆:如何 git-svn 从 Subversion 存储库克隆最后 n 个修订版?
rapidsvn:将现有的 repo 添加为“书签”。右键单击“。” -> 日志。这会获取所有的修订,所以它真的很慢。“日志历史记录”对话框在单独的选项卡中包含日志消息和受影响的文件,因此您无法同时查看两者。(不过,您可以将日志消息的开头视为修订表中的一列)。开发停滞(https://github.com/RapidSVN/RapidSVN上次更改 2013 年至 5 月)
带有subclipse的 Eclipse :打开透视图 -> SVN 存储库探索。右键单击某物-> 显示历史记录。影响该文件或子树的 SVN revs 的修订列表很快出现,因为它默认只获取前 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,因为它显然不能有效地显示提交的差异。