VCS ve dosya sürümlerinin resmi bir CS tanımı var mı?


12

Bir şaka olup olmadığını bilmiyorum, ama bir kez git, hg veya svn gibi bir sürüm sistemindeki bir dosyanın resmi bir tanımı olarak anılan şeyi okudum. Homeomorfizm gibi matematiksel bir nesne gibiydi. Bu bir şaka mıydı yoksa sürüm sistemleri ve VCS'nin matematiği hakkında gerçekten bilgisayar bilimi teorisi var mı?


2
Homemorfizmi homeomorfizm olarak değiştirdim, ancak hiçbir fikrim yok, bu bağlamda topolojiyi nerede arayacağım. Şunu mu demek istedin homomorfizm?
frafl

3
En.wikibooks.org/wiki/Understanding_Darcs/Patch_theory veya projects.haskell.org/camp gibi bir şey mi? Teori ve programlama söz konusu olduğunda haskell'i aramak her zaman iyi bir fikirdir. Bunu bir cevaba dönüştürebilirim, ancak bence bu alan hakkında daha iyi bilgiye sahip insanlar var.
frafl


Yaptığınız şeyin güçlü bir şekilde resmileştirilmeden bir versiyonlama sistemi kadar karmaşık ve kritik bir şey inşa etmezsiniz. Yollarını hackleyen insanlar bazen dahiler olabilir, ancak genellikle aptaldırlar.
babou

Yanıtlar:


11

Isaac Wolkerstorfer (@agnoster) adlı tweet'i düşünüyorsunuz :

dallar bir Hilbert uzayının altmanifoldlarını haritalayan homeomorfik endofunktörler olduğu temel fikrini aldıktan sonra git kolaylaşır.

Ne yazık ki, bu bir şaka. Yazarın Quora üzerine yazdığı gibi :

Kesinlikle yanakta dil olarak tasarlandı. Aslında gitmeyi seviyorum ve karmaşıklığının büyük ölçüde abartılı olduğunu düşünüyorum. Aynı zamanda, git gurustan acemilere tavsiyenin, anlaşılmaz anlamsız gibi görünebileceği gerçeğine sempati duyuyorum.

Daha derin bir anlamı olması amaçlanmamıştır. Bu şekilde analiz etme girişimleri boşuna olmalıdır, ancak gerçekte bir hata nedeniyle, yeterince denerseniz yeterince el-dalgalı ifadeyi uygun hale getirebilirsiniz.

Bu Programcılar Yığın Değişimi ve Matematik Yığın Değişimi üzerinde tartışılmıştır .


Şaka bir yana, versiyon kontrolünü resmileştirme çalışmaları yapıldı. Teori ve pratiği birleştiren bir çaba, David Roundy'nin Darcs üzerine yama teorisi üzerine çalışmasıdır . Teorinin temel amacı birleşmeyi ve özellikle çatışma çözümünü modellemektir. Darcs wiki kuramına bir giriş ve bir de birkaç işaretçileri vardır kaynakçada (böylece konuyla ilgili son bir görünüm istiyorum, ama bu da listeyi yaparsa modası geçmiş unmaintained Petr Baudis tarafından 2009 anket kağıdı ve bir listesini) görüşmelerin ( daha yeni materyaller içerir). Bir de wikibook var . Bir seminal makale Versiyon Kontrolüne İlkeli Bir YaklaşımdırAndres Löh, Wouter Swierstra ve Daan Leijen3 tarafından hazırlanmıştır .

Yama teorisi son zamanlarda incelenmiştir edilmiş bir kategorik modeli, yol vermez Yamalar bir Kategorik Teorisi Samuel Mimram ve Cinzia Di Giusto tarafından ve Homotopical Patch Teorisi Carlo Angiuli Ed Morehouse'da Daniel R. Licata ve Robert Harper tarafından . Mimram ve Di Giusto'nun çalışmasında, model nesneler gibi dosyalar ve morfizmler gibi yamalar içerir. Tek bir depoda çalışıyorsanız, bir şubeyi birleştirmeyi bir functor - bir endofunctor yapar. “Homeomorphic endofunctor” benim için bir anlam ifade etmiyor. Homotopi teorisi söz konusu olduğunda, bir Hilbert uzayının altmanifoldları şu ana kadar olmayabilir ...


3

Elbette versiyon kontrol sistemleri için matematiksel bir formalizm var. CS'deki hemen hemen her algoritma için bir matematiksel formalizm vardır. Birçoğu için birden fazla biçimcilik vardır . Formüllerle ve sistemler arasında bir 1-1 ilişki yoktur modellemek . Modeller basit ile karmaşık arasında değişebilir. Burada , henüz belirtilmemiş olan Swierstra tarafından da VCS / SCM için bir örnek verilmiştir .

SCM ayrıca "paralel evrenler / zaman çizelgeleri" kavramına ve bazen bilimkurguda kullanılan zaman yolculuğuna çok benzerlik gösterir . Gelişen sistemin durumunu farklı zamanlarda veya "enstantane fotoğraflarda" yakalar. "Dallar" ve "birleşmeler" vardır. Ayrıca bkz . Zaman çizelgeleri .

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.