Aptallar / profesörler için ortak araçlar


36

İki ya da daha fazla farklı kurumdaki ortak yazarların latekste bir kağıt yazdığını ve taslakları tekrar tekrar e-postayla göndermekten daha iyisini yapmak istediklerini varsayalım.

Ücretsiz bir dropbox hesabı açabileceklerini, şifreyi paylaşabileceklerini ve bilgisayarlarındaki kağıdın sürümünü dropbox'taki bir hesapla eşitleyebileceklerini fark ederler. Ancak iki kişi aynı anda aynı bölümü düzenliyorsa, birbirlerinin üzerine yazacaklardır.

Ayrıca SVN ve Git gibi sürüm kontrol sistemlerinin, eş zamanlı değişiklikleri birleştirmek için oldukça iyi çalışan araçlara sahip olduğunu duydular. Bununla birlikte, bu ürünlerin dokümantasyonunu okumak oldukça zordur ve yazarların kâğıt yazmadaki temel ihtiyaçlarından ziyade değişikliklerin nasıl geri alınacağına ve farklı "dalların" nasıl yönetileceğine odaklanır.

Bu kurulumda sürüm kontrol sisteminin nasıl kullanılacağı hakkında basit bir adım adım açıklama var mı:

  • Merkez depo
  • yerel kopyalar
  • "akıllı" birleştirme
  • dal yok

?

Standart versiyon kontrol sistemlerinden hangisi kullanımı en kolay olanıdır? (Burada teorik bilgisayar bilimleri profesörleri konuşuyoruz.)

Sürüm kontrolü olmadan, sadece akıllı birleştirme ile senkronize olan daha basit araçlar var mı?

Buna karşılık, tek bir yazar kâğıt yazmak için versiyon kontrol sistemlerini kullanan insanlar sınırsız geri alma özelliğinin ekstra karmaşıklığa değdiğini düşünüyorlar mı?


Çok ilginç bir soru.
Oleksandr Bondarenko

1
Aslında. Şimdiye kadar SVN'den daha iyi bir şey bulamadım, ancak yeni gelenleri doğru kullanmak için biraz sıkıcı olabilir. Kullanıcı dostu çözümler sunan cevaplar için sabırsızlanıyorum.
Anthony Labarre,

2
Ben de bu soruyu seviyorum! @Luca: İşbirliği için sürüm kontrolü ile de ilgilenebilirsiniz (sözcük düzeyinde farklılıklar var)? .
MS Dousti,

1
Bazı CS dallarında, okuryazar kaynak olarak makale (ve slayt) yazmak yaygındır. Lhs2tex ( people.cs.uu.nl/andres/lhs2tex ) gibi araçlar bu konuda faydalıdır. Sonuçta, kağıttaki kaynak kod örnekleri derlenebilir ve kontrol edilir ve sonuçların otomatik olarak bile üretilebileceği açıktır. Bu gibi durumlarda, gerçek bir dvcs, yapılacak tek şey gibi görünüyor :-)
sclv

btw dropbox ilkel sürüm kontrolüne sahiptir: herhangi bir dosyanın önceki sürümüne geri dönebilirsiniz. ancak birleşme, bir serseri olabilen manuel olmalıdır. Yine de, svn ile bile, sanal jetonları dolaşmanın hala iyi bir fikir olduğunu düşünüyorum. Yaptığım şey, lateks dosyasını her bölüm için farklı bir dosyaya bölmek ve sadece dropbox kullanmak.
Sasho Nikolov

Yanıtlar:


12

Öncelikle: Gerçek zamanlı işbirlikçi düzenleme ile ilgileniyorsanız, gobby gibi bir şey deneyin . Kelimenin tam anlamıyla bir dokümanı aynı anda düzenlemenizi sağlar.

Revizyon sistemlerine gelince, sadece SVN ile tanıştım. Tabii ki, yıkılmayı yükledikten sonra, elbette:

  1. Size bir havuz kurmak için birileri edinin ve URL, kullanıcı adı ve parola verin.
  2. Yerel kopyanızı almak istediğiniz yere gidin
  3. Bir kabuğa (komut satırı?), Şunu yazın: svn co url://to.your/repository(check-out). Şimdi havuzun içeriğine sahip yeni bir klasör belirir.

