【问题标题】:Visual svn diffs from an ssh'd remote server来自 ssh 远程服务器的视觉 svn 差异
【发布时间】:2012-06-27 19:17:26
【问题描述】:

我在一家小公司工作,我们通过 SSH 连接到我们的开发环境进行提交,并通过 SMB 来查看文件结构。

在我提交我的代码之前,我希望能够看到我正在提交的文件的一个漂亮的 GUI Diff。我使用 Coda 2 进行编程,不幸的是它的源代码控制支持很糟糕,并且不会检测到我的开发目录所在的 SMB 安装驱动器也是一个 SVN 工作副本,所以它所有的 SCM 工具在工作中完全没用。

无论如何,因为我是 SSH,所以我不能使用 opendiff 或 diffmerge 命令(因为它们安装在我的本地计算机上,而不是远程服务器上)。

我想知道是否有人可以给我一个关于如何从命令行调用 svn diff 的提示,然后在一个漂亮的 GUI 显示中查看它,而不是 SVN 给你的文本 -/+ 符号命令行。

【问题讨论】:

    标签: macos svn diff command-line-interface


    【解决方案1】:

    如果您在服务器中安装了首选的 GUI 工具,只需通过 ssh 隧道 X,例如:

    ssh -X yourworkserver
    

    然后在服务器中启动您选择的工具,就好像它是支持 X 的终端一样。

    如果您的服务器没有(有能力)这些工具,您可以随时将要提交的内容同步到本地计算机。例如。

    rsync -a --delete --partial --progress --rsh=ssh  username@yourserver:/path/to/code/about/to/be/committed /path/to/the/snapshot/in/your/machine
    

    然后在本地运行您最喜欢的 GUI 工具。您可以添加 -az 通过压缩流量来加快处理速度。

    如果您的服务器有 Ubuntu,请有特权的人运行“sudo apt-get install meld”,并在隧道 X 上使用 Meld。

    大多数体面的文本编辑器(例如 Emacs、Vim、...)在默认配置中包含差异语法突出显示,并且它们也具有文本模式。

    【讨论】:

    • 它没有必要的应用程序。
    • 服务器有什么操作系统?除非是 Windows 机器,否则您可以安装应用程序。
    • 它有 Ubuntu,但它是一个企业环境,除非绝对必要,否则我不想让我的老板在我们的开发服务器上安装东西。我喜欢的是一个 Diff 工具,我可以将 svn diff 的输出复制并粘贴到
    • @tigertrussell 这整件事对我来说听起来很尴尬。你在哪里编辑你的代码?在你的本地机器上?在服务器?在您的本地机器上,但在 SMB 共享上(坏主意)?使用 svn+ssh:// 协议或 https:// 协议或任何用于 SVN 的协议在本地检查内容更有意义。然后整个“那里的差异,这里的 gui”问题就消失了。
    • 我相信您对“坏主意”的描述就是我们正在做的事情。我相信这样做的目的是让开发人员看到他们自己的本地副本(我们都有 firstname.dev.myserver.com)在服务器上运行......
    【解决方案2】:

    我不确定为什么不能直接在 SMB 共享上使用 svn - 客户端计算机上根本看不到 .svn 文件夹吗?

    无论如何,使用 SSHFS 而不是 SMB 挂载工作目录可能会更好。有关 OS X 的具体信息,另请参阅 this link

    【讨论】:

    • 我不明白这个回复。首先,我不能只从 SMB 切换到 SSHFS - 这是一个公司环境,我使用 SMB 连接到开发服务器,因为这就是公司想要的方式......?
    • 你谈到了 ssh。如果你可以做 ssh,你可以做 sshfs。如果您或其他人不想这样做,那就另当别论了。
    • 我刚刚修正了答案中的错字(ssh 而不是 svn),抱歉。
    • 是的,我想避免使用它,因为它没有得到明确批准——如果我感到绝望,我会问我们的 CTO
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多