[LUGOS] Kateri "version control system" podpira "paketke"?

Mojca Miklavec mojca.miklavec.lists at gmail.com
Mon Sep 10 22:43:46 CEST 2007


Živijo,

Že dolgo iščem "version control system" (ala CVS, SVN, ...) s podporo
za "paketke". S tem mislim sledeče. Recimo, da imamo po tri datoteke v
dveh direktorijih:

dir_a/file_1
dir_a/file_2
dir_a/file_3
dir_b/file_1
dir_b/file_2
dir_b/file_3

In tri paketke, ki morajo vsebovati sledeče datoteke:

Paketek 1:
dir_a/file_1
dir_a/file_2
dir_b/file_1

Paketer 2:
dir_a/file_2 % ista datoteka kot v 1, ampak lahko preživim brez tega
dir_a/file_3
dir_b/file_2

Paketek 3:
dir_b/file_3

Za repozitorij skrbi ena sama oseba, imamo centralen repozitorij.
Uporabnik bi si rad inštaliral npr. Paketek 1 in 3, ali pa Paketek 1
in 2 ali pa samo 3, ... in rad bi datoteke z enim samim ukazom
posodobil (kot to počne recimo "svn up").

Problem je v tem, da vsi sistemi, ki jih poznam (SVN in ostali)
podpirajo "paketke" le po direktorijih. To pomeni, da bi lahko s
SVN-jem uvozila:

paketek_1/dir_a/file_1
paketek_1/dir_a/file_2
paketek_1/dir_b/file_1
paketek_3/dir_b/file_3

Ampak jaz bi rada vse štiri datoteke ohranila v istem vrhnjem
direktoriju, ne v dveh.


Trenutno je problem rešen s tremi zip datotekami, in uporabnik vse tri
odpakira v željen vrhnji direktorij, ampak:
- če nekdo spremeni dva znaka, je treba za posodobitev ponovno
naložiti 5-100 MB veliko zip datoteko, jaz pa bi rada sistem, ki bi
znal upravljati zgolj s spremembami
- "ne da se mi" vedno razmišljat, katerih deset od stotih datotek
moram naložit in odpakirat

Postavili smo tudi že nek SVN repozitorij tipa

linux/dir_a1
linux/dir_b1
linux/dir_b2
windows/dir_a2
windows/dir_b1
windows/dir_b2
mac/dir_a3
mac/dir_b1
mac/dir_b2

dir_a1, dir_a2 in dir_a3 so specifični za vsako platformo in
neproblematični. dir_b1 in dir_b2 sta enaka v vseh platformah.
Ustvarili smo jih s "svn copy", in ko se naredijo spremembe na eni
platformi, jih "merge"-amo na ostali dve. Ampak zdaj sem ugotovila, da
so ljudje, ki ne potrebujejo direktorija dir_b2, kar pomeni, da bi se
zdaj število direktorijev podvojilo - potrebovali bi kombinacijo:
- za vse platforme
- mini in maxi varianto
in hitro se izkaže, da je to NP problem. Če bi imela paketke, bi stvar
rešila tako, da bi ustvarila:

Paketek 1 (linux):
    dir_a1
Paketek 2 (windows):
    dir_a2
Paketek 3 (mac):
    dir_a3
Paketek 4 (to je lahko eden ali dva paketka):
    dir_b1
    dir_b2
In potem bi uporabnik izbral npr. Paketek 2 in 4.

Problem se mi zdi trivialno rešljiv in zelo splošen, ampak ne poznam
nobenega programa, ki bi to znal. Če je odgovor tipa "vzemi debianove
paketke", je OK, samo delovati mora na večih platformah (vsaj windows,
linux, mac), in če je možno, mora znati delati s spremembami, ne tako,
da je treba za vsak spremenjen bajt naložit deset mega.

Hvala za nasvete, četudi dobim odgovor, da podoben program žal še ne obstaja.

Mojca


More information about the lugos-list mailing list