Bu kadar. Şimdi en temel komutlar:

  • Eğer zaman eklemek yeni bir dosya foogirin:svn add foo
  • Bir dosyayı ne zaman kaldırmak isterseniz, şunu girin: svn rm foo
  • Ne zaman değişiklik yaptıysanız, şunu girin: svn ci(giriş)
  • En yeni şeyleri ne zaman almak isterseniz, şunu girin: svn up(güncelleme)

Ayrıca, hareket etmek, kopyalamak, dallanmak, çatışmaları çözmek için komutlar var ... ama komik şeyler denemediğiniz sürece, yukarıda belirtilenleri yerine getiriyorsunuz. Herhangi bir şey kırılır veya belirirse, düzenlemelerinizi yedekleyin, tüm klasörü silin ve her şeyi yeniden kontrol edin. Bu, Windows için yeniden başlatmak gibi svn içindir.

Zeyilname: "Akıllı birleşmeler" konusunda endişelendiğinizi görüyorum. İki kişinin kağıdın ayrık kısımlarına bir şeyler eklediği varsayımıyla birleştirilen bir dosyanın farklı sürümlerine sahip olmanız gerektiğini kabul ediyorum. Bildiğim kadarıyla, svn bunu bir çatışma olarak görecekti ve muhtemelen haklı olarak. İki kişi aynı kaynağı manipüle ettikten sonra istediğinizi elde etmenizi sağlayan genel bir prosedür olduğunu sanmıyorum. Bu tür çatışmaları görselleştiren ve çözmenize yardımcı olan grafiksel svn istemcileri var; onlar hemen hemen farklı görüş açıcılarıdır, her çelişen çizgi için hangi sürümü tutacağınızı seçebiliyordunuz. Gerçi iş gerektirecek.


6
Ayrıca, SVN ile tüm etkileşimi grafiksel olarak işlemek için ToriseSVN kullanmalısınız; her şeyi bir esinti yapar.
Öğle İpekini

3
Buna kendi SVN sunucunuzu ayarlamak yerine, unfuddle.com gibi ücretsiz bir barındırılan hizmet kullanmanızı tavsiye edeceğim . Oldukça acısız ve özel.
Anand Kulkarni

2
Teşekkürler ve Anand’a yanıltılma önerisi için teşekkürler, bu tam da aradığım 1 dakikalık eğitimdi. Ayrılmadan bir depo oluşturmayı, farklı bilgisayarlarda iki yerel kopya oluşturmayı, tutarsız düzenlemeleri yapmayı ve kontrol etmeyi denedim ve Suresh’in dediği gibi akıllı birleştirme gerçekleştirdi. (İki kullanıcı tutarsız değişiklikler yaparsa, kontrol edilecek ikincisi bir hata mesajı alır; ancak ikincisi güncellenir ve sonra kontrol edilirse, güncelleme akıllıca birleştirme işlemini yerel olarak yapar ve check-in işlemi akıllı birleştirme işlemini bir araya getirir. merkez depo.)
Luca Trevisan

1
Raphael hakkında kapalı: etherpad.org - başka bir gerçek zamanlı düzenleme aracı. çok umut verici ...
Alessandro Cosentino

1
Birçok insanın svn yerine gitmeyi tercih ettiğini söylemeliyim, ancak kendimle ilgili deneyimim yok.
Raphael

12

Hiç kimsenin GIT için "küçük" bir eğitim vermeyeceğini fark ettim, bu yüzden onu ele almaya çalışacağım. GIT, SVN'den daha hızlı ve daha üstün olmakla birlikte, SVN'nin kuruluşundan bu yana üniversitenizdeki bir sunucudan bir SVN hesabı almanız daha kolaydır. Ayrıca ortak çalışanlarınız nasıl kullanılacağını bilir.

SVN kullanarak işbirliği yapsanız bile, GIT'yi kendi yerel versiyonunuz için kullanmak isteyebilirsiniz (Yaparım!).

İlk uyarı biti : GIT çok güçlüdür ve temel kullanım için SVN kullanmaktan sadece biraz daha zordur (örn. Komut satırına eklenecek bir seçenek; iki basamak merkezi depoya aittir).

Δ

