Repository létrehozása forráskódhoz

Fórumok

Sziasztok!

Szeretnék összehozni egy olyan megoldást, aminek az a lényege, hogy egy repository -ban van tárolva egy nagyobb fejlesztési projekt forráskódja, ellátva verziókövetéssel (git/svn/bzr : még nem dőlt el) és ehhez kellene hozzáférjen több ember, de különböző jogosultságokkal. Kommittelni csak 1 ember tudna forráskódot az egész projektben, de nem mindenkinek lenne mindenre olvasási joga sem.

Ilyesmit képzeltem el:
* /documents -> mindenkinek van olvasási joga, de csak 1 meghatározott ember írhatja
* /functions -> mindenkinek van olvasási joga, de csak 1 meghatározott ember írhatja
* /database -> senki sem olvashatja, kivéve meghatározott emberek (akár több is) és csak 1 meghatározott ember írhatja

Tehát könyvtáranként lenne szabályozva, hogy ki olvashatja a tartalmat és ki nem. S ahogy említettem, írási joga csak 1 főnek lenne az egészre, tehát ő tudna kommittelni változást a forrásfán.

Merre kellene elindulnom? Arra gondoltam, hogy miután verziókezelés alá helyeztem a teljes forráskódot, azután samba segítségével létrehozok több megosztást is, csoportosítva őket jogosultsági szintek szerint. Vagy ez rossz elképzelés? Van egyszerűbb/logikusabb módja a dolognak?

Köszönöm előre is az ötleteket, segítséget!

Hozzászólások

Szia. Ezt az igényedet a verziókezelő rendszer adta hozzáférés-szabályozással meg tudod valósítani. SVN esetén tuti, ezt használom is, de gondolom a többi is tudja ugyanezt.

Pl. SVN esetén:

[/path/to/resource]
* =
user1 = r
user2 = rw

Természetesen lehet group-okat is definiálni. Ha érdekel az svn red bookban részletesen megtalálod a szükséges infót: http://svnbook.red-bean.com

Üdv,
gd

Gittel meg lehet oldani, csak másként kell gondolkodni.

Van mindenkinek a gépén egy saját repó, esetleg a szerveren egy közös backup/homokozó. Amikor a dokumentumokért felelős embernek frissíteni kell, akkor pull-ol a szerveren lévő közös repóból (vagy valahonnan máshonnan), megnézi a commitokat, amik érintik a documents/ könyvtárat, és amit jónak lát, azt merge-öli. Ugyanez a functions-ra is. A database-t is hasonlóan lehetne megoldani, annyi kitétellel, hogy az adott ember database repójából csak meghatározott emberek pull-olhatnak. Szervezheted úgy is, hogy van egy superproject, amiben nincs kód, és annak submodule-jai a documents, functions, database. Ez azért is szerencsés, mert a git nem fájlokkal és könyvtárakkal dolgozik, hanem változtatásokkal (emiatt pl nem lehet egy git repó részét klónozni).

A push/pull mehet git protokolon keresztül is, de eleinte az egyszerűség miatt érdemes ssh-t használni.

Köszönöm mindkét javaslatot, jól hangzanak! Mindenképp utánuk olvasok. :)