傻瓜/教授的协作工具


36

假设来自两个或两个以上不同机构的合著者正在用乳胶撰写论文,并且希望比反复地来回发送草稿做得更好。

他们意识到他们可以免费打开一个保管箱帐户,共享密码,并将计算机上的纸张版本与保管箱上的纸张同步。但是,如果两个人同时编辑同一节,则他们将覆盖彼此的更改。

他们还听说SVN和Git之类的版本控制系统具有合并并发更改的工具,这些工具运行得相当好。但是,这些产品的文档非常难以阅读,并且更侧重于如何撤消更改和如何管理不同的“分支”,而不是合著者撰写论文的基本需求。

有关如何在此设置中使用版本控制系统的简单分步说明:

  • 中央仓库
  • 本地副本
  • “智能”合并
  • 没有分支

在标准版本控制系统中,哪个是最容易使用的?(我们在这里是理论计算机科学教授。)

是否有更简单的工具仅与智能合并同步,而没有版本控制?

相反,使用版本控制系统甚至撰写单作者论文的人真的感到无限撤消功能值得额外的复杂性吗?


非常有趣的问题。
Oleksandr Bondarenko

1
确实。到目前为止,我还没有发现比SVN更好的东西,但是有时候让新手正确使用它有些繁琐。我期待提供用户友好解决方案的答案。
Anthony Labarre 2011年

2
我也喜欢这个问题!@Luca:您可能还对用于协作的版本控制(带有单词级差异)感兴趣
MS Dousti 2011年

1
在CS的某些分支中,通常写论文(和幻灯片)作为有文化素养的来源。工具如lhs2tex(people.cs.uu.nl/andres/lhs2tex)在这方面是有用的。结果是本文中的源代码示例是可编译和检查的,甚至可以自动生成结果。在这种情况下,真正的dvc似乎是唯一明智的做法:-)
sclv 2011年

btw dropbox具有基本的版本控制:您可以回滚到任何文件的先前版本。但合并必须是手动的,这可能真是令人讨厌。即使使用svn,我仍然认为传递虚拟令牌仍然是一个好主意?我所做的是将乳胶文件分成每个部分一个不同的文件,仅使用Dropbox。
Sasho Nikolov

Answers:


12

首先,如果您对实时协作编辑感兴趣,请尝试使用gobby之类的工具。它使您可以同时编辑文档。

至于修订系统,我只对SVN熟悉。当然,这是在安装Subversion之后要做的:

  1. 找人来建立您的存储库并提供URL,用户名和密码
  2. 前往您想要的lokal副本的地方
  3. 在外壳程序(命令行?)中,键入:(svn co url://to.your/repository签出)。现在,将出现一个包含存储库内容的新文件夹。

就这样。现在最基本的命令:

  • 每当添加新文件时foo,请输入:svn add foo
  • 每当您要删除文件时,请输入: svn rm foo
  • 进行更改后,请输入:(svn ci签到)
  • 每当您想获取最新的东西时,请输入:(svn up更新)

还有一些用于移动,复制,分支,解决冲突的命令,但是,只要您不尝试有趣的东西,上面的命令就可以了。如果有什么中断或看起来有问题,请备份您的编辑内容,删除整个文件夹,然后重新签出整个内容。这是用于svn,例如重新启动Windows。

附录:我看到您似乎担心“智能合并”。我假设您指的是必须合并文件的不同版本,并假设两个人在文件的不连续部分中添加了内容。据我所知,svn会将其视为冲突,也许是正确的。我认为没有通用的过程可以确保在两个人操纵相同的源之后您得到想要的东西。有图形化的svn客户端可以可视化此类冲突并帮助您解决它们。他们几乎是差异查看器,您可以为每个冲突的行选择保留哪个版本)。不过,这将需要工作。


6
另外,您应该使用ToriseSVN以图形方式处理与SVN的所有交互;它使一切变得轻而易举。
中午

3
我要补充一点,我建议您使用免费的托管服务(如unfuddle.com)来建立自己的SVN服务器。这是相当轻松和私密的。
阿南德·库尔卡尼

2
谢谢,并感谢Anand提出的建议,这正是我所要的1分钟教程。我尝试在非混乱状态下建立存储库,在不同的计算机上制作两个本地副本,进行不一致的编辑并签入,并且确实执行了Suresh所说的智能合并。(如果两个用户进行了不一致的更改,则第二个要签入的用户确实会收到错误消息;但是如果第二个用户更新然后签入,则更新将在本地进行智能合并,而签入会将智能合并放入中央存储库。)
卡·特雷维森

