Công cụ hợp tác cho người giả / giáo sư


36

Giả sử rằng các đồng tác giả từ hai hoặc nhiều tổ chức khác nhau đang viết một bài báo bằng mủ, và muốn làm tốt hơn là liên tục gửi email các bản nháp qua lại.

Họ nhận ra rằng họ có thể mở miễn phí tài khoản dropbox, chia sẻ mật khẩu và đồng bộ phiên bản giấy trên máy tính của họ với tài khoản trên dropbox. Tuy nhiên, nếu hai người đồng thời chỉnh sửa cùng một phần, họ sẽ ghi đè lên các thay đổi của nhau.

Họ cũng đã nghe nói rằng các hệ thống kiểm soát phiên bản như SVN và Git có các công cụ để hợp nhất các thay đổi đồng thời, hoạt động khá tốt. Tuy nhiên, tài liệu của các sản phẩm này khá khó đọc và tập trung nhiều hơn vào cách hoàn tác các thay đổi và cách quản lý các "nhánh" khác nhau thay vì các nhu cầu cơ bản của các đồng tác giả viết một bài báo.

Có một giải trình từng bước đơn giản về cách sử dụng hệ thống kiểm soát phiên bản trong thiết lập này:

  • Kho trung tâm
  • bản sao địa phương
  • hợp nhất "thông minh"
  • không có chi nhánh

?

Trong số các hệ thống kiểm soát phiên bản tiêu chuẩn, hệ thống nào dễ sử dụng nhất? (Chúng tôi đang nói chuyện giáo sư khoa học máy tính lý thuyết ở đây.)

Thậm chí có những công cụ đơn giản hơn chỉ thực hiện đồng bộ với hợp nhất thông minh, không có kiểm soát phiên bản?

Ngược lại, những người sử dụng các hệ thống kiểm soát phiên bản thậm chí viết một bài báo có một tác giả thực sự cảm thấy rằng khả năng hoàn tác không giới hạn có đáng để phức tạp thêm không?


Câu hỏi rất thú vị.
Oleksandr Bondarenko

1
Thật. Tôi chưa tìm thấy thứ gì tốt hơn SVN cho đến nay, nhưng đôi khi hơi tẻ nhạt khi khiến người mới sử dụng nó đúng cách. Tôi mong muốn câu trả lời cung cấp giải pháp thân thiện với người dùng.
Anthony Labarre

2
Tôi cũng thích câu hỏi này! @Luca: Bạn cũng có thể quan tâm đến Kiểm soát phiên bản để cộng tác (với các từ khác nhau ở cấp độ từ)? .
MS Dousti

1
Trong một số nhánh của CS, việc viết giấy (và slide) là nguồn biết chữ là điều phổ biến. Các công cụ như lhs2tex ( people.cs.uu.nl/andres/lhs2tex ) rất hữu ích trong vấn đề này. Kết quả cuối cùng là các ví dụ mã nguồn trong bài báo có thể biên dịch và kiểm tra, và kết quả thậm chí có thể được tạo tự động. Trong những trường hợp như vậy, một dvcs chính hãng có vẻ như là điều duy nhất cần làm :-)
sclv

btw dropbox có kiểm soát phiên bản thô sơ: bạn có thể quay lại phiên bản trước của bất kỳ tệp nào. nhưng việc sáp nhập sẽ phải là thủ công, có thể là một người lập dị. Tuy nhiên, ngay cả với svn, tôi tưởng tượng vẫn là một ý tưởng tốt để vượt qua các mã thông báo ảo xung quanh? những gì tôi đã làm là chia tệp latex thành một tệp khác nhau cho mỗi phần và chỉ cần sử dụng dropbox.
Sasho Nikolov

Câu trả lời:


12

Trước hết: Nếu bạn quan tâm đến việc chỉnh sửa cộng tác theo thời gian thực, hãy thử một cái gì đó như ggie . Nó cho phép bạn chỉnh sửa một tài liệu cùng một lúc.

Đối với các hệ thống sửa đổi, tôi chỉ quen thuộc với SVN. Đây là những gì bạn làm, sau khi cài đặt lật đổ, tất nhiên:

  1. Nhờ ai đó thiết lập cho bạn một kho lưu trữ và cung cấp cho bạn URL, tên người dùng và mật khẩu
  2. Đi đến nơi bạn muốn có bản sao lokal của bạn
  3. Trong shell (dòng lệnh?), Gõ: svn co url://to.your/repository(check-out). Bây giờ một thư mục mới với nội dung của kho lưu trữ xuất hiện.

