ダミー/教授向けの共同ツール


36

2つ以上の異なる機関の共著者がラテックスで論文を書いており、下書きを繰り返しメールで送信するよりもうまくやりたいとします。

彼らは、Dropboxアカウントを無料で開いてパスワードを共有し、自分のコンピューターの紙のバージョンとDropboxの紙のバージョンを同期できることに気付きました。ただし、2人が同じセクションを同時に編集している場合、互いの変更が上書きされます。

また、SVNやGitのようなバージョン管理システムには、並行変更をマージするためのツールがあり、それが合理的に機能すると聞いています。ただし、これらの製品のドキュメントは読みにくいため、論文を書く共著者の基本的なニーズよりも、変更を元に戻す方法やさまざまな「ブランチ」を管理する方法に重点を置いています。

このセットアップでバージョン管理システムを使用する方法について、簡単なステップごとの説明がありますか?

  • 中央リポジトリ
  • ローカルコピー
  • 「スマート」マージ
  • 枝なし

標準のバージョン管理システムのうち、最も使いやすいのはどれですか?(ここでは、理論的なコンピューターサイエンスの教授と話しています。)

バージョン管理なしで、スマートマージと同期するだけの簡単なツールもありますか?

逆に、バージョン管理システムを使用して単著の論文を書く人も、無制限に元に戻す機能は余分な複雑さの価値があると本当に感じていますか?


非常に興味深い質問です。
オレクサンドルボンダレンコ

1
確かに。私はこれまでSVNよりも良いものを見つけていませんでしたが、新参者にそれを適切に使用させるのは少し面倒です。ユーザーフレンドリーなソリューションを提供する回答を楽しみにしています。
アンソニーラバレー

2
私もこの質問が好きです!@Luca:コラボレーションのバージョン管理にも興味があるかもしれません(ワードレベルの差分を使用)。
MS Dousti

1
CSの一部のブランチでは、文学的なソースとして論文(およびスライド)を書くのが一般的です。これに関しては、lhs2tex(people.cs.uu.nl/andres/lhs2tex)などのツールが役立ちます。結論としては、論文のソースコード例はコンパイル可能でチェックされ、結果は自動的に生成されることさえあります。そのような場合、本物のdvcsが行うべき唯一の正気なことのように思えます:
sclv

btw dropboxには基本的なバージョン管理機能があります。ファイルの以前のバージョンにロールバックできます。しかし、マージは手動で行う必要があり、それは残念なことです。それでも、svnを使用しても、仮想トークンを渡すことはまだ良い考えだと思いますか?私がやったことは、ラテックスファイルをセクションごとに異なるファイルに分割し、dropboxを使用するだけです。
サショニコロフ

回答:


12

最初に:リアルタイムの共同編集に興味があるなら、gobbyのようなものを試してください。これにより、文字通り同時にドキュメントを編集できます。

改訂システムに関しては、私はSVNにのみ精通しています。もちろん、これはsubversionをインストールした後に行うことです:

  1. 誰かにリポジトリをセットアップしてもらい、URL、ユーザー名、パスワードを教えてください
  2. lokalコピーを取得したい場所に移動します
  3. シェル(コマンドライン?)で、svn co url://to.your/repository(check-out)と入力します。これで、リポジトリのコンテンツを含む新しいフォルダーが表示されます。

それで全部です。今、最も基本的なコマンド:

  • 新しいファイルを追加するたびにfoo、次を入力します。svn add foo
  • ファイルを削除するたびに、次を入力します。 svn rm foo
  • 変更を加えるたびに、次を入力します:(svn ciチェックイン)
  • 最新のものを入手したいときはいつでも、入力してください:(svn up更新)

移動、コピー、分岐、競合の解決などのコマンドもありますが、おもしろいことを試さない限り、上記で問題ありません。何かが壊れている、または思われる場合は、編集内容をバックアップし、フォルダ全体を削除して、すべてをチェックアウトします。これはWindowsの再起動のようなsvnの場合です。