1
关于Raphael的问题:etherpad.org-另一个真正的实时编辑工具。非常有前途的...
Alessandro Cosentino

1
我应该说很多人都喜欢git而不是svn,但是我自己没有经验。
拉斐尔

12

我注意到没有人提供有关GIT的“小型”教程,因此我将尽力介绍它。GIT比SVN更快,更胜一筹,但由于SVN的建立已久,因此您可能更容易在大学的服务器上获得SVN帐户。您的合作者也可能知道如何使用它。

即使您使用SVN进行协作,您也可能希望使用GIT进行自己的本地版本控制(我愿意!)。

警告的第一点:GIT非常强大,对于基本用法而言,它仅比SVN难使用(例如,在命令行中添加一个选项;对于中央存储库,需要执行两个步骤)。

Δ

假设您已经拥有存储库的基本命令

  • 克隆存储库: git clone <url>
  • 更新本地存储库:git pull <repo>或仅git pull按上述方式克隆。
  • pull命令确实可以同时执行git fetchgit merge。前一个从中央服务器“获取”东西,第二个应用文件和服务器文件的合并。

只要不对某些文件的相同部分进行同时编辑,合并将是自动的。如果合并失败,则工作目录将保持“合并状态”,这意味着您必须解决冲突,然后必须提交合并后的副本。如果您的文件中仍然存在非托管冲突,则提交将再次失败,不执行任何垃圾操作。

  • 添加要提交的新文件:git add <file name>
  • 将更改提交到本地存储库:git commit -am "<textmessages>"git commit -a是否要编辑提交消息。
  • 本地存储库中的更改推送到中央存储库。

请注意,要将更改推送到中央存储库,您首先必须提交到本地存储库,然后您必须将所有提交(甚至多个)提交到中央存储库。

创建用户本地存储库

  • git init在您喜欢的任何文件夹中创建存储库。
  • 做完了!

使用漂亮的GUI创建一个公共共享的仓库(如果您支付现金,也可以是私人的)。

使用不同的用户组创建许多私有/公共存储库,但没有GUI。

  • 在可访问的计算机上要求一个没有密码的SSH帐户。
  • 不用担心,因为身份验证是通过SSH密钥完成的。
  • 根据本教程安装Gitosis 。
  • 现在,您可以通过编辑单个文件并将其提交到存储库来管理自己的git服务器!

Git不需要中央服务器:您计算机中的任何文件夹都可以用作存储库,因此您可以玩git并使测试脱机。您可以初始化一个存储库并在其他三个文件夹中模拟三个协作者,而无需在网络上发送任何信息。这是因为存储库的任何克隆副本都是您可以提交的功能齐全的存储库。如果您想在美国,中国或欧洲之间飞行,这很好。


1
自从我在上面写下答案以来,我也开始偏爱Git。如果您喜欢Github,但不愿意将您的知识产权提供给公司(和/或为该特权付费),请访问Gitlab
拉斐尔

8