Đó là tất cả. Bây giờ các lệnh cơ bản nhất:

  • Bất cứ khi nào bạn thêm một tập tin mới foo, hãy nhập:svn add foo
  • Bất cứ khi nào bạn muốn xóa một tập tin, nhập: svn rm foo
  • Bất cứ khi nào bạn thực hiện thay đổi, hãy nhập: svn ci(đăng ký)
  • Bất cứ khi nào bạn muốn nhận những thứ mới nhất, hãy nhập: svn up(cập nhật)

Ngoài ra còn có các lệnh để di chuyển, sao chép, phân nhánh, giải quyết xung đột, ... nhưng miễn là bạn không thử những thứ buồn cười, bạn vẫn ổn với những điều trên. Nếu bất cứ điều gì bị hỏng hoặc dường như, hãy sao lưu các chỉnh sửa của bạn, xóa toàn bộ thư mục và kiểm tra toàn bộ điều đó một lần nữa. Đó là cho svn như khởi động lại cho Windows.

Phụ lục: Tôi thấy bạn dường như quan tâm đến "sự hợp nhất thông minh". Tôi giả sử rằng bạn đề cập đến các phiên bản khác nhau của một tệp được hợp nhất, với giả định rằng hai người đã thêm các thứ vào các phần khác nhau của bài báo. Theo tôi biết, svn sẽ coi đó là một cuộc xung đột, và có lẽ đúng như vậy. Tôi không nghĩ rằng có một quy trình chung đảm bảo bạn có được những gì bạn muốn sau khi hai người thao túng cùng một nguồn. Có các máy khách svn đồ họa trực quan hóa các xung đột đó và giúp bạn giải quyết chúng; họ có khá nhiều người xem khác nhau, bạn có thể chọn phiên bản nào sẽ giữ cho mỗi dòng xung đột). Nó sẽ đòi hỏi công việc, mặc dù.


6
Ngoài ra, bạn nên sử dụng ToriseSVN để xử lý tất cả các tương tác với SVN bằng đồ họa; nó làm cho mọi thứ trở nên dễ dàng
Trưa Silk

3
Tôi sẽ thêm vào điều này thay vì thiết lập máy chủ SVN của riêng bạn, tôi khuyên bạn nên sử dụng dịch vụ được lưu trữ miễn phí như unluddle.com . Nó khá đau và riêng tư.
Anand Kulkarni

2
cảm ơn, và cảm ơn Anand về lời đề nghị giải quyết, đây chính xác là hướng dẫn dài 1 phút mà tôi đang tìm kiếm. Tôi đã thử thiết lập một kho lưu trữ trên unuddle, tạo hai bản sao cục bộ trên các máy tính khác nhau, thực hiện các chỉnh sửa không phù hợp và kiểm tra và nó thực hiện hợp nhất thông minh như Suresh nói. (Nếu hai người dùng thực hiện các thay đổi không nhất quán, người dùng thứ hai để đăng nhập sẽ nhận được thông báo lỗi; nhưng nếu người dùng thứ hai cập nhật và sau đó đăng nhập, bản cập nhật sẽ hợp nhất thông minh cục bộ và đăng ký sẽ hợp nhất thông minh kho lưu trữ trung tâm.)
Luca Trevisan

1
về Raphael's off: etherpad.org - một công cụ chỉnh sửa thời gian thực khác. rất hứa hẹn ...
Alessandro Cosentino

1
Tôi nên nói rằng nhiều người thích git hơn svn, nhưng bản thân tôi không có kinh nghiệm.
Raphael

12

Tôi nhận thấy rằng không ai đưa ra hướng dẫn "nhỏ" cho GIT , vì vậy tôi sẽ cố gắng bao quát nó. GIT nhanh hơn và vượt trội so với SVN, nhưng có lẽ việc lấy tài khoản SVN trên máy chủ tại trường đại học của bạn sẽ dễ dàng hơn vì SVN được thiết lập tốt. Cũng có thể các cộng tác viên của bạn sẽ biết cách sử dụng nó.

Ngay cả khi bạn cộng tác bằng SVN, bạn có thể muốn sử dụng GIT cho phiên bản địa phương của riêng bạn (tôi làm!).

Cảnh báo đầu tiên : GIT rất mạnh và đối với việc sử dụng cơ bản chỉ khó sử dụng hơn một chút so với SVN (ví dụ: một tùy chọn được thêm vào trong dòng lệnh; hai bước cam kết cho kho lưu trữ trung tâm).

Δ