補遺:「スマートマージ」について懸念しているようです。2つの人が論文のばらばらの部分に物事を追加したという前提で、マージされたファイルの異なるバージョンを参照する必要があると思います。私の知る限り、svnはそれを競合として扱い、おそらくそうです。2人が同じソースを操作した後に必要なものを取得できるようにする一般的な手順はないと思います。このような競合を視覚化し、それらの解決に役立つグラフィカルなsvnクライアントがあります。競合するすべての行に対してどのバージョンを保持するかを選択できる場合、それらはほとんど差分ビューアです。ただし、作業が必要になります。


6
また、ToriseSVNを使用して、SVNとのすべての対話をグラフィカルに処理する必要があります。それはすべてを簡単にします。
正午のシルク

3
これに、独自のSVNサーバーをセットアップするのではなく、unfuddle.comのような無料のホストサービスを使用することをお勧めします。それはかなり痛みがなく、プライベートです。
アナンドクルカルニ

2
おかげで、そして混乱のない提案をしてくれたAnandに感謝します。これはまさに私が探していた1分間のチュートリアルでした。混乱を起こさないようにリポジトリを設定し、異なるコンピューターで2つのローカルコピーを作成し、一貫性のない編集を行い、チェックインを試みました。Sureshが言うようにスマートマージを実行します。(2人のユーザーが一貫性のない変更を行った場合、チェックインする2番目のユーザーはエラーメッセージを受け取りますが、2番目のユーザーが更新してからチェックインすると、更新によってローカルでスマートマージが行われ、チェックインによりスマートマージが行われます中央リポジトリ。)
ルカトレビザン

1
Raphaelのオフについて:etherpad.org-もう1つの本当にリアルタイムの編集ツールです。非常に有望な...
アレッサンドロCosentinoさん

1
多くの人がsvnよりもgitを好むと言わなければなりませんが、私はそれを自分で経験していません。
ラファエル

12

誰もGITの「小さな」チュートリアルを提供していないことに気づいたので、それをカバーしようとします。GITはSVNよりも高速で優れていますが、SVNが確立されているため、大学のサーバーでSVNアカウントを取得する方が簡単かもしれません。また、コラボレーターの使用方法を知っているかもしれません。

SVNを使用して共同作業を行っている場合でも、独自のローカルバージョン管理にGITを使用できます(そうします!)。

警告の最初のビット:GITは非常に強力であり、基本的な使用ではSVNよりも使用が少し難しくなります(たとえば、コマンドラインに1つのオプションを追加し、中央リポジトリで2つのステップをコミットします)。

すでにリポジトリがあると仮定した基本的なコマンド

  • リポジトリのクローンを作成します。 git clone <url>
  • ローカルリポジトリを更新します。git pull <repo>またはgit pull上記のように複製した場合のみ。
  • pullコマンドは実際にgit fetchとの両方を行いgit mergeます。前者は中央サーバーから「フェッチ」し、2番目はファイルとサーバーのファイルのマージを適用します。

一部のファイルの同じ部分で同時編集がない限り、マージは自動的に行われます。マージが失敗した場合、作業ディレクトリは「マージ状態」のままになります。つまり、競合を修正してから、マージされたコピーをコミットする必要があります。ファイル内に管理されていない競合がある場合、コミットは再び失敗し、ガベージはコミットされません。

  • コミットする新しいファイルを追加しますgit add <file name>
  • 変更をローカルリポジトリにコミットします。git commit -am "<textmessages>"またはgit commit -a、コミットメッセージを編集する場合。
  • ローカルリポジトリの変更を中央リポジトリにプッシュします。

変更を中央リポジトリにプッシュするには、まずローカルリポジトリにコミットする必要があり、すべてのコミット(1つ以上)を中央リポジトリにプッシュする必要があることに注意してください。

ユーザーローカルリポジトリを作成する

  • git init好きなフォルダにリポジトリを作成します。
  • できた!

素敵なGUIを使用して、パブリック共有リポジトリ(現金を支払う場合はプライベート)を作成します。

