现在在你拍摄我之前在SOF上拍摄重复的问题之前,让我先熟悉我正在寻找的内容,我将解决其他问题和答案以及它为什么不足。

问题#1

我正在寻找一种执行实时协作编辑的方法,而源在集中源控制服务器上维护。例如,如果我和joe打击正在编辑文件生成的同时,我们应该能够看到每个类型的编辑。好像我们一起坐在同一台电脑上。现在采取以下情况:我和乔一起离线,尼姆史密斯决定她想要更新一些代码。当我第二天在线回来时,我会按下我睡觉/远离服务器时更新的代码。

这是实时协作的思想和SVN等源控制系统的组合。

解决可能的重复项:

有一个类似的问题,这里:协作编辑.NET开发 - 有可能的可能性,但它没有给我任何有用的东西,我会解释原因:

  • vsanywhere :它通过中央公共服务器(正确的方向...)运行,除了涉及的所有各方都需要在加入会话之前在其计算机上拥有完全相同的代码,一旦您脱机,会话被销毁。
  • sourcemeet :用p2p系统运行,因此没有服务器在离线等时跟踪更改。没有尝试过,所以我无法证明它可以合并代码(如果它可以全部)
  • collabedit :不是VisualStudio
  • 云9 :不是VisualStudio

并且显然是本问题这是一个,这是关于SVN或Git等源控制软件的问题。现在,我试图获得vsanywhere和svn一起玩得很好,(svn用于在离线时获得更改,而在线开发人员的vsanywhere),但它根本不起作用。

X.cs

我最近发现这个名为 conlacab ,而且似乎是一个好主意似乎似乎无法努力尝试它。如果其他人对它取得任何成功,请让我知道你做了什么。它看起来像是如果我能得到这个合作项目,那似乎是一个很好的开始,创造一些适合我的需求。

<edit>

我也遇到了 beweevee 为它的服务进行了Visual Studio扩展,但所有它已经死了的链接。和 codealike 这可能是他们对VS实时协作的替代品有常见问题解答说明它是实时功能的常见问题解答被删除,将在“未来”中重新实施。

问题#2:

现在这将让我到我的问题的第二部分,因为我完全意识到可能没有那里的节目,适合我的高秩序。我在哪里可以在哪里开始实现这样的软件?是否有一些现有的开源源控制/实时编辑代码,我可以开始构建以创建此问题?如果我想实现这一点,我就像从头开始陷入困境。而且我相信你可以看到我想在c#中解决这样的任务,如果我必须解决这个问题。

更新2017

因为在评论中有一些持续的兴趣表明,我创建了一份收集的东西,我们可以收集任何感兴趣的人,并且可能使这个现实: https://gitter.im/sof-centrailized-collab-editing/lobby

有帮助吗?

解决方案

如果您想要自己解决此问题,您可能希望将其作为Visual Studio扩展名。请注意,有两种不同类型的插件:“加载项”和“扩展”。个人我认为你应该写一个 extension ,但无论哪种方式,你都可以在c#中写入它们。

您需要钩住Visual Studio的文本编辑器。您可以谷歌如何执行此操作,或者只是查看现有示例:弹性挂图的Visual Studio扩展。您的扩展名将在制作它们时监视更改,然后通过您设计的某些协议将它们发送到服务器。您必须自己编写服务器,但在第一个版本中,所有它需要做的只是将您的编辑发送给使用扩展名的其他人。延期将使每个人都在其他人的编辑中编辑。

如果有人使用旧版本的代码连接到服务器,则扩展名可以从服务器下载最新版本。但是,如果用户在离线(即未连接到服务器时)进行编辑,则需要执行一些巧妙的合并。这是非微不足道的,但我知道如何这样做,因为我以前做过。如果您非常好,我会为您编写合并算法。然后,您只需提供三个文本文件:基础(与服务器同步的版本)和两个编辑的版本(来自服务器的脱机和最新的版本)。

如果您设法达到工作,您将可能会创建一个无数有用的东西。请确保宣传您的工作! :)

其他提示

嗯,看到其他人类型的东西然后在编辑器中与他们有游标战争已经由谷歌波浪完成。IIRC它被推出了在项目本身失败后的开源或其他东西。它确实处理了所有更新问题,并建立在计算机科学角度的底层更新模型中,这是非常强大和实力的。它提供了类似于源代码系统的历史和各种事物。

您可以将您想要的内容作为特殊编辑小部件实现。如果您做得很好,您可以将Google Wave作为一个有用和重新的协作编辑平台复活。

关于VS Anywhere,可能是您尝试了VSA的时间,(五月左右),软件版本是发布候选人2(= MAD),所以它的正常您发现了SVN集成的一些问题以及我们有开放的问题tfs和git。

目前,在最新的RC3上有一些SVN问题已经解决,我们希望尽快为最终版本提供一切准备好

有可能在局域网中运行自己的VS Anywhere服务器实例,因此您真的不需要使用我们的公共服务器,如果您是学生,或者您有一个开源项目,则VS Anywhere客户端和服务器免费为您服务,如果不是用于商业用途,您应该支付少量费用。

如蒂维编码从离线编码中所说的那样是非琐碎而且非常复杂的实施,我们认为SCM是做这项工作的正确工具,这是因为我们尚未在这个方向上工作,我们的意见是在至少在我们在此区域工作之前,您可以使用标准SCM来提取最新更改并在设置会话之前使用本地副本进行合并,并在SESSION

中使用本地副本

vsa将简化此过程以引导会话,允许您1)检查远程Visual Studio副本和2)如果有的话,将它们合并为在右侧状态,仅在打开会话时。 (“1)”实施“2)”即将到来)

会话管理不是微不足道的,真正复杂的东西,有很多可能的场景,这是因为我们在完成后清理会话,但是只需一个点击...

希望这些信息有助于您,如果您有更多的问题随时随地联系VS任何位置

如果你想开始一个项目来实现这样的插件我们可以向您提供有关如何做事的信息,一个很好的起点是要了解操作转换,因为您需要这种方法来实现并发编辑,也需要用于在客户端之间传输数据的P2P或客户端/服务器协议。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top