Google文档(https://docs.google.com)提供了很棒的工具,可以一起编写文档(包括实时编辑)。它为您在线存储所有内容,并与您的Gmail帐户很好地集成。默认情况下,Google文档不具有LaTeX兼容性,但是您可以通过以下方法启用它:

http://docs.latexlab.org/

我不确定它的回滚效果如何,但是我确定它有一个功能。我听说有人使用Google Wave的LaTeX插件制定论文的初步草图。


抱歉,但这可能就像在竞争对手的实验室中构建新发明的原型一样。我知道Google的工具很受欢迎,因为易于使用和可用性,因此可以推测,但我怀疑它们通常是最佳选择。一旦付出一点点努力,建立一个体面的工作环境就不会太困难。对于那些花了大约十年时间放学后才有资格工作的人,我觉得这应该不是太大的动力。
拉斐尔

4
我没有与Google竞争...所以对我而言,这似乎是使用最简单的工具,这似乎是OP要求的要求之一。仅仅因为它没有在您的命令行中运行,并不一定会使它成为不良的工具。如果缺少所需的功能,则它是一个开源项目,您可以利用自己的经验来添加它。此外,如果使用开发版本,则甚至可以使用本地LaTeX编译器而不是其服务器上的编译器。
Artem Kaznatcheev

不要误会我的意思,我不是仅限CLI的人。例如,我非常喜欢图形编辑器(尽管我不喜欢所见即所得)。事实是,世界上最大的数据挖掘者没有提供其他选择。我使用的术语“竞争对手”,因为,据我所知,谷歌确实在计算机科学的一些研究,特别是机器学习的口味。
拉斐尔

7

我让我的合著者学习Mercurial,并且过去使他们学习Subversion。如果您是Subversion的粉丝,只需阅读this,那都是对的。

无论使用哪种系统,到目前为止,最困难的事情是让其他人安装软件并开始使用它。Skype是完美的解决方案。Skype的最新版本允许“桌面共享”,这在您希望带领合作者完成安装过程时非常有帮助。而且我将直接桌面共享与Skype结合使用来与我的合著者撰写论文。效果很好。

真正需要的是“面向科学家的Github”。提供存储库的东西,具有版本控制,协作编辑等。猜猜有什么,有http://www.scribtex.com/


我现在正在使用Github与合作者一起撰写调查问卷。它足够方便,而且我不觉得需要在线协作编辑,因为我们通常在不同的部分工作。
Suresh Venkat

bitbucket会带给您github的优势,同时具有一定的隐私性。我正在测试。
杰里米2013年

5

这是一个名为WriteLatex的新型在线协作式乳胶编辑器,它看起来很有希望,可以满足许多科学写作需求/要求,是一站式服务。

  • 在手机上工作
  • 具有实时预览
  • 轻松/私人共享
  • 发现乳胶错误
  • 允许添加乳胶库/样式
  • 云储存

共同作者约翰·哈默斯利(John Hammersley)在此处的 tcs se meta中发布了一条公告,他正在回应反馈(该广告再获得5票,它将出现在主网站上)。随着时间的流逝,它可能会成为tcs社区的宝贵工具,也许作者将能够根据要求实现一些流行的功能。


2

那么简单的系统和解决方案呢?

毫无疑问,但是有时候有些情况下,组的一部分可以使用简单的解决方案,例如SVN,而组的其他部分则可以进行分布式版本控制,例如GIT。在这种情况下,可以进行合作:


2

我最近发现了sharelatex.com,并与合作者一起使用了该论文。我非常喜欢它,我目前的计划是将其用于所有项目。一些值得注意的功能:

  • 实时浏览器内TeXing(与Google Docs类似,但适用于TeX,语法突出显示等)。

  • 浏览器内编译和PDF查看

  • 支持具有多个文件的项目

  • 具有历史记录功能

  • 与Dropbox同步(即将从其当前Beta状态公开发布)。这样,您可以将备份等的保存工作转移到Dropbox。根据完成的方式,即使您的共同作者不想这么做,只要他们愿意使用Dropbox共享文件,这也应该允许您使用sharelatex。

  • 您可以随时下载/上传项目,因此,如果出现问题或改变主意或其他原因,您不会被sharelatex所困扰。

唯一的缺点(但我认为这是值得的):尽管使用sharelatex是免费的,但其某些功能却不是。值得注意的是,要使用Dropbox同步(当他们发布时),或者如果您想让6个以上的合著者从事同一sharelatex项目,则必须支付$ 8 / mo。或$ 80 /年[截至2013年4月]。但是,一旦他们发布了Dropbox sync,对我来说这似乎是一个非常合理的价格。

[免责声明:除我使用他们的产品外,我与sharelatex或其员工没有任何关系。


现在是开源的!(此外,还有一些writelatex相似,但无需注册即可用于快速娱乐。)也就是说,我不会将我的知识产权放在商业云中(直到发布)。
拉斐尔2014年

-5

SVN是为此目的而开发的工具。我会努力学习。它比学习使用诸如algorithm2e Latex软件包或pdf幻灯片创建者Latex软件包之一要复杂。

话虽如此,我使用CVS而不是SVN。我们机构的CS管理员会提供更好的支持(SVN服务器由更多用户管理)。另外,我感谢基础版本文件仍然存在,并且如果出现非常非常错误的情况,则可以对其进行编辑。

与SVN相比,有2个缺点。文件重命名不是很好,但是我可以接受(第一次选择一个好名字)。第二个问题是,需要一个本地CS帐户才能访问存储库。因此,只有先创建一个帐户,才能从另一个机构进行访问。当然,我不希望这在任何地方都是一个真正的问题。当地部门成员可能可以赞助该帐户。

本地访问限制是由于管理员不想支持pserver。(为确保安全等)


3
拒绝投票是因为这不能真正解决问题的逐步帮助要求,并且列出的大多数优缺点似乎都局限于应答者的本国机构。
David Eppstein 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.