さまざまなユーザーグループを持ち、GUIがないプライベート/パブリックリポジトリと同数のクレート。

  • アクセス可能なマシンでパスワードのないSSHアカウントを要求します。
  • 認証はSSHキーによって行われるため、心配する必要はありません。
  • このチュートリアルに従ってGitosisをインストールします。
  • これで、単一のファイルを編集してリポジトリにコミットすることで、自分のgitサーバーを管理できます!

Gitは中央サーバーを必要としません。コンピューター内の任意のフォルダーをリポジトリとして使用できるため、gitで遊んで、テストをオフラインにすることができます。ネット上で1ビット送信することなく、1つのリポジトリを初期化し、他の3つのフォルダーで3人の共同作業者をシミュレートできます。これは、リポジトリのクローンコピーはすべて、コミットできるフル機能のリポジトリであるためです。これは、アメリカ、中国、ヨーロッパ間のフライトで働きたい場合に適しています。


1
上記の回答を書いたので、Gitを好むようになりました。Githubが好きであるが、会社に知的財産を与えることにheしている(および/またはその特権を支払う)場合は、Gitlabをチェックしてください
ラファエル14

8

Googleドキュメント(https://docs.google.com)は、ドキュメントを一緒に作成するための優れたツールを提供します(リアルタイム編集を含む)。すべてをオンラインで保存し、Gmailアカウントとうまく統合します。デフォルトでは、Google DocsにはLaTeXの互換性はありませんが、次のようにして有効にすることができます。

http://docs.latexlab.org/

ロールバックでどの程度機能するかはわかりませんが、機能があると確信しています。Google WaveのLaTeXプラグインを使用して、論文の予備的なスケッチを作成する人がいると聞いています。


申し訳ありませんが、それはおそらく競合他社のラボで新しい発明のプロトタイプを構築するようなものです。Googleのツールは人気があり、使いやすさと可用性があるためと思われますが、多くの場合、最良の選択であるとは思いません。最初の努力を少し加えれば、まともな作業環境を整えることはそれほど難しくありません。私は、それが仕事の資格を得るために放課後約10年を費やす人々にとってあまり動機付けになるべきではないと感じています。
ラファエル

4
私はGoogleと競争していません...ですから、私にとっては利用可能な最も簡単なツールを使用しているように思えます。これはOPが要求する要件の1つであるようです。コマンドラインで実行されないからといって、必ずしも悪いツールになるわけではありません。必要な機能が欠けている場合、それはオープンソースプロジェクトであり、経験を使って追加できます。さらに、開発バージョンを使用する場合は、サーバー上のものではなく、ローカルのLaTeXコンパイラーを使用することもできます。
アルテムKaznatcheev

誤解しないでください、私はCLI専用の人間ではありません。たとえば、グラフィカルエディターを大いに楽しんでいます(ただし、WYSIWYGは嫌いです)。事実、地球上で最大のデータマイナーによって提供されていない代替手段があります。Google コンピューターサイエンス、特に機械学習のフレーバーでいくつかの研究を行っいるため、「競合他社」という用語を使用しました。
ラファエル

7

私は共著者にMercurialを学習させ、以前はSubversionを学習させていました。あなたがSubversionファンなら、これを読んでください、それはすべて本当です。

どのシステムを使用していても、他の人にソフトウェアをインストールして使用を開始させることが、最も難しいことです。Skypeは完璧なソリューションです。Skypeの最近のバージョンでは、「デスクトップ共有」が許可されています。これは、共同作成者をインストール手順に導くときに非常に役立ちます。また、Skypeと組み合わせたストレートデスクトップ共有を使用して、共著者と一緒に論文を書きました。それはかなりうまくいきます。

本当に必要なのは「科学者のためのGithub」です。リポジトリを提供し、バージョン管理、共同編集などを行うもの。http: //www.scribtex.com/があります


私は今、Githubを使用して共同研究者との調査を書いています。それは十分に便利であり、私たちは通常異なるセクションで作業しているので、オンラインでの共同編集の必要性を感じません。
スレシュヴェンカト

bitbucketは、いくつかのプライバシーを備えたgithubの利点を提供します。私はそれをテストしています。
ジェレミー

5

これは、多くの科学的執筆のニーズ/要件に対応するワンストップショップとして、有望に見えるWriteLatexと呼ばれる新しい共同オンラインラテックスエディタです。

  • モバイルで動作します
  • リアルタイムのプレビューがあります
  • 簡単/プライベート共有
  • ラテックスエラーを見つけます
  • ラテックスライブラリ/スタイルを追加できます
  • クラウドストレージ

共著者のジョン・ハマーズリーはtcs se metaでここにアナウンスを投稿し、フィードバックに対応しています(広告にさらに5票投票し、メインサイトに表示されます)。時間の経過とともにtcsコミュニティにとって価値のあるツールに進化する可能性があり、著者はリクエストに応じて人気のある機能を実装できる可能性があります。


2

シンプルなシステム、ソリューションはどうですか:

それは問題ではありませんが、グループの一部がSVNのような単純なソリューションに対応し、グループの他の部分がGITのような分散バージョン管理に対応できる場合があります。そのような状況では、協力が可能です。


2

最近、sharelatex.comを発見し、共同編集者と共同で論文を共著者にしました。私の現在の計画は、すべてのプロジェクトに使用することです。注目すべき機能:

  • リアルタイムのブラウザ内TeXing(Google Docsに似ていますが、TeX用に作成され、構文強調表示などすべて)。

  • ブラウザー内でのコンパイルとPDFの表示

  • 複数のファイルを持つプロジェクトをサポート

  • 履歴機能があります

  • Dropboxと同期します(近日中に、現在のベータステータスから公開されます)。これにより、バックアップなどの保存をDropboxにオフロードできます。方法に応じて、Dropboxを使用してファイルを共有する場合は、共著者が望んでいない場合でもsharelatexを使用できます。

  • プロジェクトはいつでもダウンロード/アップロードできるため、何かがうまくいかなかったり、考えが変わったりしてもsharelatexを使用し続けることはありません。

唯一の欠点(しかし、それだけの価値があると思います):sharelatexの使用は無料ですが、その機能のいくつかはそうではありません。特に、Dropboxの同期を使用するには(リリース時に)、または同じsharelatexプロジェクトで6人以上の共著者を使用したい場合は、月額 8 ドルを支払う必要があります。または80 ドル /年[2013年4月現在]。ただし、Dropboxの同期をリリースすると、私にとって非常に公正な価格のようです。

[免責事項:sharelatexまたはその従業員とは、その製品を使用する以外に関係はありません。]


現在はオープンソースです!(そして、FWIW、もありますwritelatex似ていますが、登録なし速い楽しみのために使用することができます。)(それが公表されるまで)私は、商用クラウドで自分の知的財産を入れないと、言いました。
ラファエル14

-5

SVNは、この目的のために開発されたツールです。私はそれを学ぶ努力をしました。たとえば、algorithm2e Latexパッケージまたはpdfスライド作成者のLatexパッケージの1つを使用することを学ぶことほど複雑ではありません。

そうは言っても、SVNの代わりにCVSを使用します。当機関のCS管理者からのより良いサポートがあります(SVNサーバーはよりユーザー管理されます)。さらに、根本的なバージョンのファイルがまだ存在し、何かが非常にうまくいかない場合でも編集できることを感謝しています。

SVNと比較した場合、2つの欠点があります。ファイルの名前変更はそれほどうまくありませんが、私はそれで生きることができます(最初に良い名前を選んでください)。2番目の問題は、リポジトリにアクセスするためにローカルCSアカウントが必要なことです。したがって、別の機関からのアクセスは、アカウントが最初に作成された場合にのみ可能です。もちろん、これがどこでも本当の問題になるとは思わない。ローカル部門のメンバーがおそらくそのアカウントのスポンサーになることができます。

ローカルアクセス制限は、管理者がpserverをサポートしたくないという事実によるものです。(保護が難しいなど)


3
これは、ステップバイステップのヘルプに対する質問の要求に実際に対応しておらず、リストされている利点と欠点のほとんどが回答者のホーム機関にローカライズされているようだからです。
デビッドエップスタイン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.