Zaten bir havuzunuz olduğunu varsayan temel komutlar

  • Bir havuzu klonla: git clone <url>
  • Yerel veri havuzunuzu güncelleyin: git pull <repo>ya da sadece git pullyukarıdaki gibi klonladıysanız.
  • Çekme komutu gerçekten hem yapar git fetchve git merge. Merkezi sunucudan eski "getirme" öğeleri ve ikincisi dosyalarınızdan ve sunucunuzunkilerden oluşan bir birleştirme uygular.

Bazı dosyaların aynı bölümlerinde eşzamanlı düzenleme olmadığı sürece birleştirme otomatiktir. Birleştirme işlemi başarısız olursa, çalışma dizini bir "birleştirme durumunda" kalır; bu, çakışmaları düzeltmeniz ve ardından birleştirilmiş kopyayı işlemeniz gerektiği anlamına gelir. Dosyalarınızda hala yönetilmeyen çakışmalarınız varsa, işlem tekrar başarısız olur, işlem yapılmaz.

  • Taahhüt edilecek yeni bir dosya ekleyin: git add <file name>.
  • Yerel deponuzda değişiklik yapın : git commit -am "<textmessages>"veya git commit -ataahhüt mesajlarını düzenlemek istiyorsanız.
  • Yerel havuzunuzdaki değişiklikleri merkezi depoya itin .

Merkezi deponuzda değişiklik yapmak için öncelikle yerel deponuzda bulunmak zorunda olduğunuzu ve tüm taahhütleri (birden fazla bile) merkezi deponuza itmek zorunda olduğunuza dikkat edin .

Bir kullanıcı-yerel depo oluşturun

  • git initİstediğiniz herhangi bir klasörde bir havuz oluşturulması .
  • Bitti!

Güzel bir GUI ile ortak kullanımlı bir repo (ayrıca nakit ödüyorsanız özel) oluşturun.

Farklı kullanıcı gruplarına sahip, ancak kullanıcı arayüzü olmayan çok sayıda özel / halka açık depo oluşturun.

  • Erişilebilir bir makinede şifresiz bir SSH hesabı isteyin.
  • Kimlik doğrulama SSH tuşları ile yapıldığından endişelenmeyin.
  • Bu öğreticiye göre Gitosis yükleyin .
  • Artık tek bir dosyayı düzenleyerek ve depoya göndererek kendi git sunucunuzu yönetebilirsiniz!

Git merkezi bir sunucuya ihtiyaç duymaz : bilgisayarınızdaki herhangi bir klasör depo olarak kullanılabilir, bu nedenle git ile oynayabilir ve testlerinizi çevrimdışı yapabilirsiniz. Bir depoyu başlatabilir ve üç ortak çalışanı ağda bir bit göndermeden diğer üç klasörde taklit edebilirsiniz. Bunun nedeni, deponun klonlanmış bir kopyasının, taahhüt edebileceğiniz tam özellikli bir havuz olmasıdır. ABD, Çin veya Avrupa arasında bir uçuşta çalışmak istiyorsanız bu iyi bir şeydir.


1
Cevabımı yukarıda yazdığım için Git'i de tercih etmeye geldim. Github'tan hoşlanıyorsanız ancak fikri mülkiyeti bir şirkete vermekte tereddüt ediyorsanız (ve / veya bu ayrıcalık için ödeme yapın), Gitlab'a göz atın .
Raphael,

8

