Sebagian besar makalah sekarang ditulis secara kolaboratif, dan kolaborator sering berada di tempat yang berbeda. Saya selalu menggunakan sistem kontrol versi untuk dokumen dan kode saya, dan juga menemukan kontrol versi penting untuk proyek perangkat lunak kolaboratif, tetapi tampaknya banyak peneliti dalam teori menghindari penggunaannya untuk menulis makalah bersama. Untuk meyakinkan kolaborator saya bahwa kontrol versi (kontrol revisi) adalah ide yang baik untuk bekerja bersama, tampaknya ada beberapa prasyarat. Tidak mungkin memaksa semua orang untuk khawatir tentang serangkaian konvensi khusus untuk jeda baris dan paragraf, atau untuk menghindari konversi tab / spasi.
Apakah seseorang menawarkan hosting gratis dari repositori dokumen bersama kecil, dengan kontrol versi ramah dokumen teks yang dapat menangani perbedaan level kata ( bukan berbasis garis)?
Jika tidak, maka saya akan menyambut saran lain yang didasarkan pada pengalaman (tolong hindari spekulasi, silakan).
Saya sedang memikirkan Git, Subversion, Mercurial, darcs, atau Bazaar, yang dibentuk untuk menangani perbedaan level kata dengan wdiff, bersama dengan cara sederhana untuk mengatur akses yang dijamin oleh kunci publik (misalnya melalui ssh). Namun, tidak ada penyedia kontrol versi yang saya lihat tampaknya menawarkan hal seperti ini. Untuk kolaborasi ilmiah, fitur "perusahaan" yang ditekankan oleh banyak dari perusahaan ini tidak terlalu penting (banyak cabang, integrasi dengan trac, audit oleh pihak ketiga, tim proyek hierarkis). Tetapi perbedaan tingkat kata tampaknya kritis namun tidak didukung. Dalam pengalaman saya, dengan perbedaan level baris untuk file teks, setiap orang harus menghindari memformat ulang paragraf dan editor yang mengubah tab menjadi spasi atau sebaliknya menyebabkan masalah; tampaknya juga ada banyak konflik edit palsu.
Lihat pertanyaan terkait di MO tentang alat untuk kolaborasi , dan pertanyaan terkait di TeX.SE, tentang kontrol versi untuk dokumen LaTeX dan LaTeX paket LaTeX untuk kontrol versi . Lihat juga Grafik Tinjauan Perbandingan Hosting SVN untuk daftar besar penyedia hosting, hanya untuk salah satu sistem kontrol versi utama.
Sunting: Jawaban Jukka Suomela untuk pertanyaan TeX.SE "Perangkat LaTeX-sadar terbaik dan menggabungkan untuk subversi " tampaknya menjadi saran terbaik sejauh ini, yang mencakup cara menafsirkan delta pada tingkat kata. Selain itu, Jukka telah menjelaskan bagaimana perbedaan antara versi berturut-turut pada akhir repositori terpisah dari perbedaan tingkat pengguna yang digunakan untuk deteksi konflik dan penggabungan perubahan. Jawaban Jukka di TeX.SE secara eksplisit mengecualikan pengeditan simultan dan penggabungan, sebagai gantinya bergantung pada token edit atom tradisional untuk menghindari konflik edit. Mengklarifikasi (dan memodifikasi) pertanyaan awal saya, apakah ada cara untuk memastikan bahwa konflik edit dapat diselesaikan berdasarkan perbedaan kata, bukan berdasarkan perbedaan baris? Dengan kata lain, bisawdiff
atau alat serupa diintegrasikan ke dalam deteksi konflik bagian dari alat kontrol versi, mirip dengan cara perbedaan end-of-line dan perbedaan dalam spasi dapat diabaikan?
sumber
Jawaban:
Saya telah menggunakan git untuk berkolaborasi pada beberapa dokumen yang ditulis dalam lateks. Anda harus mematuhi beberapa aturan:
*.tex diff=tex
. Ini membuat sintaks tex berbeda dan mengarah ke output yang lebih bermakna.Anda kemudian dapat menggunakan
git diff --color-words
dangitk --color-words
untuk melihat perbedaan kata (juga lihat artikel ini Perbedaan kata per kata di Git tentang cara mengkonfigurasi git untuk selalu menggunakan algoritme kata-beda untuk menampilkan log git diff / git).Untuk mengurangi penggabungan manual, saya dapat merekomendasikan menggunakan file terpisah untuk bagian dan subbagian (tergantung pada ukuran dokumen Anda).
sumber
Saya sarankan melihat:
LaTeX / Penulisan Kolaboratif Dokumen LaTeX ,
dan makalah terkait:
Alat untuk Menulis Kolaboratif Dokumen Ilmiah LaTeX .
sumber
Saya benar-benar ingin menggemakan orang lain dan menyarankan agar Anda duduk dan menyusun strategi SVN yang bagus. Saya menggunakan SVN untuk menampung seluruh struktur "penelitian" saya:
Ini hebat karena mengandung segalanya, dan tentu saja memberikan sejarah. Peringatannya adalah Anda membutuhkan server Anda sendiri. Tetapi jika Anda memiliki beberapa mesin Windows yang ada (atau apa pun yang Anda sukai), Anda dapat menginstalnya hanya melalui VisualSVN Server . Anda kemudian membuat akun yang sesuai untuk kolaborator, dan memberi mereka akses ke area yang sesuai (misalnya, mungkin akses baca ke file bibtex JabRef Anda, dan baca / tulis ke area artikel 'dalam proses' yang dibagikan).
TortiseSVN dapat digunakan sebagai klien Windows untuk berinteraksi dengan SVN. Anda perlu berhati-hati memindahkan / menghapus file dan menyalin folder (SVN akan menyimpan metadata di dalam folder tersembunyi di setiap folder Anda, jadi Anda harus menjalankan perintah delete dari dalam SVN untuk menyingkirkannya, perlu sedikit membiasakan diri. untuk, tetapi bernilai investasi).
Kemudian, ketika bekerja dengan kolaborator, mereka jelas juga harus menggunakan SVN. Tetapi, sekali lagi, investasi dalam pembelajaran tidak sia-sia. Dan melalui beberapa pemikiran, Anda juga dapat memilikinya sehingga Anda memiliki akses hanya baca ke file jabref mereka (mungkin melalui fasilitas 'eksternal' di svn).
Dengan cara ini, dengan sedikit pemikiran dan sedikit usaha, Anda bisa berada dalam situasi di mana Anda mengedit dokumen seperti biasa, melakukan perubahan setiap malam, memperbarui di pagi hari dan menyelesaikan semua konflik dengan mudah.
Saya sangat merekomendasikannya. Semakin banyak orang yang membuat SVN mereka sendiri semakin baik, karena hanya akan meningkatkan opsi kolaborasi di masa depan (meskipun, tentu saja, akan bermanfaat jika mungkin ada cara 'standar' untuk mengatur repositori ilmiah).
- Sunting: Infact, saya telah menulis proposal seperti ini di sini: Strategi untuk Kerja Sama Ilmiah dengan LaTeX dan SVN . Ini mengusulkan untuk menggunakan fitur svn eksternal untuk memungkinkan kolaborasi yang mudah antara orang-orang dengan pengaturan yang sama. Beri tahu saya jika perlu diubah atau tidak tepat.
sumber
Sambil membaca posting hebat Anda dan mencari solusi sendiri, saya menemukan pilihan untuk mewarnai perubahan pada level kata di gitk . Parameter gitk tampaknya merupakan fitur baru dan / atau tidak berdokumen karena pelengkapan otomatis tidak menawarkannya dan halaman manual gitk tidak mencantumkannya.
Berikut adalah opsi yang saya temukan:
Anda dapat menemukan beberapa diskusi tentang topik itu mencari gitk "diff --color-words" .
Sunting:
Ini seperti apa ...
sumber
Saya mengerti masalahnya dengan sangat baik. Saya sudah mulai menggunakan Kaleidoscope untuk diff dengan git. Ini hanya untuk Mac tetapi perbandingannya berfungsi lebih baik daripada wdiff, dan juga memiliki antarmuka dan pembaruan langsung.
sumber