Các lệnh cơ bản giả sử bạn đã có một kho lưu trữ

  • Sao chép một kho lưu trữ: git clone <url>
  • Cập nhật kho lưu trữ cục bộ của bạn: git pull <repo>hoặc chỉ git pullkhi bạn nhân bản như trên.
  • Lệnh kéo thực sự làm cả hai git fetchgit merge. Các công cụ "tìm nạp" trước đây từ máy chủ trung tâm và lần thứ hai áp dụng hợp nhất các tệp của bạn và các tệp của máy chủ.

Việc hợp nhất là tự động miễn là không có chỉnh sửa đồng thời trên cùng một phần của một số tệp. Nếu việc hợp nhất thất bại, thư mục làm việc của bạn vẫn ở trạng thái "hợp nhất", điều đó có nghĩa là bạn phải sửa các xung đột và sau đó bạn phải cam kết bản sao đã hợp nhất. Nếu bạn vẫn có xung đột không được quản lý trong các tệp của mình thì cam kết sẽ lại thất bại, không có rác nào được cam kết.

  • Thêm một tệp mới để được cam kết : git add <file name>.
  • Cam kết thay đổi cho kho lưu trữ cục bộ của bạn : git commit -am "<textmessages>"hoặc git commit -anếu bạn muốn chỉnh sửa các thông điệp cam kết.
  • Đẩy các thay đổi trong kho lưu trữ cục bộ của bạn sang kho lưu trữ trung tâm .

Lưu ý rằng để đẩy các thay đổi vào kho lưu trữ trung tâm của bạn, trước tiên bạn phải cam kết với kho lưu trữ cục bộ của mình và bạn phải đẩy tất cả các cam kết (thậm chí nhiều hơn một) vào kho lưu trữ trung tâm của mình .

Tạo một kho lưu trữ cục bộ người dùng

  • Tạo một kho lưu trữ git inittrong bất kỳ thư mục nào bạn thích.
  • Làm xong!

Tạo một repo chia sẻ công khai (cũng riêng tư nếu bạn trả tiền mặt) với GUI đẹp.

Có nhiều kho lưu trữ riêng tư / công cộng với các nhóm người dùng khác nhau nhưng không có GUI.

  • Yêu cầu tài khoản SSH không có mật khẩu trên máy có thể truy cập.
  • Đừng lo lắng vì xác thực được thực hiện bằng các khóa SSH.
  • Cài đặt Gitosis theo hướng dẫn này .
  • Bây giờ bạn có thể quản trị máy chủ git của mình bằng cách chỉnh sửa một tệp duy nhất và cam kết nó vào kho lưu trữ!

Git không cần máy chủ trung tâm : mọi thư mục trong máy tính của bạn đều có thể được sử dụng làm kho lưu trữ, vì vậy bạn có thể chơi với git và thực hiện các bài kiểm tra ngoại tuyến. Bạn có thể khởi tạo một kho lưu trữ và mô phỏng ba cộng tác viên trong ba thư mục khác mà không cần gửi một bit trên mạng. Điều này là do bất kỳ bản sao nhân bản của kho lưu trữ là một kho lưu trữ đầy đủ tính năng mà bạn có thể cam kết. Điều này là tốt nếu bạn muốn làm việc trong một chuyến bay giữa Hoa Kỳ, Trung Quốc hoặc Châu Âu.


1
Vì tôi đã viết câu trả lời của mình ở trên, tôi cũng đã thích Git hơn. Nếu bạn thích Github nhưng ngần ngại giao tài sản trí tuệ của mình cho một công ty (và / hoặc trả tiền cho đặc quyền đó), hãy xem Gitlab .
Raphael

8