Google Dokümanlar ( https://docs.google.com ), birlikte doküman yazmak için harika araçlar sağlar (gerçek zamanlı düzenleme dahil). Sizin için her şeyi çevrimiçi olarak saklar ve Gmail hesabınızla iyi bir şekilde bütünleşir. Varsayılan olarak Google Dokümanlar LaTeX uyumluluğu yoktur, ancak buraya giderek etkinleştirebilirsiniz:

http://docs.latexlab.org/

Geri alma için ne kadar iyi çalıştığından emin değilim, ancak bunun için bir özellik olduğundan eminim. Bazı insanlar için Google Wave'in LaTeX eklentisini kullanarak kağıtlar için ön taslaklar hazırladıklarını duydum.


Üzgünüz, ama bu muhtemelen rakibinizin laboratuarında yeni icatınızın prototipini oluşturmak gibi. Google’ın araçlarının popüler, kullanım kolaylığı ve kullanılabilirliği nedeniyle tahmin edilebildiğini biliyorum, ancak çoğu zaman en iyi seçenek olduklarından şüpheliyim. İyi bir çalışma ortamı oluşturmak, küçük bir çaba sarfettiğinizde çok zor olmaz. Bunun, okuldan yaklaşık 10 yıl sonra işine hak kazanmak için harcayan insanlar için çok fazla gösterici olmaması gerektiğini düşünüyorum.
Raphael

4
Google ile rekabet etmiyorum ... bu yüzden benim için OP'nin istediği gereksinimlerden biri gibi görünen en kolay aracı kullanmak gibi görünüyor. Sadece komut satırında çalışmadığı için mutlaka onu kötü bir araç yapmaz. Gereksinim duyduğunuz bazı işlevleri yoksa, o zaman açık kaynak kodlu bir projedir ve buna eklemek için deneyiminizi kullanabilirsiniz. Ayrıca, geliştirme sürümünü kullanıyorsanız, yerel LaTeX derleyicinizi sunucularında kullanmak yerine bile kullanabilirsiniz.
Artem Kaznatcheev

Beni yanlış anlama, ben sadece CLI adamı değilim. Örneğin grafik editörlerden büyük keyif alıyorum (WYSIWYG'den hoşlanmama rağmen). Gerçek şu ki, dünyadaki en büyük veri madencisi tarafından sağlanmayan alternatifler var. Ben, afaik Google beri dönem "rakip" kullanılan yapar bilgisayar bilimi biraz araştırma, tatlar öğrenme özellikle makineyi.
Raphael

7

Ortaklarımın Mercurial'ı öğrenmesini sağlarım ve onları Subversion'u öğrenmelerini sağlardım. Eğer bir Subversion hayranı iseniz , bunu okuyun , hepsi doğru.

Hangi sistemi kullanırsanız kullanın, en zor şey diğer kişinin yazılımı kurması ve kullanmaya başlamasıdır. Skype mükemmel bir çözümdür. Skype'ın son sürümleri, ortak yazarınızı kurulum prosedürü boyunca yönlendirmek istediğinizde gerçekten yardımcı olan "masaüstü paylaşımına" izin verir. Ve ortak yazıcımla bir kağıt yazmak için Skype ile birleştirilmiş düz masaüstü paylaşımını kullandım. Oldukça iyi çalışıyor.

Gerçekten ihtiyaç duyulan şey bir "bilim adamları için Github" dır. Depo veren, sürüm kontrolü, ortak düzenleme vb. Olan bir şey var. Tahmin edin, ne olduğunu http://www.scribtex.com/ .


Şu anda bir ortak çalışanla anket yapmak için Github kullanıyorum. Yeterince uygun ve genellikle farklı bölümlerde çalıştığımız için çevrimiçi işbirlikçi düzenleme gereksinimi duymuyorum.
Suresh Venkat

bitbucket size github’un bir miktar mahremiyet avantajı sağlar. Ben test ediyorum.
Jeremy

5

Burada, birçok bilimsel yazma gereksinimi / gereksinimi için neredeyse tek elden bir dükkan olarak, umut verici görünen WriteLatex adında yeni bir işbirlikçi çevrimiçi Lateks editörü var .

  • mobilde çalışıyor
  • gerçek zamanlı önizleme var
  • kolay / özel paylaşım
  • lateks hatalarını bulur
  • lateks kütüphanelerine / stillerine eklenmeye izin verir
  • Bulut depolama

ortak yazar John Hammersley burada tcs se meta'da bir duyuru yayınladı ve geri bildirime yanıt verdi (reklamda 5 oy daha & ana sitede görünecek). tcs topluluğu için zaman içinde değerli bir araca dönüşebilecek gibi görünüyor ve belki de yazarlar talep üzerine bazı popüler özellikleri uygulayabilecekler.


2

Peki ya basit sistemler, çözümler:

  • Google Dokümanlar, Zoho yazarı ... ve diğer ortak çalışma araçları.
  • Dropbox, iki kişi aynı dosya üzerinde değişiklik yapmaya çalıştığında durumları ele alır. İkinci sorumlu kişi, adını (X.txt -> X.txt_blabla ...) ve orijinal dosyasını (X.txt) en yeni sürümle güncel olarak yeniden adlandırır. Daha fazla bilgi için: Dropbox Yardım: "İki kişi aynı dosyayı değiştirirse ne olur?"

Söz konusu değildir, ancak bazen grubun bir kısmının SVN gibi basit çözümler üretebileceği durumlar varken, grubun diğer kısımları GIT gibi dağıtılmış sürüm kontrolü yapabilmektedir. Bu gibi durumlarda işbirliği mümkündür:


2

Kısa bir süre önce sharelatex.com'u keşfettim ve ortak yazarımla birlikte bir makaleyi yazar olarak kullandım. O kadar sevdim ki, şu anki planım tüm projelerimde kullanmak. Bazı önemli özellikler:

  • Gerçek zamanlı tarayıcı içi TeXing (Google Dokümanlar gibi, ancak TeX, sözdizimi vurgulaması ve tümü için yapıldı).

  • Tarayıcı içi derleme ve PDF görüntüleme

  • Birden fazla dosya içeren projeleri destekler

  • Bir geçmiş özelliği var

  • Dropbox ile senkronize olur (yakında beta sürümünden itibaren halka açıklanacaktır). Bu sayede yedeklerin vs. kaydetilmesini Dropbox'a bırakabilirsiniz. Bunun nasıl yapıldığına bağlı olarak, bu aynı zamanda ortak yazarlarınız istemeseler bile, dosyaları paylaşmak için Dropbox kullanmaya istekli oldukları sürece sharelatex kullanmanıza izin vermelidir.

  • İstediğiniz zaman projenizi indirebilir / yükleyebilirsiniz, böylece bir şeyler ters giderse veya fikrinizi veya neyse değiştirirseniz sharelatex'i kullanıp sıkışmazsınız.

Tek dezavantajı (ama buna değer sanırım): sharelatex kullanmak ücretsiz olsa da, bazı özellikleri değildir. Özellikle, Dropbox senkronizasyonunu kullanmak için (serbest bıraktıklarında) ya da aynı sharelatex projesinde 6'dan fazla yazarın çalışmasını istiyorsanız 8 $ / ay ödemeniz gerekir . veya 80 $ / yıl [Nisan 2013 itibariyle]. Dropbox senkronizasyonunu bıraktıklarında, bana çok uygun bir fiyat gibi geliyor.

[Feragatname: Sharelatex veya çalışanları ile kendi ürünlerini kullandığımdan başka hiçbir ilişkim yok.]


Şimdi açık kaynak! (Ve FWIW, orada da writelatex benzer ancak kayıt olmaksızın hızlı eğlence için kullanılabilir.) Yani, söz konusu (Yayınlandıktan kadar) bir ticari bulut içinde benim fikri mülkiyet koymak değildir.
Raphael,

-5

SVN bu amaç için geliştirilmiş bir araçtır. Bunu öğrenmek için çaba harcardım. Algoritm2e Lateks paketini veya pdf slayt yaratıcısı Lateks paketlerinden birini kullanmayı kullanmayı öğrenmekten daha karmaşık değildir.

Bunu söyledikten sonra SVN yerine CVS kullanıyorum. Kurumumuzdaki CS yöneticilerinden daha iyi destek alınmaktadır (SVN sunucusu daha fazla kullanıcı tarafından yönetilmektedir). Artı, altta yatan sürüm dosyalarının hala orada ve bir şey çok yanlış giderse düzenlenebilir olduğunu takdir ediyorum.

SVN ile karşılaştırıldığında 2 dezavantaj vardır. Dosya isimleri o kadar hoş değil, ama bununla yaşayabilirim (ilk defa iyi bir isim seçin). İkinci sorun, birisinin havuza erişmek için yerel bir CS hesabına ihtiyaç duymasıdır. Bu nedenle başka bir kurumdan erişim ancak ilk önce bir hesap oluşturulduğunda mümkündür. Tabii bunun hiçbir yerde gerçek bir sorun olmasını beklemiyorum; Yerel bir departman üyesi muhtemelen bu hesaba sponsor olabilir.

Yerel erişim kısıtlaması, yöneticilerin bir pserver'ı desteklemek istemediğinden kaynaklanmaktadır. (Daha güvenli vb.)


3
Bunun nedeni, sorunun adım adım yardım talebini tam olarak karşılamaması ve listelenen avantajların ve dezavantajların çoğunun yanıtlayıcının ev kurumuna yerelleştirilmesi gibi görünüyor.
David Eppstein
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.