Tài liệu Google ( https://docs.google.com ) cung cấp các công cụ tuyệt vời để soạn thảo tài liệu cùng nhau (bao gồm chỉnh sửa theo thời gian thực). Nó lưu trữ mọi thứ trực tuyến cho bạn và tích hợp tốt với tài khoản Gmail của bạn. Theo mặc định, Google Docs không có khả năng tương thích LaTeX, nhưng bạn có thể kích hoạt nó bằng cách vào đây:

http://docs.latexlab.org/

Tôi không chắc nó hoạt động tốt như thế nào cho rollback, nhưng tôi chắc chắn có một tính năng cho nó. Tôi đã nghe nói về một số người sử dụng trình cắm LaTeX của Google Wave để tạo ra các bản phác thảo sơ bộ cho các bài viết.


Xin lỗi, nhưng điều đó có thể giống như xây dựng nguyên mẫu của phát minh mới của bạn trong phòng thí nghiệm của đối thủ cạnh tranh. Tôi biết rằng các công cụ của Google rất phổ biến, có thể đoán được vì dễ sử dụng và sẵn có, nhưng tôi nghi ngờ chúng thường là lựa chọn tốt nhất. Thiết lập một môi trường làm việc tử tế không quá khó một khi bạn đã nỗ lực hết sức. Tôi cảm thấy rằng đó không phải là quá nhiều của một người giải thích cho những người dành khoảng mười năm sau khi đi học để đủ điều kiện cho công việc của họ.
Raphael

4
Tôi không cạnh tranh với Google ... vì vậy đối với tôi, dường như việc sử dụng công cụ đơn giản nhất hiện có, đây dường như là một trong những yêu cầu mà OP yêu cầu. Chỉ vì nó không chạy trong dòng lệnh của bạn không nhất thiết phải biến nó thành một công cụ tồi. Nếu nó thiếu một số chức năng bạn cần, thì đó là một dự án nguồn mở và bạn có thể sử dụng kinh nghiệm của mình để thêm vào nó. Hơn nữa, nếu bạn sử dụng phiên bản phát triển, bạn thậm chí có thể sử dụng trình biên dịch LaTeX cục bộ của mình thay vì phiên bản trên máy chủ của họ.
Artem Kaznatcheev

Đừng hiểu lầm tôi, tôi không phải là người chỉ có CLI. Tôi rất thích các trình soạn thảo đồ họa, ví dụ (mặc dù tôi không thích WYSIWYG). Thực tế là, có những lựa chọn thay thế không được cung cấp bởi công cụ khai thác dữ liệu lớn nhất trên trái đất. Tôi đã sử dụng thuật ngữ "đối thủ cạnh tranh" kể từ khi afaik, Google thực hiện một số nghiên cứu về khoa học máy tính, đặc biệt là hương vị máy học.
Raphael

7

Tôi làm cho các đồng tác giả của mình học Mercurial và tôi đã từng khiến họ học Subversion. Nếu bạn là một người hâm mộ Subversion, chỉ cần đọc điều này , tất cả là sự thật.

Cho dù bạn sử dụng hệ thống nào, điều khó nhất là bắt người khác cài đặt phần mềm và bắt đầu sử dụng nó. Skype là giải pháp hoàn hảo. Các phiên bản gần đây của Skype cho phép "chia sẻ máy tính để bàn" thực sự hữu ích khi bạn muốn dẫn dắt đồng tác giả của mình thông qua quy trình cài đặt. Và tôi đã sử dụng chia sẻ máy tính để bàn thẳng kết hợp với Skype để viết một bài báo với đồng tác giả của tôi. Nó hoạt động khá tốt.

Điều thực sự cần thiết là một "Github dành cho các nhà khoa học". Một cái gì đó cung cấp một kho lưu trữ, có kiểm soát phiên bản, chỉnh sửa cộng tác, v.v ... Đoán xem, có gì, có http://www.scribetex.com/ .


Tôi đang sử dụng Github ngay bây giờ để viết một cuộc khảo sát với cộng tác viên. Nó đủ tiện lợi và tôi không cảm thấy cần phải chỉnh sửa cộng tác trực tuyến vì chúng tôi thường làm việc ở các phần khác nhau.
Suresh Venkat

bitbucket sẽ cung cấp cho bạn những lợi thế của github với một số quyền riêng tư. Tôi đang thử nghiệm nó.
Jeremy

5

đây là một trình soạn thảo latex trực tuyến hợp tác mới có tên WriteLatex có vẻ đầy hứa hẹn, như một cửa hàng gần một cửa cho nhiều nhu cầu / yêu cầu viết khoa học.

  • hoạt động trên điện thoại di động
  • có xem trước thời gian thực
  • chia sẻ dễ dàng / riêng tư
  • tìm lỗi latex
  • cho phép thêm vào thư viện / kiểu latex
  • lưu trữ đám mây

đồng tác giả John Hammersley đã đăng một thông báo trong tcs se meta tại đây và anh ấy phản ứng nhanh với phản hồi (thêm 5 phiếu trên quảng cáo & nó sẽ xuất hiện trên trang web chính). có vẻ như nó có thể phát triển thành một công cụ có giá trị cho cộng đồng tcs theo thời gian và có thể các tác giả sẽ có thể thực hiện một số tính năng phổ biến cụ thể theo yêu cầu.


2

Những gì về hệ thống đơn giản, giải pháp:

Không có vấn đề gì, nhưng đôi khi có những tình huống trong đó một phần của nhóm có khả năng giải pháp đơn giản như SVN, trong khi một phần khác của nhóm có khả năng kiểm soát phiên bản phân tán như GIT. Trong những tình huống như vậy có thể hợp tác:


2

Gần đây tôi đã phát hiện ra sharelatex.com và sử dụng nó với cộng tác viên của tôi để đồng tác giả một bài báo. Tôi thích nó rất nhiều kế hoạch hiện tại của tôi là sử dụng nó cho tất cả các dự án của tôi. Một số tính năng đáng chú ý:

  • TeXing trong trình duyệt thời gian thực (như Google Docs, nhưng được tạo cho TeX, tô sáng cú pháp và tất cả).

  • Biên dịch trong trình duyệt và xem PDF

  • Hỗ trợ các dự án với nhiều tệp

  • Có một tính năng lịch sử

  • Đồng bộ hóa với Dropbox (sắp được phát hành công khai, từ trạng thái beta hiện tại của nó). Bằng cách này, bạn có thể giảm tải việc lưu các bản sao lưu, vv vào Dropbox. Tùy thuộc vào cách thực hiện, điều này cũng sẽ cho phép bạn sử dụng sharelatex ngay cả khi các đồng tác giả của bạn không muốn, miễn là họ sẵn sàng sử dụng Dropbox để chia sẻ tệp.

  • Bạn có thể tải xuống / tải lên dự án của mình bất cứ lúc nào, vì vậy bạn không bị mắc kẹt khi sử dụng sharelatex nếu có sự cố hoặc bạn thay đổi ý định hoặc bất cứ điều gì.

Nhược điểm duy nhất (nhưng tôi nghĩ nó đáng giá): mặc dù sử dụng sharelatex là miễn phí, một số tính năng của nó thì không. Đáng chú ý, để sử dụng đồng bộ hóa Dropbox (khi họ phát hành nó) hoặc nếu bạn muốn có hơn 6 đồng tác giả hoạt động trên cùng một dự án sharelatex, bạn phải trả $ 8 / tháng. hoặc $ 80 / năm [kể từ tháng 4 năm 2013]. Khi họ phát hành đồng bộ hóa Dropbox, có vẻ như đó là một mức giá rất hợp lý với tôi.

[Tuyên bố miễn trừ trách nhiệm: Tôi không có mối quan hệ nào với sharelatex hoặc nhân viên của công ty đó ngoài việc tôi sử dụng sản phẩm của họ.]


Bây giờ là nguồn mở! (Và, fwiw, cũng có wrlistatex tương tự nhưng có thể được sử dụng để giải trí nhanh mà không cần đăng ký.) Điều đó nói rằng, tôi sẽ không đưa tài sản trí tuệ của mình vào một đám mây thương mại (cho đến khi nó được xuất bản).
Raphael

-5

SVN là công cụ được phát triển cho mục đích này. Tôi sẽ nỗ lực để học nó. Nó không phức tạp hơn việc học cách sử dụng gói latexm2m2 hoặc một trong các gói latex của trình tạo slide pdf.

Phải nói rằng, tôi sử dụng CVS thay vì SVN. Có sự hỗ trợ tốt hơn từ các quản trị viên CS tại tổ chức của chúng tôi (máy chủ SVN được quản lý nhiều người dùng hơn). Thêm vào đó, tôi đánh giá cao rằng các tệp phiên bản cơ bản vẫn còn đó và có thể chỉnh sửa nếu có gì đó rất sai.

Có 2 nhược điểm khi so sánh với SVN. Đổi tên tệp không đẹp, nhưng tôi có thể sống với điều đó (chọn một tên hay lần đầu tiên). Vấn đề thứ hai là người ta cần một tài khoản CS cục bộ để truy cập vào kho lưu trữ. Do đó, từ một tổ chức khác chỉ có thể truy cập nếu tài khoản được tạo trước. Tất nhiên tôi không mong đợi đây sẽ là một vấn đề thực sự ở bất cứ đâu; một thành viên bộ phận địa phương có thể có thể tài trợ cho tài khoản đó.

Hạn chế truy cập cục bộ là do các quản trị viên không muốn hỗ trợ máy chủ ps. (Khó bảo mật hơn, v.v.)


3
Bị từ chối vì điều này không thực sự giải quyết yêu cầu của câu hỏi về trợ giúp từng bước và bởi vì hầu hết các ưu điểm và nhược điểm được liệt kê dường như được tập trung vào tổ chức nhà của người trả lời.
David Eppstein
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.